Compare commits
4 Commits
0.1.4
...
4dbd8ae82d
Author | SHA1 | Date | |
---|---|---|---|
4dbd8ae82d | |||
c3ea5cdccd | |||
caa69d6e6e | |||
5f9ef08e3b |
@@ -24,6 +24,9 @@ class VoucherAdmin(admin.ModelAdmin):
|
|||||||
class PhotoAlbumsAdmin(admin.ModelAdmin):
|
class PhotoAlbumsAdmin(admin.ModelAdmin):
|
||||||
list_display = ('label', 'place', 'url' )
|
list_display = ('label', 'place', 'url' )
|
||||||
|
|
||||||
|
class ExternalLinksAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('label', 'place', 'url', 'linktype' )
|
||||||
|
|
||||||
class PlacesAdmin(admin.ModelAdmin):
|
class PlacesAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'submitted_by', 'submitted_when')
|
list_display = ('name', 'submitted_by', 'submitted_when')
|
||||||
|
|
||||||
@@ -35,3 +38,4 @@ admin.site.register(Voucher, VoucherAdmin)
|
|||||||
admin.site.register(Place, PlacesAdmin)
|
admin.site.register(Place, PlacesAdmin)
|
||||||
admin.site.register(PlaceImage, PlaceImagesAdmin)
|
admin.site.register(PlaceImage, PlaceImagesAdmin)
|
||||||
admin.site.register(PhotoAlbum, PhotoAlbumsAdmin)
|
admin.site.register(PhotoAlbum, PhotoAlbumsAdmin)
|
||||||
|
admin.site.register(ExternalLink, ExternalLinksAdmin)
|
||||||
|
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.7 on 2021-10-01 19:50
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('lostplaces', '0007_auto_20211001_1925'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='linktype',
|
||||||
|
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='link type'),
|
||||||
|
),
|
||||||
|
]
|
@@ -0,0 +1,37 @@
|
|||||||
|
# Generated by Django 3.2.7 on 2021-10-01 20:13
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('lostplaces', '0008_photoalbum_linktype'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='ExternalLink',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('submitted_when', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Submission date')),
|
||||||
|
('subclass', models.IntegerField(default=-1)),
|
||||||
|
('subclassid', models.IntegerField(default=-1)),
|
||||||
|
('url', models.URLField(verbose_name='URL')),
|
||||||
|
('label', models.CharField(max_length=100, verbose_name='link text')),
|
||||||
|
('linktype', models.CharField(blank=True, max_length=20, null=True, verbose_name='link type')),
|
||||||
|
('place', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='externallinks', to='lostplaces.place')),
|
||||||
|
('submitted_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='externallinks', to='lostplaces.explorer', verbose_name='Submitter')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='externallink_ptr',
|
||||||
|
field=models.OneToOneField(auto_created=True, null=True, blank=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, serialize=False, to='lostplaces.externallink'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
]
|
@@ -0,0 +1,22 @@
|
|||||||
|
# Generated by Django 3.2.7 on 2021-10-01 20:32
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('lostplaces', '0009_photoalbum_externallink_interim'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
# insert data from subclass into parent class with subclass 'number' and primary key/id
|
||||||
|
migrations.RunSQL("""INSERT INTO lostplaces_externallink (submitted_when, url, label, place_id, submitted_by_id, subclass, subclassid)
|
||||||
|
SELECT submitted_when, url, label, place_id, submitted_by_id, 1, id
|
||||||
|
FROM lostplaces_photoalbum;"""
|
||||||
|
|
||||||
|
),
|
||||||
|
# update subclass primary key to point to parent class (notice composite key values):
|
||||||
|
migrations.RunSQL("UPDATE lostplaces_photoalbum SET externallink_ptr_id=lostplaces_externallink.id FROM lostplaces_externallink WHERE lostplaces_externallink.subclassid=lostplaces_photoalbum.id AND lostplaces_externallink.subclass=1;"
|
||||||
|
),
|
||||||
|
]
|
@@ -0,0 +1,56 @@
|
|||||||
|
# Generated by Django 3.2.7 on 2021-10-01 22:48
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('lostplaces', '0010_photoalbum_externallink_datamigration'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='externallink',
|
||||||
|
name='subclass',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='externallink',
|
||||||
|
name='subclassid',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='id',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='label',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='linktype',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='place',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='submitted_by',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='submitted_when',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='url',
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='photoalbum',
|
||||||
|
name='externallink_ptr',
|
||||||
|
field=models.OneToOneField(auto_created=True, default=-1, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='lostplaces.externallink'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
]
|
@@ -6,7 +6,7 @@ from lostplaces.models.place import PlaceAsset
|
|||||||
class ExternalLink(PlaceAsset):
|
class ExternalLink(PlaceAsset):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = False
|
||||||
|
|
||||||
url = models.URLField(
|
url = models.URLField(
|
||||||
max_length=200,
|
max_length=200,
|
||||||
@@ -16,6 +16,12 @@ class ExternalLink(PlaceAsset):
|
|||||||
max_length=100,
|
max_length=100,
|
||||||
verbose_name=_('link text')
|
verbose_name=_('link text')
|
||||||
)
|
)
|
||||||
|
linktype = models.CharField(
|
||||||
|
max_length=20,
|
||||||
|
verbose_name=_('link type'),
|
||||||
|
blank=True,
|
||||||
|
null=True
|
||||||
|
)
|
||||||
|
|
||||||
class PhotoAlbum(ExternalLink):
|
class PhotoAlbum(ExternalLink):
|
||||||
pass
|
pass
|
Reference in New Issue
Block a user