Esempio n. 1
0
    def default(self, obj):
        if isinstance(obj, AnnotationReply):
            if obj.is_public:
                replier = obj.replier
            else:
                replier = {
                    'is_authenticated': False,
                },

            reply_to_annotation_reply_uuid = None
            if obj.reply_to_annotation_reply is not None:
                reply_to_annotation_reply_uuid = obj.reply_to_annotation_reply.uuid

            return {
                'pk': obj.pk,
                'uuid': obj.uuid,
                'post_time': obj.post_time,
                'edit_time': obj.edit_time,
                'replier': replier,
                'num_like': obj.num_like,
                # 'content': conditional_escape(obj.content),
                'content': obj.content,
                'reply_to_annotation_reply_uuid':
                reply_to_annotation_reply_uuid
            }
        elif isinstance(obj, User):
            return UserEncoder().default(obj)
        return super(AnnotationReplyEncoder, self).default(obj)
Esempio n. 2
0
 def default(self, obj):
     if isinstance(obj, Readlist):
         return {
             'id':
             obj.id,
             'uuid':
             obj.clean_uuid,
             'slug':
             obj.slug,
             'name':
             obj.name,
             'owner':
             obj.creator,
             'url':
             '/readlists/' + obj.slug,
             'documents_uuids':
             list(
                 map(lambda document: document.clean_uuid,
                     list(obj.documents.all()))),
             'num_collectors':
             obj.collectors.count(),
             'create_time':
             obj.create_time,
         }
     elif isinstance(obj, User):
         return UserEncoder().default(obj)
     else:
         return super(ReadlistListEncoder, self).default(obj)
Esempio n. 3
0
 def default(self, obj):
     if isinstance(obj, CoterieApplication):
         return {
             'pk':
             obj.pk,
             'application_message':
             obj.application_message,
             'coterie_pk':
             obj.coterie.pk,
             'coterie_name':
             obj.coterie.name,
             'applicant_email':
             obj.applicant.email_address,
             'applicant_nickname':
             obj.applicant.nickname,
             'applicant':
             obj.applicant,
             'accept_method':
             'post',
             'reject_method':
             'post',
             'accept_url':
             '/coterie/api/applications/' + str(obj.pk) + '/accept',
             'reject_url':
             '/coterie/api/applications/' + str(obj.pk) + '/reject',
         }
     elif isinstance(obj, User):
         return UserEncoder().default(obj)
     return super(CoterieApplicationEncoder, self).default(obj)
Esempio n. 4
0
 def default(self, obj):
     if isinstance(obj, Coterie):
         return {
             'pk': obj.pk,
             'uuid': obj.clean_uuid,
             'name': obj.name,
             'description': obj.description,
             'administrators': list(obj.administrators.all()),
         }
     elif isinstance(obj, User):
         return UserEncoder().default(obj)
Esempio n. 5
0
 def default(self, obj):
     if isinstance(obj, CoterieReadlist):
         return {
             'uuid':
             obj.clean_uuid,
             'slug':
             obj.slug,
             'name':
             obj.name,
             'documents':
             list(obj.documents.all()),
             'documents_uuids':
             list(
                 map(lambda document: document.clean_uuid,
                     list(obj.documents.all()))),
             'owner':
             obj.creator,
             'description':
             obj.description,
             'num_collectors':
             obj.collectors.count(),
             'create_time':
             obj.create_time,
             'url':
             '/groups/' + obj.coterie.clean_uuid + '/readlists/' + obj.slug,
             'delete_url':
             '/coterie/api/' + str(obj.coterie.id) + '/coteriereadlists/' +
             obj.slug + '/delete',
             'collect_url':
             '/coterie/api/' + str(obj.coterie.id) + '/coteriereadlists/' +
             obj.slug + '/collect',
             'uncollect_url':
             '/coterie/api/' + str(obj.coterie.id) + '/coteriereadlists/' +
             obj.slug + '/uncollect',
             'remove_document_url':
             '/coterie/api/' + str(obj.coterie.id) + '/coteriereadlists/' +
             obj.slug + '/remove_document',
             'rename_url':
             '/coterie/api/' + str(obj.coterie.id) + '/coteriereadlists/' +
             obj.slug + '/rename',
             'change_desc_url':
             '/coterie/api/' + str(obj.coterie.id) + '/coteriereadlists/' +
             obj.slug + '/change_desc',
             'change_privacy_url':
             '/coterie/api/' + str(obj.coterie.id) + '/coteriereadlists/' +
             obj.slug + '/change_privacy',
         }
     elif isinstance(obj, CoterieDocument):
         return CoterieDocumentEncoder().default(obj)
     elif isinstance(obj, User):
         return UserEncoder().default(obj)
     else:
         return super(CoterieReadlistEncoder, self).default(obj)
