alcatel/document/views.py
changeset 27 8ca7f2cea729
child 37 3848e1813a30
--- /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'] = '<section id="dossierDoc"><h1>Mes dossiers docs</h1>'
+			for docfile in documentaryFiles:
+				my_data_dictionary['myDocumentaryFiles'] += '<article style="width:278px">'
+				my_data_dictionary['myDocumentaryFiles'] += '<img src="{{ STATIC_URL }}images/'
+				my_data_dictionary['myDocumentaryFiles'] += docfile.image.url
+				my_data_dictionary['myDocumentaryFiles'] += '" style="height:60px;width:60px;float:left;padding-right:10px"/> <h2 style="float:left">'
+				my_data_dictionary['myDocumentaryFiles'] += docfile.title
+				my_data_dictionary['myDocumentaryFiles'] += '</h2><br><p>'
+				my_data_dictionary['myDocumentaryFiles'] += docfile.description
+				my_data_dictionary['myDocumentaryFiles'] += '</p></article>'
+
+	# 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