new
authorobledc
Tue, 10 Sep 2013 13:25:16 +0200
changeset 42 de4e97ded3c6
parent 41 44a8b4a109fd
child 43 d32f123bfb9e
new
alcatel/controller/DocumentaryFile.py
alcatel/controller/DocumentaryFiles.py
alcatel/dataparser/ClientDocumentaryFileAttributes.py
alcatel/django/templates/article.html
alcatel/django/templates/base.html
alcatel/django/templates/clusterDoc.html
alcatel/django/templates/dossiersdocumentaire.html
alcatel/django/templates/index-dossier.html
alcatel/document/views.py
alcatel/periplus/urls.py
--- 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)
--- a/alcatel/controller/DocumentaryFiles.py	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/controller/DocumentaryFiles.py	Tue Sep 10 13:25:16 2013 +0200
@@ -72,8 +72,8 @@
                     jsonfile['nb_articles'] = nb_articles
                     nb_articles = 0
                     jsonfile['date'] = docfile.date.isoformat()
-                    jsonfile['description'] = str(docfile.description)
-                    jsonfile['title'] = str(docfile.title)
+                    jsonfile['description'] = str(docfile.description.encode("utf8"))
+                    jsonfile['title'] = str(docfile.title.encode("utf8"))
                     image = Image.objects.get(id=docfile.image_id)
                     jsonfile['url_image'] = str(image.url)
                     
--- a/alcatel/dataparser/ClientDocumentaryFileAttributes.py	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/dataparser/ClientDocumentaryFileAttributes.py	Tue Sep 10 13:25:16 2013 +0200
@@ -36,6 +36,14 @@
             logger.info('No description attribute in the http post request.' + str(err))
         return description
     
+    def get_documentary_file_id(self):
+        documentary_file_id = ''
+        try:
+            documentary_file_id = self.request.POST['documentary_file_id']
+        except Exception, err:
+            logger.info('No documentary_file_id attribute in the http post request. ' + str(err))
+        return documentary_file_id
+    
     def get_query_id(self):
         query_id = ''
         try:
--- a/alcatel/django/templates/article.html	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/django/templates/article.html	Tue Sep 10 13:25:16 2013 +0200
@@ -25,17 +25,45 @@
   <ul class="header-menu">
                     <li><a href="http://localhost:8000"><img src="{{ STATIC_URL }}img/home-button.jpg" alt="" /> </a></li>
                    
-                        <li><a href="#">Cluster ></a></li>
-                        <li><a href="#">{{cluster_title}}</a></li>
+                        <li><a href="{{url_cluster}}">Cluster ></a></li>
+                        <li><a href="{{url_cluster}}">{{cluster_title}}</a></li>
                 </ul>
 
-                   
-       
-            
-  
  {% endblock %}
  
          {% block contentright %}
-    		<OBJECT type="text/html" data="{{url_article}}" width="950px" height="650px" style="margin:0;overflow:auto;border: none;">
+    	<OBJECT type="text/html" data="{{url_article}}" width="950px" height="650px" style="margin:0;overflow:auto;border: none;">
+                    
+                      <div class="add-annotation">+ ajouter une annotation</div>
+        <div class="annotation-frame-box">
+            <div class="annotation-fb-top"></div>
+            <div class="annotation-fb-left"></div>
+            <div class="annotation-fb-right"></div>
+            <div class="annotation-fb-bottom"></div>
+        </div>
+        <div class="annotation-frames"></div>
          {% endblock %}
-	 
\ No newline at end of file
+         
+        
+        {% block streamgraphjs %}
+                  <script src="{{ STATIC_URL }}js/streamgraphdoc.js"></script>
+                    <script src="{{ STATIC_URL }}js/lib/underscore-min.js"></script>
+        <script src="{{ STATIC_URL }}js/vendor/jquery-1.8.0.min.js"></script>
+        <script src="{{ STATIC_URL }}js/vendor/jquery-ui-1.8.24.custom.min.js"></script>
+        <script src="{{ STATIC_URL }}js/vendor/jquery.fancybox-1.3.4.pack.js"></script>
+        <script src="{{ STATIC_URL }}js/vendor/tag-it.min.js"></script>
+        <script src="{{ STATIC_URL }}js/annotation-article.js"></script>
+        <script>
+            var currentUser = {
+                id: "u-001",
+                name: "Edwy Plénel"
+            };
+            var currentDocumentaryFile = {
+                id: "d-001",
+                name: "Ce dossier documentaire"
+            };
+			</script>
+	 {% endblock %}
+               
+     
+      
\ No newline at end of file
--- a/alcatel/django/templates/base.html	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/django/templates/base.html	Tue Sep 10 13:25:16 2013 +0200
@@ -330,6 +330,12 @@
         <script src="{{ STATIC_URL }}js/plugins.js"></script>
         <script src="{{ STATIC_URL }}js/treemap.js"></script>
 		<script src="{{ STATIC_URL }}js/main.js"></script>