Esempio n. 6
0
 def default(self, obj):
     if isinstance(obj, Annotation):
         if obj.is_public:
             annotator = obj.annotator
         else:
             annotator = {
                 'is_authenticated': False,
             },
         return {
             'pk':
             obj.pk,
             'uuid':
             obj.uuid,
             'annotator':
             annotator,
             'page_index':
             obj.page_index,
             'height_percent':
             obj.height_percent,
             'width_percent':
             obj.width_percent,
             'top_percent':
             obj.top_percent,
             'left_percent':
             obj.left_percent,
             'frame_color':
             obj.frame_color,
             'num_like':
             obj.num_like,
             'post_time':
             obj.post_time,
             'edit_time':
             obj.edit_time,
             'replies':
             list(obj.annotationreply_set.all().order_by('post_time')),
             # 'content': conditional_escape(obj.content),
             'content':
             obj.content,
         }
     elif isinstance(obj, User):
         return UserEncoder().default(obj)
     elif isinstance(obj, AnnotationReply):
         return AnnotationReplyEncoder().default(obj)
     else:
         return super(AnnotationEncoder, self).default(obj)
Esempio n. 7
0
 def default(self, obj):
     if isinstance(obj, Readlist):
         return {
             'uuid':
             obj.clean_uuid,
             'slug':
             obj.slug,
             'name':
             obj.name,
             'documents':
             list(obj.documents.all()),
             'owner':
             obj.creator,
             'description':
             obj.description,
             'num_collectors':
             obj.collectors.count(),
             'create_time':
             obj.create_time,
             'url':
             '/readlists/' + obj.slug,
             'delete_url':
             '/file_viewer/api/readlists/' + obj.slug + '/delete',
             'collect_url':
             '/file_viewer/api/readlists/' + obj.slug + '/collect',
             'uncollect_url':
             '/file_viewer/api/readlists/' + obj.slug + '/uncollect',
             'remove_document_url':
             '/file_viewer/api/readlists/' + obj.slug + '/remove_document',
             'rename_url':
             '/file_viewer/api/readlists/' + obj.slug + '/rename',
             'change_desc_url':
             '/file_viewer/api/readlists/' + obj.slug + '/change_desc',
             'change_privacy_url':
             '/file_viewer/api/readlists/' + obj.slug + '/change_privacy',
         }
     elif isinstance(obj, Document):
         return DocumentEncoder().default(obj)
     elif isinstance(obj, User):
         return UserEncoder().default(obj)
     else:
         return super(ReadlistEncoder, self).default(obj)
Esempio n. 8
0
 def default(self, obj):
     if isinstance(obj, Coterie):
         return {
             'name':
             obj.name,
             'description':
             obj.description,
             'pk':
             obj.pk,
             'uuid':
             obj.clean_uuid,
             'coteriedocument_set':
             list(obj.coteriedocument_set.all()),
             'coteriereadlist_set':
             list(obj.coteriereadlist_set.all()),
             'creator':
             obj.creator,
             'administrators':
             list(obj.administrators.all()),
             'members':
             list(obj.members.all()),
             'remove_member_method':
             'post',
             'remove_member_url':
             '/coterie/api/coteries/' + str(obj.pk) + '/removemember',
         }
     elif isinstance(obj, CoterieDocument):
         return CoterieDocumentEncoder().default(obj)
     elif isinstance(obj, CoterieReadlist):
         return CoterieReadlistEncoder().default(obj)
     elif isinstance(obj, User):
         return UserEncoder().default(obj)
     elif isinstance(obj, CoterieApplication):
         return CoterieApplicationEncoder().default(obj)
     else:
         return super(CoterieEncoder, self).default(obj)