# HG changeset patch # User Alexandre Segura # Date 1489427315 -3600 # Node ID a04c55054afe21a0775146dbad86864e753ec425 # Parent 3a2a2a798bf498f3ae804ff0ceb6e9aa695cb1f3 Introduce display of all annotations at the same time. - Add stats to serialized annotation. - Introduce AnnotationList component. - Pass array of annotations to component. - Handle click on annotation & drawing. diff -r 3a2a2a798bf4 -r a04c55054afe src/iconolab/serializers.py --- a/src/iconolab/serializers.py Thu Mar 09 12:39:36 2017 +0100 +++ b/src/iconolab/serializers.py Mon Mar 13 18:48:35 2017 +0100 @@ -1,9 +1,15 @@ -from iconolab.models import AnnotationRevision, IconolabComment +from iconolab.models import AnnotationRevision, IconolabComment, AnnotationStats from rest_framework import serializers +class AnnotationStatsSerializer(serializers.ModelSerializer): + class Meta: + model = AnnotationStats + fields = ('submitted_revisions_count', 'awaiting_revisions_count', 'accepted_revisions_count', 'contributors_count', 'views_count', 'comments_count', 'tag_count') + class AnnotationRevisionSerializer(serializers.ModelSerializer): tags = serializers.SerializerMethodField('get_normalized_tags') annotation_guid = serializers.SerializerMethodField() + stats = AnnotationStatsSerializer(source='annotation.stats') def get_normalized_tags(self, obj): tags = [] @@ -21,8 +27,7 @@ class Meta: model = AnnotationRevision - fields = ('annotation_guid', 'title', 'description', 'fragment', 'tags') - + fields = ('annotation_guid', 'title', 'description', 'fragment', 'tags', 'stats') class IconolabCommentSerializer(serializers.ModelSerializer): allow_thread = serializers.BooleanField() diff -r 3a2a2a798bf4 -r a04c55054afe src/iconolab/templates/iconolab/detail_image.html --- a/src/iconolab/templates/iconolab/detail_image.html Thu Mar 09 12:39:36 2017 +0100 +++ b/src/iconolab/templates/iconolab/detail_image.html Mon Mar 13 18:48:35 2017 +0100 @@ -10,25 +10,11 @@
{% if image.annotations.exists %} - + {% else %}
Pas d'annotation pour cette image
@@ -41,7 +27,10 @@ ref="annotator" image="{% with image.media as img %}{{ img.url }}{% endwith %}" thumbnail="{% thumbnail image.media '100x100' crop=False as thumb %}{{ thumb.url }}{% endthumbnail %}" - v-bind:is-authenticated="isAuthenticated"> + v-bind:is-authenticated="isAuthenticated" + v-bind:annotations="annotations" + v-on:click:annotation="onAnnotationClick($event)" + v-on:close:annotation="onAnnotationClose">
{% csrf_token %} @@ -61,7 +50,7 @@
-