Commit ab062576 authored by Administrator's avatar Administrator

[FEATURE] PARSING, form and parsing OK.

parent 2f8b61b7
......@@ -3,7 +3,7 @@ from django.conf.urls import patterns, include, url
from django.contrib import admin
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 explorer_graph, explorer_matrix
......@@ -22,7 +22,6 @@ urlpatterns = patterns('',
url(r'^project/(\d+)/delete/$', delete_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+)/delete/$', delete_corpus),
......
......@@ -8,7 +8,7 @@ from django.template import Context
#from documents.models import Project, Corpus, Document
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 django.contrib.auth.models import User
......@@ -24,7 +24,8 @@ from collections import defaultdict
from parsing.FileParsers import *
from gargantext_web.settings import MEDIA_ROOT
from time import time
# SOME FUNCTIONS
......@@ -140,48 +141,45 @@ def project(request, project_id):
if request.method == 'POST':
#form = CorpusForm(request.POST, request.FILES)
name = str(request.POST['name'])
try:
language = Language.objects.get(id=str(request.POST['language']))
except:
language = None
#print(str(request.POST))
try:
bdd_type = ResourceType.objects.get(id=str(request.POST['bdd_type']))
except:
bdd_type = None
resource_type = ResourceType.objects.get(id=str(request.POST['type']))
except Exception as error:
print(error)
resource_type = None
try:
file = request.FILES['file']
except:
except Exception as error:
print(error)
file = None
if language is not None and name != "" and bdd_type != None and file != None :
resource = Resource(user=request.user, guid=str(date), bdd_type=bdd_type, file=file)
resource.save()
node_type = NodeType.objects.get(name='Corpus')
#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')
#language = Language.objects.get(iso2='fr')
corpus = Node(parent=parent, type=node_type, name=name, user=request.user)
corpus.save()
node = Node(parent=parent, type=node_type, name=name, user=request.user, language=language)
node.save()
node.resource.add(resource)
#file_path = str(MEDIA_ROOT + '/corpora/' + request.user.username + '/' + str(file))
#corpus.add_resource(type=resource_type, file=str(file))
resource = Resource(user=request.user, guid=str(time()), type=resource_type, file=file, digest=str(time()))
resource.save()
#
node_resource = Node_Resource(node=corpus, resource=resource)
node_resource.save()
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
try:
corpus.parse_resources()
except Exception as error:
print(error)
return HttpResponseRedirect('/project/' + str(project_id))
else:
except Exception as error:
print('ee', error)
form = CorpusForm(request=request)
formResource = ResourceForm()
......@@ -313,38 +311,6 @@ def corpus(request, project_id, corpus_id):
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(name='French')
except Exception as e:
print(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):
Node.objects.filter(id=node_id).all().delete()
......
......@@ -56,7 +56,7 @@ class NodeAdmin(admin.ModelAdmin):
user = request.user,\
name = obj.name,\
metadata= obj.metadata,\
resource = obj.resource)
)
#nodeParent.save()
#node.save()
......
......@@ -12,13 +12,12 @@ from parsing.FileParsers import *
from time import time
from collections import defaultdict
from gargantext_web.settings import MEDIA_ROOT
# Some usefull functions
# TODO: start the function name with an underscore (private)
def upload_to(instance, filename):
return 'corpora/%s/%s' % (instance.user.username, filename)
#return 'corpora/%s/%f/%s' % (instance.user.username, time(), filename)
def _upload_to(instance, filename):
return MEDIA_ROOT + '/corpora/%s/%s' % (instance.user.username, filename)
# All classes here
......@@ -42,9 +41,10 @@ class Ngram(models.Model):
terms = models.CharField(max_length=255)
class Resource(models.Model):
user = models.ForeignKey(User)
guid = models.CharField(max_length=255)
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
class NodeType(models.Model):
......@@ -52,7 +52,6 @@ class NodeType(models.Model):
def __str__(self):
return self.name
class NodeQuerySet(models.query.QuerySet):
"""Methods available from Node querysets."""
def extract_ngrams(self, keys, ngramsextractorscache=None, ngramscaches=None):
......@@ -85,12 +84,6 @@ class Node(CTENode):
date = models.DateField(default=timezone.now, 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):
return self.name
......@@ -171,7 +164,6 @@ class Node(CTENode):
for ngram_text, weight in associations.items()
])
class Node_Resource(models.Model):
node = models.ForeignKey(Node, related_name='node_resource')
resource = models.ForeignKey(Resource)
......
......@@ -3,7 +3,6 @@ import dateutil.parser
import zipfile
from parsing.Caches import LanguagesCache
class FileParser:
......
......@@ -78,7 +78,6 @@
</h3>
<h4>{{ corpus.count }} Documents </h4>
<p>{{ corpus.language }} {{ corpus.database}}</p>
<h5>Activity:</h5>
<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