alcatel/controller/DocumentaryFile.py
changeset 42 de4e97ded3c6
parent 37 3848e1813a30
--- a/alcatel/controller/DocumentaryFile.py	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/controller/DocumentaryFile.py	Tue Sep 10 13:25:16 2013 +0200
@@ -11,7 +11,6 @@
 
 from dataparser.ClientDocumentaryFileAttributes import ClientDocumentaryFileAttributes
 from dataparser.ClientDocumentaryFileVisibilityAttributes import ClientDocumentaryFileVisibilityAttribute
-from dataparser.ClientDocumentaryFileDeleteAttributes import ClientDocumentaryFileDeleteAttributes
 from document.models import Cluster
 from document.models import Image
 from document.models import Document
@@ -58,6 +57,54 @@
        
         return json
     
+    
+    def modify(self,attr):
+        logger.info('modify')
+        
+        logger.info('get_description = ' + str(attr.get_description().encode("utf8")))
+        logger.info('get_title = ' + str(attr.get_title().encode("utf8")))
+        logger.info('get_visibility = ' + str(attr.get_visibility()))
+        try:
+            documentaryfile = Documentaryfile.objects.get(pk=attr.get_documentary_file_id())
+        except Documentaryfile.DoesNotExist:
+            json = '{"Error": "Invalid documentary id"}'
+            logger.info(json)
+            return json
+        
+        logger.info('documentaryfile.user.name = ' + str(documentaryfile.user.username))
+        if documentaryfile.user.username == attr.get_user():
+            if attr.get_visibility() == 'on':
+                visibility_attr = True
+            else:
+                visibility_attr = False
+            '''else:
+                json = '{"Error" : "Invalid visibility parameter"}'
+                logger.info(json)
+                return json'''
+            
+            for thecluster in documentaryfile.cluster_set.all():
+                for thedocument in thecluster.document.all():
+                    for theannotationdoc in thedocument.annotationdocument_set.all():
+                        theannotationdoc.visibility = visibility_attr
+                        theannotationdoc.save()
+            
+            title_attr = str(attr.get_title().encode("utf8"))
+            description_attr = str(attr.get_description().encode("utf8"))
+                      
+            documentaryfile.visibility = visibility_attr
+            documentaryfile.title = title_attr
+            documentaryfile.description = description_attr
+            
+            documentaryfile.save()
+            json = '{"modif": ok "}'
+            logger.info(json)
+        else:
+            json = '{"Error": "User does not matched"}'
+            logger.info(json)
+       
+        return json
+    
+    
     def visibilityChange(self):
         logger.info('visibilityChange')
         attr = ClientDocumentaryFileVisibilityAttribute(self.request)