src/iconolab/forms/annotations.py
author durandn
Fri, 24 Jun 2016 14:26:56 +0200
changeset 35 31d4f0e86723
parent 33 f9d4c9a63e4e
child 38 b319db67a5f3
permissions -rw-r--r--
added backend json handling for tags (properly tested/corrected) + corrected templates to replace image_ref with image_guid

from django.forms import ModelForm, TypedMultipleChoiceField, HiddenInput, CharField, MultipleHiddenInput
from iconolab.models import AnnotationRevision
import json

class MultipleTagsField(TypedMultipleChoiceField):
    pass

class AnnotationRevisionForm(ModelForm):
    tags = CharField()
    
    class Meta:
        model = AnnotationRevision
        fields = ('title', 'description', 'fragment')
        widgets = {
            'fragment': HiddenInput(),
            'tags': HiddenInput()
        }
    
    def tags_json(self):
        if self.instance:
            tags_list = []
            for tag_info in self.instance.tagginginfo_set.all():
                tags_list.append({
                    'tag_input': tag_info.tag.link,
                    'relevancy': tag_info.relevancy,
                    'accuracy': tag_info.accuracy
                })
            return json.dumps(tags_list)
        else:
            return '[]'