--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/alcatel/controller/DocumentaryFileAnnotation.py Thu Jan 24 16:58:55 2013 +0100
@@ -0,0 +1,118 @@
+'''
+Created on 10 Aout. 2012
+
+@author: Gerard
+'''
+
+import logging
+
+from dataparser.DocumentaryFileAnnotationAttributes import DocumentaryFileAnnotationCreateAttributes
+from dataparser.DocumentaryFileAnnotationDeleteAttributes import DocumentaryFileAnnotationDeleteAttributes
+from django.contrib.auth.models import User
+from document.models import Documentaryfile
+from document.models import AnnotationDocumentaryFile
+
+logger = logging.getLogger('document')
+
+class DocumentaryFileAnnotation(object):
+
+ def __init__(self, request):
+ self.request = request
+
+ def create(self):
+ attr = DocumentaryFileAnnotationCreateAttributes(self.request)
+
+ if attr.get_documentary_file_id() == '':
+ json = '{"error": "No documentary_file_id attribute in the http post request"}'
+ logger.info(json)
+ return json
+
+ if attr.get_user()=='':
+ json = '{"error": "No user attribute in the http post request"}'
+ logger.info(json)
+ return json
+
+ try:
+ user = User.objects.get(username=attr.get_user())
+ except User.DoesNotExist:
+ json = '{"error": "Invalid User Id"}'
+ logger.info(json)
+ return json
+
+ try:
+ docFile = Documentaryfile.objects.get(id=attr.get_documentary_file_id(), user_id=user.id)
+ except Documentaryfile.DoesNotExist:
+ json = '{"error": "Invalid DocumentaryFile Id"}'
+ logger.info(json)
+ return json
+
+ try:
+ annotation = AnnotationDocumentaryFile.objects.get(documentaryFile=docFile)
+ annotation.description = attr.get_annotation()
+ annotation.save(force_update=True)
+ except AnnotationDocumentaryFile.DoesNotExist:
+ annotation = AnnotationDocumentaryFile(description=attr.get_annotation(), user=user, documentaryFile=docFile)
+ annotation.save()
+
+ json = '{"annotation_documentary_file_created":' + str(annotation.id) + '}'
+ logger.info(json)
+ return json
+
+ def delete(self):
+ attr = DocumentaryFileAnnotationDeleteAttributes(self.request)
+
+ if attr.get_documentary_file_id() == '':
+ json = '{"error": "No documentary_file_id attribute in the http post request"}'
+ logger.info(json)
+ return json
+
+ if attr.get_user() == '':
+ json = '{"error": "No user attribute in the http post request"}'
+ logger.info(json)
+ return json
+
+ if attr.get_annotation_id() == '':
+ json = '{"error": "No annotation_id attribute in the http post request"}'
+ logger.info(json)
+ return json
+
+ try:
+ user = User.objects.get(username=attr.get_user())
+ except User.DoesNotExist:
+ json = '{"error": "Invalid User Id"}'
+ logger.info(json)
+ return json
+
+ try:
+ docFile = Documentaryfile.objects.get(id=attr.get_documentary_file_id(), user_id=user.id)
+ except Documentaryfile.DoesNotExist:
+ json = '{"error": "Invalid documentary file id"}'
+ logger.info(json)
+ return json
+
+ anotationDocumentaryFileId= attr.get_annotation_id()
+ try:
+ anotationDocumentaryFile = AnnotationDocumentaryFile.objects.get(pk=anotationDocumentaryFileId)
+ if attr.get_user() == anotationDocumentaryFile.user.username:
+ print 'get_documentary_file_id'
+ print str(attr.get_documentary_file_id())
+ print 'anotationDocumentaryFile.documentaryFile.id'
+ print str(anotationDocumentaryFile.documentaryFile.id)
+ if str(attr.get_documentary_file_id()) == str(anotationDocumentaryFile.documentaryFile.id):
+ anotationDocumentaryFile.delete()
+ json= '{"annotation_documentary_file_deleted" :' + str(anotationDocumentaryFileId) + '}'
+ logger.info(json)
+ else:
+ json= '{"Error": "DocumentaryFile does not matched"}'
+ logger.info(json)
+ return json
+ else:
+ json= '{"Error": "User does not matched"}'
+ logger.info(json)
+ return json
+ except AnnotationDocumentaryFile.DoesNotExist:
+ json= '{"error": "AnnotationDocumentaryFile Id not valid"}'
+ logger.info(json)
+ return json
+
+ return json