diff -r 94f586daa623 -r 8ca7f2cea729 alcatel/controller/DocumentaryFileAnnotation.py --- /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