Commit 61f36a90 authored by Administrator's avatar Administrator

Integration Alexs work

parents b4c2d885 e3401222
This diff is collapsed.
...@@ -3,7 +3,7 @@ from django.conf.urls import patterns, include, url ...@@ -3,7 +3,7 @@ from django.conf.urls import patterns, include, url
from django.contrib import admin from django.contrib import admin
from gargantext_web.views import home, projects, project, corpus from gargantext_web.views import home, projects, project, corpus
from gargantext_web.views import add_corpus, delete_project, delete_corpus from gargantext_web.views import delete_project, delete_corpus
from gargantext_web.views import exploration from gargantext_web.views import exploration
from gargantext_web.views import explorer_graph, explorer_matrix from gargantext_web.views import explorer_graph, explorer_matrix
...@@ -22,7 +22,6 @@ urlpatterns = patterns('', ...@@ -22,7 +22,6 @@ urlpatterns = patterns('',
url(r'^project/(\d+)/delete/$', delete_project), url(r'^project/(\d+)/delete/$', delete_project),
url(r'^project/(\d+)/$', project), url(r'^project/(\d+)/$', project),
url(r'^project/(\d+)/add/$', add_corpus),
url(r'^project/(\d+)/corpus/(\d+)/$', corpus), url(r'^project/(\d+)/corpus/(\d+)/$', corpus),
url(r'^project/(\d+)/corpus/(\d+)/delete/$', delete_corpus), url(r'^project/(\d+)/corpus/(\d+)/delete/$', delete_corpus),
......
...@@ -8,7 +8,7 @@ from django.template import Context ...@@ -8,7 +8,7 @@ from django.template import Context
#from documents.models import Project, Corpus, Document #from documents.models import Project, Corpus, Document
from node.models import Language, ResourceType, Resource from node.models import Language, ResourceType, Resource
from node.models import Node, NodeType, Project, Corpus from node.models import Node, NodeType, Node_Resource, Project, Corpus
from node.admin import CorpusForm, ProjectForm, ResourceForm from node.admin import CorpusForm, ProjectForm, ResourceForm
from django.contrib.auth.models import User from django.contrib.auth.models import User
...@@ -25,7 +25,6 @@ from collections import defaultdict ...@@ -25,7 +25,6 @@ from collections import defaultdict
from parsing.FileParsers import * from parsing.FileParsers import *
# SOME FUNCTIONS # SOME FUNCTIONS
def query_to_dicts(query_string, *query_args): def query_to_dicts(query_string, *query_args):
...@@ -127,6 +126,20 @@ def project(request, project_id): ...@@ -127,6 +126,20 @@ def project(request, project_id):
project = Node.objects.get(id=project_id) project = Node.objects.get(id=project_id)
corpora = project.children.all() corpora = project.children.all()
number = project.children.count() number = project.children.count()
total = 0
donut = list()
donut_part = dict()
for corpus in corpora:
count = corpus.children.count()
total += count
for node_resource in Node_Resource.objects.filter(node=corpus):
print(node_resource.resource.type,
count,
total,
)
board = list() board = list()
for corpus in corpora: for corpus in corpora:
...@@ -139,51 +152,63 @@ def project(request, project_id): ...@@ -139,51 +152,63 @@ def project(request, project_id):
if request.method == 'POST': if request.method == 'POST':
#form = CorpusForm(request.POST, request.FILES) #form = CorpusForm(request.POST, request.FILES)
#print(str(request.POST))
name = str(request.POST['name']) name = str(request.POST['name'])
try: try:
bdd_type = ResourceType.objects.get(id=str(request.POST['bdd_type'])) resource_type = ResourceType.objects.get(id=str(request.POST['type']))
except: except Exception as error:
bdd_type = None print(error)
resource_type = None
try: try:
file = request.FILES['file'] file = request.FILES['file']
except: except Exception as error:
print(error)
file = None file = None
if name != "" and bdd_type != None and file != None : #if name != "" and resource_type is not None and file is not None:
try:
parent = Node.objects.get(id=project_id)
node_type = NodeType.objects.get(name='Corpus')
if resource_type.name == "europresse_french":
language = Language.objects.get(iso2='fr')
elif resource_type.name == "europresse_english":
language = Language.objects.get(iso2='en')
try:
corpus = Node(
user=request.user,
parent=parent,
type=node_type,
name=name,
)
except:
corpus = Node(
user=request.user,
parent=parent,
type=node_type,
language=language,
name=name,
)
corpus.save()
corpus.add_resource(
user=request.user,
type=resource_type,
file=file
)
try: try:
node_type = NodeType.objects.get(name='Corpus') corpus.parse_resources()
parent = Node.objects.get(id=project_id)
corpus = Node(parent=parent, name=name, type=node_type, user=request.user)
corpus.save()
#corpus.add_ressource(file=file)
except Exception as error: except Exception as error:
print(error) print(error)
#resource = Resource(user=request.user, guid=str(date), bdd_type=bdd_type, file=file)
#language = Language.objects.get(iso2='fr')
node = Node(parent=parent, type=node_type, name=name, user=request.user)#, language=language)
node.save()
#node.resource.add(resource)
# try:
# for resource in node.resource.all():
# print(resource.bdd_type.name)
# if resource.bdd_type.name == "PubMed":
# fileparser = PubmedFileParser(file='/var/www/gargantext/media/' + str(resource.file))
# fileparser.parse(node)
# elif resource.bdd_type.name == "Web Of Science (WOS), ISI format":
# fileparser = IsiParser(file='/var/www/gargantext/media/' + str(resource.file))
# fileparser.parse(node)
# elif node.bdd_type.name == "Europresse":
# pass
#
# except Exception as error:
# print(error)
return HttpResponseRedirect('/project/' + str(project_id)) return HttpResponseRedirect('/project/' + str(project_id))
else: except Exception as error:
print('ee', error)
form = CorpusForm(request=request) form = CorpusForm(request=request)
formResource = ResourceForm() formResource = ResourceForm()
...@@ -315,38 +340,6 @@ def corpus(request, project_id, corpus_id): ...@@ -315,38 +340,6 @@ def corpus(request, project_id, corpus_id):
return HttpResponse(html) return HttpResponse(html)
def add_corpus(request):
form = CorpusForm(request=request)
if request.method == 'POST':
#form = CorpusForm(request.POST, request.FILES)
name = str(request.POST['name'])
try:
#language = Language.objects.get(name=str(request.POST['language']))
language = Language.objects.get(iso2='fr')
except Exception as e:
print('line 323', e)
language = None
if name != "" :
project_id = 1047
node_type = NodeType.objects.get(name='Corpus')
parent = Node.objects.get(id=project_id)
Corpus(parent=parent, type=node_type, name=name, user=request.user, language=language).save()
# try:
# for resource in node.resource.all():
# fileparser = PubmedFileParser.PubmedFileParser(file='/var/www/gargantext/media/' + str(resource.file))
# fileparser.parse(node)
#
# except Exception as error:
# print(error)
return HttpResponseRedirect('/project/' + str(project_id))
else:
form = CorpusForm(request=request)
return render(request, 'add_corpus.html', {'form': form})
def delete_project(request, node_id): def delete_project(request, node_id):
Node.objects.filter(id=node_id).all().delete() Node.objects.filter(id=node_id).all().delete()
......
...@@ -56,7 +56,7 @@ class NodeAdmin(admin.ModelAdmin): ...@@ -56,7 +56,7 @@ class NodeAdmin(admin.ModelAdmin):
user = request.user,\ user = request.user,\
name = obj.name,\ name = obj.name,\
metadata= obj.metadata,\ metadata= obj.metadata,\
resource = obj.resource) )
#nodeParent.save() #nodeParent.save()
#node.save() #node.save()
......
...@@ -12,13 +12,12 @@ from parsing.FileParsers import * ...@@ -12,13 +12,12 @@ from parsing.FileParsers import *
from time import time from time import time
from collections import defaultdict from collections import defaultdict
from gargantext_web.settings import MEDIA_ROOT
# Some usefull functions # Some usefull functions
# TODO: start the function name with an underscore (private) # TODO: start the function name with an underscore (private)
def upload_to(instance, filename): def _upload_to(instance, filename):
return 'corpora/%s/%s' % (instance.user.username, filename) return MEDIA_ROOT + '/corpora/%s/%s' % (instance.user.username, filename)
#return 'corpora/%s/%f/%s' % (instance.user.username, time(), filename)
# All classes here # All classes here
...@@ -42,9 +41,10 @@ class Ngram(models.Model): ...@@ -42,9 +41,10 @@ class Ngram(models.Model):
terms = models.CharField(max_length=255) terms = models.CharField(max_length=255)
class Resource(models.Model): class Resource(models.Model):
user = models.ForeignKey(User)
guid = models.CharField(max_length=255) guid = models.CharField(max_length=255)
type = models.ForeignKey(ResourceType, blank=True, null=True) type = models.ForeignKey(ResourceType, blank=True, null=True)
file = models.FileField(upload_to=upload_to, blank=True) file = models.FileField(upload_to=_upload_to, blank=True)
digest = models.CharField(max_length=32) # MD5 digest digest = models.CharField(max_length=32) # MD5 digest
class NodeType(models.Model): class NodeType(models.Model):
...@@ -52,7 +52,6 @@ class NodeType(models.Model): ...@@ -52,7 +52,6 @@ class NodeType(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
class NodeQuerySet(models.query.QuerySet): class NodeQuerySet(models.query.QuerySet):
"""Methods available from Node querysets.""" """Methods available from Node querysets."""
def extract_ngrams(self, keys, ngramsextractorscache=None, ngramscaches=None): def extract_ngrams(self, keys, ngramsextractorscache=None, ngramscaches=None):
...@@ -85,12 +84,6 @@ class Node(CTENode): ...@@ -85,12 +84,6 @@ class Node(CTENode):
date = models.DateField(default=timezone.now, blank=True) date = models.DateField(default=timezone.now, blank=True)
metadata = hstore.DictionaryField(blank=True) metadata = hstore.DictionaryField(blank=True)
# TODO: remove the three following fields
#fichier = models.FileField(upload_to=upload_to, blank=True)
#resource = models.ForeignKey(Resource, blank=True, null=True)
#ngrams = models.ManyToManyField(NGrams)
def __str__(self): def __str__(self):
return self.name return self.name
...@@ -118,6 +111,8 @@ class Node(CTENode): ...@@ -118,6 +111,8 @@ class Node(CTENode):
'isi' : IsiFileParser, 'isi' : IsiFileParser,
'ris' : RisFileParser, 'ris' : RisFileParser,
'europress' : EuropressFileParser, 'europress' : EuropressFileParser,
'europress_french' : EuropressFileParser,
'europress_english' : EuropressFileParser,
})[resource.type.name]() })[resource.type.name]()
metadata_list += parser.parse(str(resource.file)) metadata_list += parser.parse(str(resource.file))
# insert the new resources in the database! # insert the new resources in the database!
...@@ -171,7 +166,6 @@ class Node(CTENode): ...@@ -171,7 +166,6 @@ class Node(CTENode):
for ngram_text, weight in associations.items() for ngram_text, weight in associations.items()
]) ])
class Node_Resource(models.Model): class Node_Resource(models.Model):
node = models.ForeignKey(Node, related_name='node_resource') node = models.ForeignKey(Node, related_name='node_resource')
resource = models.ForeignKey(Resource) resource = models.ForeignKey(Resource)
......
...@@ -3,7 +3,6 @@ import dateutil.parser ...@@ -3,7 +3,6 @@ import dateutil.parser
import zipfile import zipfile
from parsing.Caches import LanguagesCache from parsing.Caches import LanguagesCache
class FileParser: class FileParser:
......
...@@ -78,7 +78,6 @@ ...@@ -78,7 +78,6 @@
</h3> </h3>
<h4>{{ corpus.count }} Documents </h4> <h4>{{ corpus.count }} Documents </h4>
<p>{{ corpus.language }} {{ corpus.database}}</p>
<h5>Activity:</h5> <h5>Activity:</h5>
<div class="chart" data-percent="73">73%</div> <div class="chart" data-percent="73">73%</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment