Move serializers to dedicated file, do not create comment on revision creation.
authorAlexandre Segura <mex.zktk@gmail.com>
Wed, 22 Feb 2017 12:02:29 +0100
changeset 337 db6c41f04e79
parent 336 157819077ee5
child 338 4aa67dd268ce
Move serializers to dedicated file, do not create comment on revision creation.
src/iconolab/models.py
src/iconolab/serializers.py
src/iconolab/templatetags/iconolab_tags.py
src/iconolab/views/comments.py
src/iconolab/views/objects.py
--- a/src/iconolab/models.py	Wed Feb 22 11:04:40 2017 +0100
+++ b/src/iconolab/models.py	Wed Feb 22 12:02:29 2017 +0100
@@ -9,7 +9,6 @@
 from django.contrib.auth.models import User
 from django.contrib.contenttypes.fields import GenericRelation
 from django.contrib.contenttypes.models import ContentType
-from rest_framework import serializers
 from django.db import models, transaction
 from django.utils.text import slugify
 from django_comments_xtd.models import XtdComment
@@ -800,27 +799,6 @@
                     pass
         return json.dumps(final_list)
 
-class AnnotationRevisionSerializer(serializers.ModelSerializer):
-    tags = serializers.SerializerMethodField('get_normalized_tags')
-    annotation_guid = serializers.SerializerMethodField()
-
-    def get_normalized_tags(self, obj):
-        tags = []
-        for tagging_info in obj.tagginginfo_set.all():
-            tags.append({
-                "tag_label": tagging_info.tag.label,
-                "tag_link": tagging_info.tag.link,
-                "accuracy": tagging_info.accuracy,
-                "relevancy": tagging_info.relevancy,
-            })
-        return tags
-
-    def get_annotation_guid(self, obj):
-        return obj.annotation.annotation_guid
-
-    class Meta:
-        model = AnnotationRevision
-        fields = ('annotation_guid', 'title', 'description', 'fragment', 'tags')
 
 class Tag(models.Model):
     """
@@ -894,12 +872,6 @@
         ).filter(thread_id__gte=self.thread_id).filter(order__lte=self.order).count() + 1) // settings.COMMENTS_PER_PAGE_DEFAULT + 1
 
 
-class IconolabCommentSerializer(serializers.ModelSerializer):
-    class Meta:
-        model = IconolabComment
-        fields = '__all__'
-
-
 class MetaCategory(models.Model):
     """
         Metacategories are objects that can be linked to a comment to augment it
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/serializers.py	Wed Feb 22 12:02:29 2017 +0100
@@ -0,0 +1,30 @@
+from iconolab.models import AnnotationRevision, IconolabComment
+from rest_framework import serializers
+
+class AnnotationRevisionSerializer(serializers.ModelSerializer):
+    tags = serializers.SerializerMethodField('get_normalized_tags')
+    annotation_guid = serializers.SerializerMethodField()
+
+    def get_normalized_tags(self, obj):
+        tags = []
+        for tagging_info in obj.tagginginfo_set.all():
+            tags.append({
+                "tag_label": tagging_info.tag.label,
+                "tag_link": tagging_info.tag.link,
+                "accuracy": tagging_info.accuracy,
+                "relevancy": tagging_info.relevancy,
+            })
+        return tags
+
+    def get_annotation_guid(self, obj):
+        return obj.annotation.annotation_guid
+
+    class Meta:
+        model = AnnotationRevision
+        fields = ('annotation_guid', 'title', 'description', 'fragment', 'tags')
+
+
+class IconolabCommentSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = IconolabComment
+        fields = '__all__'
--- a/src/iconolab/templatetags/iconolab_tags.py	Wed Feb 22 11:04:40 2017 +0100
+++ b/src/iconolab/templatetags/iconolab_tags.py	Wed Feb 22 12:02:29 2017 +0100
@@ -1,6 +1,7 @@
 from django.template import Library
 from django.core.serializers import serialize
-from iconolab.models import AnnotationRevision, AnnotationRevisionSerializer
+from iconolab.models import AnnotationRevision
+from iconolab.serializers import AnnotationRevisionSerializer
 from rest_framework.renderers import JSONRenderer
 
 from iconolab import __version__
--- a/src/iconolab/views/comments.py	Wed Feb 22 11:04:40 2017 +0100
+++ b/src/iconolab/views/comments.py	Wed Feb 22 12:02:29 2017 +0100
@@ -9,7 +9,8 @@
 from django_comments import signals
 from django_comments.views.utils import next_redirect, confirmation_view
 from django_comments.views.comments import CommentPostBadRequest
-from iconolab.models import MetaCategoryInfo, Annotation, IconolabComment, IconolabCommentSerializer
+from iconolab.models import MetaCategoryInfo, Annotation, IconolabComment
+from iconolab.serializers import IconolabCommentSerializer
 from rest_framework.renderers import JSONRenderer
 
 @csrf_protect
--- a/src/iconolab/views/objects.py	Wed Feb 22 11:04:40 2017 +0100
+++ b/src/iconolab/views/objects.py	Wed Feb 22 12:02:29 2017 +0100
@@ -12,9 +12,9 @@
 from django.contrib.sites.models import Site
 from django.conf import settings
 from notifications.models import Notification
-from iconolab.models import Annotation, AnnotationRevision, AnnotationRevisionSerializer, Collection, Item, Image, IconolabComment, MetaCategory, MetaCategoryInfo
+from iconolab.models import Annotation, AnnotationRevision, Collection, Item, Image, IconolabComment, MetaCategory, MetaCategoryInfo
 from iconolab.forms.annotations import AnnotationRevisionForm
-from rest_framework import serializers
+from iconolab.serializers import AnnotationRevisionSerializer
 import logging
 
 logger = logging.getLogger(__name__)
@@ -593,17 +593,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)
-            revision_comment = annotation_form.cleaned_data['comment']
-            comment = IconolabComment.objects.create(
-                comment = revision_comment,
-                revision = new_revision,
-                content_type = ContentType.objects.get(app_label='iconolab', model='annotation'),
-                content_object = annotation,
-                site = Site.objects.get(id=settings.SITE_ID),
-                object_pk = annotation.id,
-                user = request.user,
-                user_name = request.user.username
-            )
             redirect_url = reverse('image_detail', kwargs={'collection_name': collection_name, 'image_guid': image_guid})
             return RedirectView.as_view(url=redirect_url)(request)
         context = self.get_context_data(**kwargs)