diff -r 94f586daa623 -r 8ca7f2cea729 alcatel/document/views.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/alcatel/document/views.py Thu Jan 24 16:58:55 2013 +0100 @@ -0,0 +1,369 @@ +import logging +import json +import simplejson as json +from django.http import Http404 +from django.http import HttpResponse +#from django.http import HttpResponseRedirect +#from django.contrib.auth.decorators import login_required +from django.contrib.auth import logout +from django.shortcuts import render_to_response +from django.template import RequestContext +from django.contrib.auth import authenticate +from django.contrib.auth import login +from django.shortcuts import redirect +from django.core.urlresolvers import reverse +from django.http import HttpResponseRedirect, HttpResponse +from django.contrib.auth.decorators import login_required +from controller.Searcher import Searcher +from controller.ClusterAnnotation import ClusterAnnotation +from controller.DocumentAnnotation import DocumentAnnotation +from controller.DocumentaryFile import DocumentaryFile +from controller.Documents import Documents +from controller.DocumentaryFiles import DocumentaryFiles +from controller.Clusters import Clusters +from controller.DocumentaryFileAnnotation import DocumentaryFileAnnotation +from document.models import Documentaryfile + + +logger = logging.getLogger('document') + +def main_page(request): + print 'main_page called' + return render_to_response('index.html') + +def login_view(request): + logger.info('login_view called!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!') + print request + username = request.POST['username'] + password = request.POST['password'] + user = authenticate(username=username, password=password) + my_data_dictionary = {'loginstatus': ''} + my_data_dictionary['dossierDocs'] = [] + + if user is not None: + if user.is_active: + login(request, user) + dossierDoc = [] + documentaryFiles = Documentaryfile.objects.filter(user=request.user.id) + if documentaryFiles: + for docfile in documentaryFiles: + dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url}) + + my_data_dictionary['dossierDocs'].append(dossierDoc) + request.session['dossierDocs'] = dossierDoc + logger.info(my_data_dictionary['dossierDocs']) + print 'user logged' + else: + logger.info('user not active') + print 'user not active' + my_data_dictionary['loginstatus'] = 'Utilisateur inactif' + else: + print 'invalid user' + logger.info('invalid user') + my_data_dictionary['loginstatus'] = 'Idenfiant ou mot de passe incorrect' + + request.session['refreshOnly'] = True + print 'next!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' + print request.GET.get('next', '/') + return HttpResponseRedirect(request.GET.get('next', '/')) + + +def logout_view(request): + """ + Logout users out and re-direct them to the main page. + """ + query_id = request.session['query_id'] + key1 = request.session['key1'] + json2 = request.session['json2'] + json = request.session['json'] + + logout(request) + request.session['refreshOnly'] = True + request.session['query_id'] = query_id + request.session['key1'] = key1 + request.session['json2'] = json2 + request.session['json'] = json + return HttpResponseRedirect(request.GET.get('next', '/')) + + +def document_main_page(request): + logger.info('document_main_page called') + request.session['refreshOnly'] = False + request.session['json2'] = {} + request.session['json'] = {} + request.session['query_id'] = '' + request.session['key1'] = '' + + my_data_dictionary = {'user': request.user} + my_data_dictionary['loginstatus'] = '' + my_data_dictionary['dossierDocs'] = [] + dossierDoc = [] + + if not request.user.is_authenticated(): + print 'Anonymous user' + return render_to_response('index.html', my_data_dictionary, context_instance=RequestContext(request)) + else: + documentaryFiles = Documentaryfile.objects.filter(user=request.user.id) + if documentaryFiles: + for docfile in documentaryFiles: + dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url}) + + my_data_dictionary['dossierDocs'].append(dossierDoc) + logger.info(my_data_dictionary['dossierDocs']) + + # get user information here (documentary file ...) + + # + return render_to_response('index.html', my_data_dictionary, context_instance=RequestContext(request)) + +def get_mesdossiersDoc(request): + logger.info('get_mesdossiersDoc called') + my_data_dictionary = {'user': request.user} + my_data_dictionary['loginstatus'] = '' + my_data_dictionary['myDocumentaryFiles'] = '' + logger.info('get_mesdossiersDoc called2') + if not request.user.is_authenticated(): + logger.info('Anonymous user') + return render_to_response('index.html', my_data_dictionary, context_instance=RequestContext(request)) + else: + logger.info('user'+str(request.user)) + documentaryFiles = Documentaryfile.objects.filter(user=request.user.id) + if documentaryFiles: + my_data_dictionary['myDocumentaryFiles'] = '

Mes dossiers docs

' + for docfile in documentaryFiles: + my_data_dictionary['myDocumentaryFiles'] += '
' + my_data_dictionary['myDocumentaryFiles'] += '

' + my_data_dictionary['myDocumentaryFiles'] += docfile.title + my_data_dictionary['myDocumentaryFiles'] += '


' + my_data_dictionary['myDocumentaryFiles'] += docfile.description + my_data_dictionary['myDocumentaryFiles'] += '