+         {% block streamgraphjs %}
         <script src="{{ STATIC_URL }}js/streamgraph.js"></script>
+         {% endblock %}
+         
+        
+       
+        
     </body>
 </html>
--- a/alcatel/django/templates/clusterDoc.html	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/django/templates/clusterDoc.html	Tue Sep 10 13:25:16 2013 +0200
@@ -24,7 +24,7 @@
  {% endblock %}
  
     {% block body %}
-    	<body onLoad="articles({{ request.session.jsondocuments }});loadStreamgraph({{ request.session.jsonstreamgraphdossierdoc }});">
+    	<body onLoad="articles({{ request.session.jsondocuments }});loadStreamgraphDoc({{ request.session.jsonstreamgraphdossierdoc }},{{request.session.docId}},'{{request.session.user}}');">
     {% endblock %}
     
      {% block query %}                   
@@ -130,4 +130,9 @@
       {% block affichage %} {% endblock %}
       
         {% block filtrestreamgraph %}<input type="hidden" id="requestType"  name="requestType"  value="streamgraphUpdate"/>{% endblock %}
-         {% block filtretreemap %}<form id="ajaxfiltretreemapdoc" method="post" action="/" class="filtre-date"><input type="hidden" id="requestType"  name="requestType"  value="treemapUpdate"/>{% endblock %}
\ No newline at end of file
+         {% block filtretreemap %}<form id="ajaxfiltretreemapdoc" method="post" action="/" class="filtre-date"><input type="hidden" id="requestType"  name="requestType"  value="treemapUpdate"/>{% endblock %}
+         
+         {% block streamgraphjs %}
+                  <script src="{{ STATIC_URL }}js/streamgraphdoc.js"></script>
+	 {% endblock %}
+               
\ No newline at end of file
--- a/alcatel/django/templates/dossiersdocumentaire.html	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/django/templates/dossiersdocumentaire.html	Tue Sep 10 13:25:16 2013 +0200
@@ -55,7 +55,24 @@
                                         </p>
                                     </form>
                                 </div>
-                            </div><!-- recherche -->
+                            </div>
+                            
+                            <div id="dialog-form2" title="Modifier votre dossier documentaire">
+                    <form id="ajaxdocumentaryfilemodify" method="post" action="/documentary_file_modify/?next=http://localhost:8000/documentary_files/">{% csrf_token %}
+                        <fieldset>
+                        <label for="title">Titre du dossier</label>
+                        <input type="text" id="titlemodif" name="title" id="title" class="text ui-widget-content ui-corner-all" />
+                        <label for="description">Description</label>
+                        <input type="text" id="descriptionmodif" name="description" id="description" value="" class="text ui-widget-content ui-corner-all" />
+                        <label for="description">Visibilité</label>
+                        <br><br>
+                        <input type="checkbox" id="visibility" name="visibility" > <label for="">Public (par défaut à privé)</label>
+                         <input type="hidden" id="documentary_file_id"  name="documentary_file_id"/>
+                         <input type="hidden" id="user"  name="user"/>
+                        </fieldset>
+                    </form>
+                      </div>
+                      <!-- recherche -->
                             <!--div class="widget classer">
                                 <h3><a href="#">CLASSER</a></h3>
                                 <div class="widget-inner">
--- a/alcatel/django/templates/index-dossier.html	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/django/templates/index-dossier.html	Tue Sep 10 13:25:16 2013 +0200
@@ -12,7 +12,7 @@
     
     {% endblock %}
     {% block body %}
-    	<body onLoad="showResultsDossierDoc({{ request.session.jsontreemapdossierdoc }});loadStreamgraph({{ request.session.jsonstreamgraphdossierdoc }});setCategories({{ request.session.jsontreemapdossierdoc }}); ">
+    	<body onLoad="showResultsDossierDoc({{ request.session.jsontreemapdossierdoc }});loadStreamgraphDoc({{ request.session.jsonstreamgraphdossierdoc }},{{request.session.docId}},'{{request.session.user}}');setCategories({{ request.session.jsontreemapdossierdoc }}); ">
     {% endblock %}
  {% block headerdossier %}
   <div class="header-documentaire">
@@ -61,6 +61,8 @@
                                 </div>
                             </div><!-- affichage -->
                            
+                             
+                      
                             <!--div class="widget filtre">
                                 <h3><a href="#" class="open">FILTRES</a></h3>
                                 <div class="widget-inner">
@@ -118,7 +120,10 @@
                         </div>
                         </div>
         {% endblock %}
