Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
humanities
gargantext
Commits
61f36a90
Commit
61f36a90
authored
Nov 05, 2014
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Integration Alexs work
parents
b4c2d885
e3401222
Changes
7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
187 additions
and
626 deletions
+187
-626
AlexandreTests.ipynb
AlexandreTests.ipynb
+119
-542
urls.py
gargantext_web/urls.py
+1
-2
views.py
gargantext_web/views.py
+59
-66
admin.py
node/admin.py
+1
-1
models.py
node/models.py
+7
-13
FileParser.py
parsing/FileParsers/FileParser.py
+0
-1
project.html
templates/project.html
+0
-1
No files found.
AlexandreTests.ipynb
View file @
61f36a90
This diff is collapsed.
Click to expand it.
gargantext_web/urls.py
View file @
61f36a90
...
@@ -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
),
...
...
gargantext_web/views.py
View file @
61f36a90
...
@@ -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
):
...
@@ -128,6 +127,20 @@ def project(request, project_id):
...
@@ -128,6 +127,20 @@ def project(request, 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
:
dashboard
=
dict
()
dashboard
=
dict
()
...
@@ -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
:
try
:
node_type
=
NodeType
.
objects
.
get
(
name
=
'Corpus'
)
parent
=
Node
.
objects
.
get
(
id
=
project_id
)
parent
=
Node
.
objects
.
get
(
id
=
project_id
)
corpus
=
Node
(
parent
=
parent
,
name
=
name
,
type
=
node_type
,
user
=
request
.
user
)
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
.
save
()
#corpus.add_ressource(file=file)
corpus
.
add_resource
(
user
=
request
.
user
,
type
=
resource_type
,
file
=
file
)
try
:
corpus
.
parse_resources
()
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
()
...
...
node/admin.py
View file @
61f36a90
...
@@ -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()
...
...
node/models.py
View file @
61f36a90
...
@@ -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
)
...
...
parsing/FileParsers/FileParser.py
View file @
61f36a90
...
@@ -5,7 +5,6 @@ import zipfile
...
@@ -5,7 +5,6 @@ import zipfile
from
parsing.Caches
import
LanguagesCache
from
parsing.Caches
import
LanguagesCache
class
FileParser
:
class
FileParser
:
"""Base class for performing files parsing depending on their type.
"""Base class for performing files parsing depending on their type.
"""
"""
...
...
templates/project.html
View file @
61f36a90
...
@@ -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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment