Move serializers to dedicated file, do not create comment on revision creation.
--- 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)