-                                
-	 
+        
+        
+       {% block streamgraphjs %}
+                  <script src="{{ STATIC_URL }}js/streamgraphdoc.js"></script>
+	 {% endblock %}
                
            
\ No newline at end of file
--- a/alcatel/document/views.py	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/document/views.py	Tue Sep 10 13:25:16 2013 +0200
@@ -22,16 +22,19 @@
 from document.models import Documentaryfile
 from django.core.urlresolvers import reverse
 from mediapartdb.MediapartReader import MediapartReader
+from dataparser.ClientDocumentaryFileAttributes import ClientDocumentaryFileAttributes
 
 logger = logging.getLogger('document')
 
-def article(request,cluster_title, id_article):
+def article(request,id_article):
 	logger.info('article called'+str(request))
 	logger.info('article called'+str(id_article))
 	reader = MediapartReader()
 	url = reader.get_url(str(id_article))
 	logger.info('url'+str(url))
-	my_data_dictionary = {'url_article': url, 'cluster_title': cluster_title}
+	cluster_title = request.POST['clustertitle']
+	url_cluster = request.POST['urlCluster']
+	my_data_dictionary = {'url_article': url, 'cluster_title': cluster_title, 'url_cluster': url_cluster}
 	
 	my_data_dictionary['dossierDocs'] = []
 
@@ -257,6 +260,8 @@
 					request.session['query_id_streamgraph'] = ''
 					request.session['query_id'] = ''
 					request.session['key1'] = ''
+					request.session['user'] = ''
+					request.session['docId'] = 0
 					request.session['from_date'] = ''
 					request.session['to_date'] = ''
 					request.session['category'] = []
@@ -423,8 +428,11 @@
 
 	my_data_dictionary = {'user': request.user}
 	my_data_dictionary['dossierDocs'] = []
-
-	
+	logger.info('get_documentary_file user ********** ='+str(request.session['user']))
+	logger.info('get_documentary_file docId ********** ='+str(request.session['docId']))
+	'''request.session['user'] = request.user'''
+	request.session['docId'] = docId
+	logger.info('get_documentary_file docId ********** ='+str(request.session['docId']))
 	dossierDoc = []
 	if request.user.is_authenticated():
 		logger.info('user')
@@ -446,10 +454,12 @@
 		documents = Documents(request)
 		jsondocuments = documents.get_documents(0,cluster,offset,count,docId)
 		request.session['jsondocuments'] = jsondocuments
+		logger.info('redirect clusterDoc.html')
 		return render_to_response('clusterDoc.html',my_data_dictionary, context_instance=RequestContext(request))
 	else:		
 		logger.info('my_data_dictionary = '+str(request.session['jsontreemapdossierdoc']))
 		logger.info('my_data_dictionary = '+str(request.session['jsonstreamgraphdossierdoc']))
+		logger.info('redirect index-dossier.html')
 		return render_to_response('index-dossier.html',my_data_dictionary, context_instance=RequestContext(request))
 		
 		
@@ -498,6 +508,19 @@
 		raise Http404
 	return HttpResponse("OK")
 
+def documentary_file_modify(request):
+	if request.method == 'POST':
+		logger.info('documentary_file_modify = '+str(request))
+		attr = ClientDocumentaryFileAttributes(request)
+		documentary_file = DocumentaryFile(request);
+		json = documentary_file.modify(attr)
+		url_redirect = request.GET.get('next', '/')+attr.get_user()
+		logger.info('url_redirect = '+str(url_redirect))
+		return HttpResponseRedirect(url_redirect) 				
+	else:
+		raise Http404
+	return HttpResponse("OK")
+
 def documentary_file_delete(request,docId=0):
 	logger.info('isajax ???'+str(request.is_ajax()))	
 	if request.method == 'POST':
--- a/alcatel/periplus/urls.py	Wed Sep 04 10:03:16 2013 +0200
+++ b/alcatel/periplus/urls.py	Tue Sep 10 13:25:16 2013 +0200
@@ -21,6 +21,8 @@
     #url(r'^documentary_file_delete/', 'document.views.documentary_file_delete'),
     # Delete a documentary file
     url(r'^documentary_file_delete/(?P<docId>\d+)/$', 'document.views.documentary_file_delete'),
+    # Modify a documentary file
+    url(r'^documentary_file_modify/', 'document.views.documentary_file_modify'),
     # Create a documentary file
     url(r'^documentary_file_create/', 'document.views.documentary_file_create'),
     # Annotate a documentary file
@@ -64,7 +66,7 @@
     (r'^documentary_file_user_update/$', 'document.views.documentary_file_user_update'),
     
     # Main page
-    url(r'^article/(?P<cluster_title>\w+)/(?P<id_article>\d+)/$', 'document.views.article', name='article'),
+    url(r'^article/(?P<id_article>\d+)/$', 'document.views.article', name='article'),
     
     # Main page
     url(r'^$', 'document.views.document_main_page', name='main-page'),