' + + # get user information here (documentary file ...) + + # + return render_to_response('mesdossiersDoc.html', my_data_dictionary, context_instance=RequestContext(request)) + + +def streamgraph(request): + print 'streamgraph' + if request.method == 'POST': + print 'POST' + searcher = Searcher(request); + json = searcher.streamgraph() + return HttpResponse(json) + else: + print 'ERROR' + raise Http404 + return HttpResponse("OK") + + +def treemap(request): + print 'TREEMAP ENTER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' + my_data_dictionary = {'user': request.user} + my_data_dictionary['dossierDocs'] = [] + dossierDoc = [] + if request.user.is_authenticated(): + print request.user.is_authenticated() + documentaryFiles = Documentaryfile.objects.filter(user=request.user.id) + if documentaryFiles: + for docfile in documentaryFiles: + dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url}) + print dossierDoc + my_data_dictionary['dossierDocs'].append(dossierDoc) + logger.info(my_data_dictionary['dossierDocs']) + + searcher = Searcher(request); + json = searcher.treemap() + request.session['json'] = json + if request.is_ajax(): + print("is_ajax") + return HttpResponse(json) + else: + print("isnot_ajax") + return render_to_response('recherche.html',my_data_dictionary, context_instance=RequestContext(request)) + + +def get_documents_with_annotations(request,query=0,cluster=0,offset=0,count=0): + print 'get_documents_with_annotations !!!!!!!!' + + '''if request.method == 'GET':''' + if request.method == 'GET' and request.session['refreshOnly'] == True: + print("get_request and refresh") + json2 = request.session['json2'] + request.session['refreshOnly'] = False + else: + print("NOT get_request and refresh") + documents = Documents(request) + json2 = documents.get_documents(query,cluster,offset,count) + request.session['json2'] = json2 + + d = json.loads(json2) + my_data_dictionary = {'cluster_title': d['cluster_title']} + my_data_dictionary['dossierDocs'] = [] + dossierDoc = [] + + if request.user.is_authenticated(): + print request.user.is_authenticated() + documentaryFiles = Documentaryfile.objects.filter(user=request.user.id) + if documentaryFiles: + for docfile in documentaryFiles: + dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url}) + print dossierDoc + my_data_dictionary['dossierDocs'].append(dossierDoc) + logger.info(my_data_dictionary['dossierDocs']) + + if request.is_ajax(): + print("is_ajax") + return HttpResponse(json2) + else: + print("isnot_ajax") + return render_to_response('cluster.html',my_data_dictionary, context_instance=RequestContext(request)) + '''return HttpResponse(json)''' + + '''else: + raise Http404''' + +def get_annotations(request): + if request.method == 'GET': + print 'get_annotations' + annotations = DocumentAnnotation(request); + json = annotations.get_annotations() + return HttpResponse(json) + else: + raise Http404 + +@login_required +def documentary_files(request,myuser="",offset=0,count=0): + print 'documentary_files' + print request.user + if request.method == 'GET': + doc_files = DocumentaryFiles(request); + json = doc_files.get_files(myuser,offset,count) + request.session['json3'] = json + '''return HttpResponse(json)''' + + my_data_dictionary = {} + my_data_dictionary['dossierDocs'] = [] + dossierDoc = [] + + if request.user.is_authenticated(): + print request.user.is_authenticated() + documentaryFiles = Documentaryfile.objects.filter(user=request.user.id) + if documentaryFiles: + for docfile in documentaryFiles: + dossierDoc.append({'title':docfile.title, 'description':docfile.description, 'url':docfile.image.url}) + print dossierDoc + my_data_dictionary['dossierDocs'].append(dossierDoc) + logger.info(my_data_dictionary['dossierDocs']) + + return render_to_response('dossiersdocumentaire.html',my_data_dictionary, context_instance=RequestContext(request)) + else: + raise Http404 + +def documentary_file_visibility(request): + if request.method == 'POST': + print 'documentary_file_visibility' + documentary_file = DocumentaryFile(request); + json = documentary_file.visibilityChange() + return HttpResponse(json) + else: + raise Http404 + return HttpResponse("OK") + +def documentary_file_delete(request): + if request.method == 'POST': + print 'documentary_file_delete' + documentaryfile_var = DocumentaryFile(request); + json = documentaryfile_var.delete() + + return HttpResponse(json) + else: + raise Http404 + return HttpResponse("OK") + +def documentary_file_create(request): + if request.method == 'POST': + logger.info('documentary_file create') + documentary_file = DocumentaryFile(request); + json = documentary_file.create() + + return HttpResponse(json) + else: + raise Http404 + return HttpResponse("OK") + +def cluster_annotation_create(request): + if request.method == 'POST': + logger.info('cluster annotation create') + clusterAnnotation_var = ClusterAnnotation(request); + json = clusterAnnotation_var.create() + + return HttpResponse(json) + else: + raise Http404 + return HttpResponse("OK") + +def cluster_annotation_delete(request): + if request.method == 'POST': + logger.info('cluster annotation delete') + clusterAnnotation_var = ClusterAnnotation(request); + json = clusterAnnotation_var.delete() + + return HttpResponse(json) + else: + raise Http404 + return HttpResponse("OK") + +def document_annotation_create(request): + if request.method == 'POST': + logger.info('document annotation create') + document_annotation = DocumentAnnotation(request); + json = document_annotation.create() + + return HttpResponse(json) + else: + raise Http404 + return HttpResponse("OK") + +def document_annotation_delete(request): + if request.method == 'POST': + logger.info('document annotation delete') + document_annotation = DocumentAnnotation(request); + json = document_annotation.delete() + + return HttpResponse(json) + else: + raise Http404 + return HttpResponse("OK") + +def get_clusters(request): + if request.method == 'GET': + logger.info('get clusters of a documentary file') + clusters = Clusters(request); + json = clusters.get_treemap_of_clusters() + + return HttpResponse(json) + else: + raise Http404 + +def create_annotation_on_documentary_file(request): + if request.method == 'POST': + logger.info('create an annotation on a documentary file') + annotation = DocumentaryFileAnnotation(request); + json = annotation.create() + + return HttpResponse(json) + else: + raise Http404 + +def delete_annotation_on_documentary_file(request): + if request.method == 'POST': + logger.info('delete an annotation on a documentary file') + annotation = DocumentaryFileAnnotation(request); + json = annotation.delete() + + return HttpResponse(json) + else: + raise Http404 \ No newline at end of file