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
b57ae7fe
Commit
b57ae7fe
authored
Mar 04, 2015
by
Administrator
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FIX MERGE] Maintenance and logo still exists.
parent
95519dd9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
280 additions
and
11 deletions
+280
-11
views.py
gargantext_web/views.py
+280
-11
No files found.
gargantext_web/views.py
View file @
b57ae7fe
...
@@ -5,6 +5,7 @@ from django.http import Http404, HttpResponse, HttpResponseRedirect
...
@@ -5,6 +5,7 @@ from django.http import Http404, HttpResponse, HttpResponseRedirect
from
django.template.loader
import
get_template
from
django.template.loader
import
get_template
from
django.template
import
Context
from
django.template
import
Context
from
node
import
models
from
node.models
import
Language
,
ResourceType
,
Resource
,
\
from
node.models
import
Language
,
ResourceType
,
Resource
,
\
Node
,
NodeType
,
Node_Resource
,
Project
,
Corpus
,
\
Node
,
NodeType
,
Node_Resource
,
Project
,
Corpus
,
\
Ngram
,
Node_Ngram
,
NodeNgramNgram
,
NodeNodeNgram
Ngram
,
Node_Ngram
,
NodeNgramNgram
,
NodeNodeNgram
...
@@ -27,13 +28,15 @@ from parsing.FileParsers import *
...
@@ -27,13 +28,15 @@ from parsing.FileParsers import *
# SOME FUNCTIONS
# SOME FUNCTIONS
from
gargantext_web.settings
import
DEBUG
from
gargantext_web.settings
import
DEBUG
,
STATIC_ROOT
,
MAINTENANCE
from
django.http
import
*
from
django.http
import
*
from
django.shortcuts
import
render_to_response
,
redirect
from
django.shortcuts
import
render_to_response
,
redirect
from
django.template
import
RequestContext
from
django.template
import
RequestContext
from
django.contrib.auth.decorators
import
login_required
from
django.contrib.auth.decorators
import
login_required
from
django.contrib.auth
import
authenticate
,
login
,
logout
from
django.contrib.auth
import
authenticate
,
login
,
logout
from
scrap_pubmed.admin
import
Logger
def
login_user
(
request
):
def
login_user
(
request
):
logout
(
request
)
logout
(
request
)
username
=
password
=
''
username
=
password
=
''
...
@@ -47,7 +50,9 @@ def login_user(request):
...
@@ -47,7 +50,9 @@ def login_user(request):
if
user
.
is_active
:
if
user
.
is_active
:
login
(
request
,
user
)
login
(
request
,
user
)
return
HttpResponseRedirect
(
'/projects/'
)
print
(
"MAINTENANCE:"
,
MAINTENANCE
)
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
else
:
return
HttpResponseRedirect
(
'/projects/'
)
return
render_to_response
(
'authentication.html'
,
context_instance
=
RequestContext
(
request
))
return
render_to_response
(
'authentication.html'
,
context_instance
=
RequestContext
(
request
))
...
@@ -56,6 +61,51 @@ def logout_user(request):
...
@@ -56,6 +61,51 @@ def logout_user(request):
return
HttpResponseRedirect
(
'/'
)
return
HttpResponseRedirect
(
'/'
)
# Redirect to a success page.
# Redirect to a success page.
def
logo
(
request
):
template
=
get_template
(
'logo.svg'
)
group
=
"mines"
#group = "cnrs"
if
group
==
"cnrs"
:
color
=
"#093558"
else
:
color
=
"#ff8080"
svg_data
=
template
.
render
(
Context
({
\
'color'
:
color
,
\
}))
return
HttpResponse
(
svg_data
,
mimetype
=
"image/svg+xml"
)
def
css
(
request
):
template
=
get_template
(
'bootstrap.css'
)
css
=
dict
()
group
=
"mines"
#group = "cnrs"
if
group
==
"mines"
:
css
[
'color'
]
=
'#666666'
css
[
'background'
]
=
'#f8f8f7'
css
[
'a'
]
=
'#bd2525'
css
[
'focus'
]
=
'#7d1818'
css
[
'hr'
]
=
'#eaafae'
css
[
'text'
]
=
'#a2a3a2'
css
[
'form'
]
=
'#a5817f'
css
[
'help'
]
=
'#a6a6a6'
else
:
css
[
'color'
]
=
'#E2E7EB'
css
[
'background'
]
=
'#8C9DAD'
#container background
css
[
'a'
]
=
'#093558'
css
[
'focus'
]
=
'#556F86'
css
[
'hr'
]
=
'#426A8A'
css
[
'text'
]
=
'#214A6D'
css
[
'form'
]
=
'#093558'
css
[
'help'
]
=
'#093558'
css_data
=
template
.
render
(
Context
({
\
'css'
:
css
,
\
}))
return
HttpResponse
(
css_data
,
mimetype
=
"text/css"
)
def
query_to_dicts
(
query_string
,
*
query_args
):
def
query_to_dicts
(
query_string
,
*
query_args
):
"""Run a simple query and produce a generator
"""Run a simple query and produce a generator
that returns the results as a bunch of dictionaries
that returns the results as a bunch of dictionaries
...
@@ -97,20 +147,38 @@ def date_range(start_dt, end_dt = None, format=None):
...
@@ -97,20 +147,38 @@ def date_range(start_dt, end_dt = None, format=None):
# SOME VIEWS
# SOME VIEWS
from
gargantext_web
import
team
from
gargantext_web
import
about
def
about
(
request
):
def
get_
about
(
request
):
'''
'''
About Gargantext, the team and sponsors
About Gargantext, the team and sponsors
'''
'''
template
=
get_template
(
'about.html'
)
template
=
get_template
(
'about.html'
)
user
=
request
.
user
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
date
=
datetime
.
datetime
.
now
()
members
=
team
.
get_team
()
members
=
about
.
get_team
()
sponsors
=
about
.
get_sponsors
()
html
=
template
.
render
(
Context
({
\
html
=
template
.
render
(
Context
({
\
'user'
:
user
,
\
'user'
:
user
,
\
'date'
:
date
,
\
'date'
:
date
,
\
'team'
:
members
,
\
'team'
:
members
,
\
'sponsors'
:
sponsors
,
\
}))
return
HttpResponse
(
html
)
def
get_maintenance
(
request
):
'''
Gargantext out of service
'''
template
=
get_template
(
'maintenance.html'
)
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
html
=
template
.
render
(
Context
({
\
'user'
:
user
,
\
'date'
:
date
,
\
}))
}))
return
HttpResponse
(
html
)
return
HttpResponse
(
html
)
...
@@ -141,11 +209,13 @@ def projects(request):
...
@@ -141,11 +209,13 @@ def projects(request):
'''
'''
if
not
request
.
user
.
is_authenticated
():
if
not
request
.
user
.
is_authenticated
():
return
redirect
(
'/auth/'
)
return
redirect
(
'/auth/'
)
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
t
=
get_template
(
'projects.html'
)
t
=
get_template
(
'projects.html'
)
user
=
request
.
user
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
date
=
datetime
.
datetime
.
now
()
print
(
Logger
.
write
(
"STATIC_ROOT"
))
project_type
=
NodeType
.
objects
.
get
(
name
=
'Project'
)
project_type
=
NodeType
.
objects
.
get
(
name
=
'Project'
)
projects
=
Node
.
objects
.
filter
(
user
=
user
,
type_id
=
project_type
.
id
)
.
order_by
(
"-date"
)
projects
=
Node
.
objects
.
filter
(
user
=
user
,
type_id
=
project_type
.
id
)
.
order_by
(
"-date"
)
...
@@ -170,6 +240,190 @@ def projects(request):
...
@@ -170,6 +240,190 @@ def projects(request):
})
})
def
project
(
request
,
project_id
):
'''
This view represents all corpora in a panoramic way.
The title sums all corpora
The donut summerizes composition of the project.
The list of lists enalbles to navigate throw it.
'''
if
not
request
.
user
.
is_authenticated
():
return
redirect
(
'/login/?next=
%
s'
%
request
.
path
)
try
:
offset
=
str
(
project_id
)
except
ValueError
:
raise
Http404
()
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
type_corpus
=
NodeType
.
objects
.
get
(
name
=
'Corpus'
)
type_document
=
NodeType
.
objects
.
get
(
name
=
'Document'
)
# type_whitelist = NodeType.objects.get(name='WhiteList')
# type_blacklist = NodeType.objects.get(name='BlackList')
# type_cooclist = NodeType.objects.get(name='Cooccurrence')
project
=
Node
.
objects
.
get
(
id
=
project_id
)
corpora
=
Node
.
objects
.
filter
(
parent
=
project
,
type
=
type_corpus
)
number
=
len
(
corpora
)
# DONUT corpora representation
list_corpora
=
defaultdict
(
list
)
donut_part
=
defaultdict
(
int
)
docs_total
=
0
# List of resources
# filter for each project here
whitelists
=
""
#.children.filter(type=type_whitelist)
blacklists
=
""
#.children.filter(type=type_blacklist)
cooclists
=
""
#.children.filter(type=type_cooclist)
for
corpus
in
corpora
:
# print("corpus", corpus.pk , corpus.name , corpus.type_id)
docs_count
=
Node
.
objects
.
filter
(
parent
=
corpus
,
type
=
type_document
)
.
count
()
docs_total
+=
docs_count
corpus_view
=
dict
()
corpus_view
[
'id'
]
=
corpus
.
pk
corpus_view
[
'name'
]
=
corpus
.
name
corpus_view
[
'count'
]
=
docs_count
#just get first element of the corpora and get his type.
resource_corpus
=
Node_Resource
.
objects
.
filter
(
node
=
corpus
)
if
len
(
resource_corpus
)
>
0
:
# print(Node_Resource.objects.filter(node=corpus).all())
corpus_type
=
Node_Resource
.
objects
.
filter
(
node
=
corpus
)[
0
]
.
resource
.
type
list_corpora
[
corpus_type
]
.
append
(
corpus_view
)
donut_part
[
corpus_type
]
+=
docs_count
else
:
print
(
" Node_Resource = this.corpus("
,
corpus
.
pk
,
") ... nothing, why?"
)
## For avoiding to list repeated elements, like when u use the dynamic query (per each xml, 1)
# for node_resource in Node_Resource.objects.filter(node=corpus):
# print( "node_resource.id:",node_resource.id , node_resource.resource.file )
# donut_part[node_resource.resource.type] += docs_count
# list_corpora[node_resource.resource.type.name].append(corpus_view)
# print(node_resource.resource.type.name)
list_corpora
=
dict
(
list_corpora
)
if
docs_total
==
0
or
docs_total
is
None
:
docs_total
=
1
# The donut will show: percentage by
donut
=
[
{
'source'
:
key
,
'count'
:
donut_part
[
key
]
,
'part'
:
round
(
donut_part
[
key
]
*
100
/
docs_total
)
}
\
for
key
in
donut_part
.
keys
()
]
dauser
=
User
.
objects
.
get
(
username
=
user
)
groups
=
len
(
dauser
.
groups
.
filter
(
name
=
"PubMed_0.1"
))
print
(
"*groupslen*:"
,
groups
)
if
request
.
method
==
'POST'
:
form
=
CustomForm
(
request
.
POST
,
request
.
FILES
)
if
form
.
is_valid
():
name
=
form
.
cleaned_data
[
'name'
]
thefile
=
form
.
cleaned_data
[
'file'
]
resource_type
=
ResourceType
.
objects
.
get
(
name
=
str
(
form
.
cleaned_data
[
'type'
]
))
print
(
"-------------"
)
print
(
name
,
"|"
,
resource_type
,
"|"
,
thefile
)
print
(
"-------------"
)
try
:
parent
=
Node
.
objects
.
get
(
id
=
project_id
)
node_type
=
NodeType
.
objects
.
get
(
name
=
'Corpus'
)
if
resource_type
.
name
==
"europress_french"
:
language
=
Language
.
objects
.
get
(
iso2
=
'fr'
)
elif
resource_type
.
name
==
"europress_english"
:
language
=
Language
.
objects
.
get
(
iso2
=
'en'
)
try
:
corpus
=
Node
(
user
=
request
.
user
,
parent
=
parent
,
type
=
node_type
,
language
=
language
,
name
=
name
,
)
except
:
corpus
=
Node
(
user
=
request
.
user
,
parent
=
parent
,
type
=
node_type
,
name
=
name
,
)
corpus
.
save
()
corpus
.
add_resource
(
user
=
request
.
user
,
type
=
resource_type
,
file
=
thefile
)
try
:
#corpus.parse_and_extract_ngrams()
#corpus.parse_and_extract_ngrams.apply_async((), countdown=3)
if
DEBUG
is
True
:
corpus
.
workflow
()
else
:
corpus
.
workflow
.
apply_async
((),
countdown
=
3
)
except
Exception
as
error
:
print
(
error
)
return
HttpResponseRedirect
(
'/project/'
+
str
(
project_id
))
except
Exception
as
error
:
print
(
'ee'
,
error
)
form
=
CorpusForm
(
request
=
request
)
formResource
=
ResourceForm
()
else
:
print
(
"bad form, bad form"
)
return
render
(
request
,
'project.html'
,
{
'form'
:
form
,
'user'
:
user
,
'date'
:
date
,
'project'
:
project
,
'donut'
:
donut
,
'list_corpora'
:
list_corpora
,
'whitelists'
:
whitelists
,
'blacklists'
:
blacklists
,
'cooclists'
:
cooclists
,
'number'
:
number
,
})
else
:
form
=
CustomForm
()
return
render
(
request
,
'project.html'
,
{
'form'
:
form
,
'user'
:
user
,
'date'
:
date
,
'project'
:
project
,
'donut'
:
donut
,
'list_corpora'
:
list_corpora
,
'whitelists'
:
whitelists
,
'blacklists'
:
blacklists
,
'cooclists'
:
cooclists
,
'number'
:
number
,
})
def
corpus
(
request
,
project_id
,
corpus_id
):
def
corpus
(
request
,
project_id
,
corpus_id
):
if
not
request
.
user
.
is_authenticated
():
if
not
request
.
user
.
is_authenticated
():
return
redirect
(
'/login/?next=
%
s'
%
request
.
path
)
return
redirect
(
'/login/?next=
%
s'
%
request
.
path
)
...
@@ -179,6 +433,7 @@ def corpus(request, project_id, corpus_id):
...
@@ -179,6 +433,7 @@ def corpus(request, project_id, corpus_id):
offset
=
str
(
corpus_id
)
offset
=
str
(
corpus_id
)
except
ValueError
:
except
ValueError
:
raise
Http404
()
raise
Http404
()
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
t
=
get_template
(
'corpus.html'
)
t
=
get_template
(
'corpus.html'
)
...
@@ -253,12 +508,18 @@ def corpus(request, project_id, corpus_id):
...
@@ -253,12 +508,18 @@ def corpus(request, project_id, corpus_id):
print
(
chart
)
print
(
chart
)
except
Exception
as
error
:
except
Exception
as
error
:
print
(
error
)
print
(
error
)
try
:
processing
=
corpus
.
metadata
[
'Processing'
]
except
:
processing
=
0
html
=
t
.
render
(
Context
({
\
html
=
t
.
render
(
Context
({
\
'user'
:
user
,
\
'user'
:
user
,
\
'date'
:
date
,
\
'date'
:
date
,
\
'project'
:
project
,
\
'project'
:
project
,
\
'corpus'
:
corpus
,
\
'corpus'
:
corpus
,
\
'processing'
:
processing
,
\
# 'documents': documents,\
# 'documents': documents,\
'number'
:
number
,
\
'number'
:
number
,
\
'dates'
:
chart
,
\
'dates'
:
chart
,
\
...
@@ -418,6 +679,7 @@ def delete_corpus(request, project_id, corpus_id):
...
@@ -418,6 +679,7 @@ def delete_corpus(request, project_id, corpus_id):
def
chart
(
request
,
project_id
,
corpus_id
):
def
chart
(
request
,
project_id
,
corpus_id
):
''' Charts to compare, filter, count'''
''' Charts to compare, filter, count'''
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
t
=
get_template
(
'chart.html'
)
t
=
get_template
(
'chart.html'
)
user
=
request
.
user
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
date
=
datetime
.
datetime
.
now
()
...
@@ -434,6 +696,7 @@ def chart(request, project_id, corpus_id):
...
@@ -434,6 +696,7 @@ def chart(request, project_id, corpus_id):
return
HttpResponse
(
html
)
return
HttpResponse
(
html
)
def
matrix
(
request
,
project_id
,
corpus_id
):
def
matrix
(
request
,
project_id
,
corpus_id
):
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
t
=
get_template
(
'matrix.html'
)
t
=
get_template
(
'matrix.html'
)
user
=
request
.
user
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
date
=
datetime
.
datetime
.
now
()
...
@@ -451,6 +714,7 @@ def matrix(request, project_id, corpus_id):
...
@@ -451,6 +714,7 @@ def matrix(request, project_id, corpus_id):
return
HttpResponse
(
html
)
return
HttpResponse
(
html
)
def
graph
(
request
,
project_id
,
corpus_id
):
def
graph
(
request
,
project_id
,
corpus_id
):
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
t
=
get_template
(
'explorer.html'
)
t
=
get_template
(
'explorer.html'
)
user
=
request
.
user
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
date
=
datetime
.
datetime
.
now
()
...
@@ -472,6 +736,7 @@ def graph(request, project_id, corpus_id):
...
@@ -472,6 +736,7 @@ def graph(request, project_id, corpus_id):
def
exploration
(
request
):
def
exploration
(
request
):
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
t
=
get_template
(
'exploration.html'
)
t
=
get_template
(
'exploration.html'
)
user
=
request
.
user
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
date
=
datetime
.
datetime
.
now
()
...
@@ -484,6 +749,7 @@ def exploration(request):
...
@@ -484,6 +749,7 @@ def exploration(request):
return
HttpResponse
(
html
)
return
HttpResponse
(
html
)
def
explorer_chart
(
request
):
def
explorer_chart
(
request
):
if
MAINTENANCE
:
return
HttpResponseRedirect
(
'/maintenance/'
)
t
=
get_template
(
'chart.html'
)
t
=
get_template
(
'chart.html'
)
user
=
request
.
user
user
=
request
.
user
date
=
datetime
.
datetime
.
now
()
date
=
datetime
.
datetime
.
now
()
...
@@ -578,9 +844,12 @@ def node_link(request, corpus_id):
...
@@ -578,9 +844,12 @@ def node_link(request, corpus_id):
'''
'''
Create the HttpResponse object with the node_link dataset.
Create the HttpResponse object with the node_link dataset.
'''
'''
import
time
print
(
"In node_link() START"
)
print
(
"In node_link() START"
)
start
=
time
.
time
()
data
=
get_cooc
(
request
=
request
,
corpus_id
=
corpus_id
,
type
=
"node_link"
)
data
=
get_cooc
(
request
=
request
,
corpus_id
=
corpus_id
,
type
=
"node_link"
)
end
=
time
.
time
()
print
(
"LOG::TIME:_ "
+
datetime
.
datetime
.
now
()
.
isoformat
()
+
" get_cooc() [s]"
,(
end
-
start
))
print
(
"In node_link() END"
)
print
(
"In node_link() END"
)
return
JsonHttpResponse
(
data
)
return
JsonHttpResponse
(
data
)
...
...
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