sending revision_created signal when creating an annotation
authordurandn
Wed, 17 Aug 2016 15:20:08 +0200
changeset 134 350bdfe7c289
parent 133 088195b2a6cc
child 135 8de104e8f3ad
sending revision_created signal when creating an annotation
src/iconolab/models.py
src/iconolab/signals/handlers.py
--- a/src/iconolab/models.py	Wed Aug 17 14:38:22 2016 +0200
+++ b/src/iconolab/models.py	Wed Aug 17 15:20:08 2016 +0200
@@ -196,6 +196,7 @@
         new_annotation.current_revision = initial_revision
         new_annotation.stats = new_annotation_stats
         new_annotation.save()
+        iconolab_signals.revision_created.send(sender=AnnotationRevision, instance=initial_revision)
         return new_annotation
 
 
--- a/src/iconolab/signals/handlers.py	Wed Aug 17 14:38:22 2016 +0200
+++ b/src/iconolab/signals/handlers.py	Wed Aug 17 15:20:08 2016 +0200
@@ -12,22 +12,23 @@
 def increment_stats_on_new_revision(sender, instance, **kwargs):
     from iconolab.models import AnnotationRevision
     if sender == AnnotationRevision:
-        # Annotation stats
-        annotation = instance.annotation
-        annotation.stats.submitted_revisions_count += 1
-        if instance.state in [AnnotationRevision.ACCEPTED, AnnotationRevision.STUDIED]:
-            annotation.stats.accepted_revisions_count += 1
-        if instance.state == AnnotationRevision.ACCEPTED and instance.merge_parent_revision is not None and instance.merge_parent_revision.state == AnnotationRevision.STUDIED:
-            annotation.stats.awaiting_revisions_count -= 1
-        if instance.state in [AnnotationRevision.AWAITING]:
-            annotation.stats.awaiting_revisions_count += 1
-        annotation.stats.set_tags_stats()
-        annotation.stats.save()
-        # Image stats
-        image = instance.annotation.image
-        image.stats.submitted_revisions_count += 1
-        image.stats.set_tags_stats()
-        image.stats.save()
+        if instance.parent_revision:
+            # Annotation stats
+            annotation = instance.annotation
+            annotation.stats.submitted_revisions_count += 1
+            if instance.state in [AnnotationRevision.ACCEPTED, AnnotationRevision.STUDIED]:
+                annotation.stats.accepted_revisions_count += 1
+            if instance.state == AnnotationRevision.ACCEPTED and instance.merge_parent_revision is not None and instance.merge_parent_revision.state == AnnotationRevision.STUDIED:
+                annotation.stats.awaiting_revisions_count -= 1
+            if instance.state in [AnnotationRevision.AWAITING]:
+                annotation.stats.awaiting_revisions_count += 1
+            annotation.stats.set_tags_stats()
+            annotation.stats.save()
+            # Image stats
+            image = instance.annotation.image
+            image.stats.submitted_revisions_count += 1
+            image.stats.set_tags_stats()
+            image.stats.save()
         
     
 def increment_stats_on_new_comment(sender, instance, created, **kwargs):