# HG changeset patch # User Alexandre Segura # Date 1487761349 -3600 # Node ID db6c41f04e79d6d3eb0b8d1c0c64d1d67262b062 # Parent 157819077ee5421926695c2414696ffbdbdf96b5 Move serializers to dedicated file, do not create comment on revision creation. diff -r 157819077ee5 -r db6c41f04e79 src/iconolab/models.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 diff -r 157819077ee5 -r db6c41f04e79 src/iconolab/serializers.py --- /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__' diff -r 157819077ee5 -r db6c41f04e79 src/iconolab/templatetags/iconolab_tags.py --- 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__ diff -r 157819077ee5 -r db6c41f04e79 src/iconolab/views/comments.py --- 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 diff -r 157819077ee5 -r db6c41f04e79 src/iconolab/views/objects.py --- 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)