signals are now sent in model methods rather than views
authordurandn
Mon, 01 Aug 2016 10:41:24 +0200
changeset 90 8d7815ecd211
parent 89 23679a6def77
child 91 df4b879f8a7b
signals are now sent in model methods rather than views
src/iconolab/models.py
src/iconolab/signals/handlers.py
src/iconolab/views.py
--- a/src/iconolab/models.py	Fri Jul 29 16:17:08 2016 +0200
+++ b/src/iconolab/models.py	Mon Aug 01 10:41:24 2016 +0200
@@ -5,7 +5,7 @@
 from django.contrib.contenttypes.models import ContentType
 from django_comments_xtd.models import XtdComment
 from django.utils.text import slugify
-from . import signals
+import iconolab.signals.handlers as iconolab_signals
 import uuid, json, re, requests, urllib
 
 
@@ -199,6 +199,7 @@
         if new_revision.state == AnnotationRevision.ACCEPTED:
             self.current_revision = new_revision
             self.save()
+        iconolab_signals.revision_created.send(sender=AnnotationRevision, instance=new_revision)
         return new_revision
     
     # Call when we're validating an awaiting revision whose parent is the current revision AS IT WAS CREATED
@@ -209,6 +210,7 @@
             revision_to_validate.state = AnnotationRevision.ACCEPTED
             revision_to_validate.save()
             self.save()
+            iconolab_signals.revision_accepted.send(sender=AnnotationRevision, instance=revision_to_validate)
     
     # Call to reject a 
     @transaction.atomic
@@ -225,6 +227,7 @@
         merged_revision.save()
         revision_to_merge.state = AnnotationRevision.STUDIED
         revision_to_merge.save()
+        iconolab_signals.revision_accepted.send(sender=AnnotationRevision, instance=revision_to_merge)
         self.current_revision=merged_revision
         self.save()
         return merged_revision
--- a/src/iconolab/signals/handlers.py	Fri Jul 29 16:17:08 2016 +0200
+++ b/src/iconolab/signals/handlers.py	Mon Aug 01 10:41:24 2016 +0200
@@ -10,7 +10,6 @@
 
 
 def increment_stats_on_new_revision(sender, instance, **kwargs):
-    print("REVISION WAS CREATED")
     # Annotation stats
     annotation = instance.annotation
     annotation.stats.submitted_revisions_count += 1
--- a/src/iconolab/views.py	Fri Jul 29 16:17:08 2016 +0200
+++ b/src/iconolab/views.py	Mon Aug 01 10:41:24 2016 +0200
@@ -14,7 +14,6 @@
 from django.conf import settings
 from iconolab.models import Annotation, AnnotationRevision, Collection, Item, Image, IconolabComment, MetaCategory, MetaCategoryInfo
 from iconolab.forms.annotations import AnnotationRevisionForm
-import iconolab.signals.handlers as iconolab_signals
 import datetime
 import django_comments
 from django_comments import signals
@@ -281,7 +280,6 @@
             revision_fragment = annotation_form.cleaned_data['fragment']
             revision_tags_json = annotation_form.cleaned_data['tags']
             new_revision = annotation.make_new_revision(revision_author, revision_title, revision_description, revision_fragment, revision_tags_json)
-            iconolab_signals.revision_created.send(sender=AnnotationRevision, instance=new_revision)
             revision_comment = annotation_form.cleaned_data['comment']
             comment = IconolabComment.objects.create(
                 comment = revision_comment,
@@ -397,7 +395,6 @@
         # Auto-accepts the revision only if the proper query arg is set and only if the revision parent is the current revision
         if "auto_accept" in request.GET and request.GET["auto_accept"] in ["True", "true", "1", "yes"] and revision.parent_revision == annotation.current_revision:
             annotation.validate_existing_revision(revision)
-            iconolab_signals.revision_accepted.send(sender=AnnotationRevision, instance=revision)
             return RedirectView.as_view(
                 url=reverse('annotation_detail', 
                     kwargs={
@@ -460,7 +457,6 @@
             revision_fragment = merge_revision_form.cleaned_data['fragment']
             revision_tags_json = merge_revision_form.cleaned_data['tags']
             new_revision = annotation.merge_existing_revision(revision_title, revision_description, revision_fragment, revision_tags_json, revision)
-            iconolab_signals.revision_created.send(sender=AnnotationRevision, instance=new_revision)
             revision_comment = merge_revision_form.cleaned_data['comment']
             comment = IconolabComment.objects.create(
                 comment = revision_comment,