--- 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'),