# HG changeset patch # User ymh # Date 1533219031 -7200 # Node ID a87ffe8e08e5a330ddbd601dee45d909292743af # Parent 30644b6ac4ce9b9b280aa02975aff6e3436e6233 Alter models links constraint to allow annotations deletions in the admin diff -r 30644b6ac4ce -r a87ffe8e08e5 src/iconolab/__init__.py --- a/src/iconolab/__init__.py Thu Aug 02 11:08:38 2018 +0200 +++ b/src/iconolab/__init__.py Thu Aug 02 16:10:31 2018 +0200 @@ -1,4 +1,4 @@ -VERSION = (0, 1, 9, "final", 0) +VERSION = (0, 1, 10, "final", 0) VERSION_STR = ".".join(map(lambda i: "%02d" % (i,), VERSION[:2])) diff -r 30644b6ac4ce -r a87ffe8e08e5 src/iconolab/migrations/0033_auto_20180802_1409.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/iconolab/migrations/0033_auto_20180802_1409.py Thu Aug 02 16:10:31 2018 +0200 @@ -0,0 +1,59 @@ +# Generated by Django 2.0.6 on 2018-08-02 14:09 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('iconolab', '0032_auto_20180704_1131'), + ] + + operations = [ + migrations.AlterField( + model_name='annotation', + name='current_revision', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='current_for_annotation', to='iconolab.AnnotationRevision'), + ), + migrations.AlterField( + model_name='annotation', + name='source_revision', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='source_related_annotation', to='iconolab.AnnotationRevision'), + ), + migrations.AlterField( + model_name='annotationrevision', + name='annotation', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='revisions', to='iconolab.Annotation'), + ), + migrations.AlterField( + model_name='annotationrevision', + name='merge_parent_revision', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='child_revisions_merge', to='iconolab.AnnotationRevision'), + ), + migrations.AlterField( + model_name='annotationrevision', + name='parent_revision', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='child_revisions', to='iconolab.AnnotationRevision'), + ), + migrations.AlterField( + model_name='annotationstats', + name='annotation', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='stats', to='iconolab.Annotation'), + ), + migrations.AlterField( + model_name='image', + name='item', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='images', to='iconolab.Item'), + ), + migrations.AlterField( + model_name='imagestats', + name='image', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='stats', to='iconolab.Image'), + ), + migrations.AlterField( + model_name='itemmetadata', + name='item', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='metadatas', to='iconolab.Item'), + ), + ] diff -r 30644b6ac4ce -r a87ffe8e08e5 src/iconolab/models.py --- a/src/iconolab/models.py Thu Aug 02 11:08:38 2018 +0200 +++ b/src/iconolab/models.py Thu Aug 02 16:10:31 2018 +0200 @@ -152,7 +152,7 @@ Metadata object for the item class. """ - item = models.OneToOneField('Item', related_name='metadatas', on_delete=models.PROTECT) + item = models.OneToOneField('Item', related_name='metadatas', on_delete=models.CASCADE) natural_key = models.CharField(max_length=1024, default="", unique=True) @@ -203,7 +203,7 @@ media = models.ImageField(upload_to='uploads/', height_field='height', width_field='width') item = models.ForeignKey( - 'Item', related_name='images', null=True, blank=True, on_delete=models.PROTECT) + 'Item', related_name='images', null=True, blank=True, on_delete=models.CASCADE) height = models.IntegerField(null=False, blank=False) width = models.IntegerField(null=False, blank=False) created = models.DateTimeField(auto_now_add=True, null=True) @@ -240,7 +240,7 @@ displayed in image and item pages """ image = models.OneToOneField( - 'Image', related_name='stats', blank=False, null=False, on_delete=models.PROTECT) + 'Image', related_name='stats', blank=False, null=False, on_delete=models.CASCADE) views_count = models.IntegerField(blank=True, null=True, default=0) annotations_count = models.IntegerField(blank=True, null=True, default=0) submitted_revisions_count = models.IntegerField( @@ -441,9 +441,9 @@ image = models.ForeignKey( 'Image', related_name='annotations', on_delete=models.CASCADE) source_revision = models.ForeignKey( - 'AnnotationRevision', related_name='source_related_annotation', blank=True, null=True, on_delete=models.PROTECT) + 'AnnotationRevision', related_name='source_related_annotation', blank=True, null=True, on_delete=models.SET_NULL) current_revision = models.OneToOneField( - 'AnnotationRevision', related_name='current_for_annotation', blank=True, null=True, on_delete=models.PROTECT) + 'AnnotationRevision', related_name='current_for_annotation', blank=True, null=True, on_delete=models.SET_NULL) author = models.ForeignKey(User, null=True, on_delete=models.PROTECT) created = models.DateTimeField(auto_now_add=True, null=True) comments = GenericRelation( @@ -574,7 +574,7 @@ displayed in annotation pages """ annotation = models.OneToOneField( - 'Annotation', related_name='stats', blank=False, null=False, on_delete=models.PROTECT) + 'Annotation', related_name='stats', blank=False, null=False, on_delete=models.CASCADE) submitted_revisions_count = models.IntegerField( blank=True, null=True, default=1) awaiting_revisions_count = models.IntegerField( @@ -718,11 +718,11 @@ revision_guid = models.UUIDField(default=uuid.uuid4) annotation = models.ForeignKey( - 'Annotation', related_name='revisions', null=False, blank=False, on_delete=models.PROTECT) + 'Annotation', related_name='revisions', null=False, blank=False, on_delete=models.CASCADE) parent_revision = models.ForeignKey( - 'AnnotationRevision', related_name='child_revisions', blank=True, null=True, on_delete=models.PROTECT) + 'AnnotationRevision', related_name='child_revisions', blank=True, null=True, on_delete=models.SET_NULL) merge_parent_revision = models.ForeignKey( - 'AnnotationRevision', related_name='child_revisions_merge', blank=True, null=True, on_delete=models.PROTECT) + 'AnnotationRevision', related_name='child_revisions_merge', blank=True, null=True, on_delete=models.SET_NULL) author = models.ForeignKey(User, null=True, on_delete=models.PROTECT) title = models.CharField(max_length=255) description = models.TextField(null=True)