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
89762429
Commit
89762429
authored
Nov 16, 2014
by
Mathieu Rodic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[BUGFIX] Fixed problem with NodeManager in models.py
(could not access CTE methods such as .descendants(), etc.)
parent
5fc7c2d7
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
25 deletions
+44
-25
api.py
gargantext_web/api.py
+42
-23
models.py
node/models.py
+2
-2
No files found.
gargantext_web/api.py
View file @
89762429
...
@@ -29,15 +29,43 @@ _ngrams_order_columns = {
...
@@ -29,15 +29,43 @@ _ngrams_order_columns = {
class
CorpusController
:
class
CorpusController
:
@
staticmethod
@
classmethod
def
ngrams
(
request
,
corpus_id
):
def
get
(
cls
,
corpus_id
):
# parameters retrieval and control
try
:
corpus_id
=
int
(
corpus_id
)
except
:
raise
ValidationError
(
'Corpora are identified by an integer.'
,
400
)
corpusQuery
=
Node
.
objects
.
filter
(
id
=
corpus_id
)
corpusQuery
=
Node
.
objects
.
filter
(
id
=
corpus_id
)
if
not
corpusQuery
:
if
not
corpusQuery
:
raise
Http404
(
"No such corpus
."
)
raise
Http404
(
"No such corpus
:
%
d"
%
(
corpus_id
,
)
)
corpus
=
corpusQuery
.
first
()
corpus
=
corpusQuery
.
first
()
if
corpus
.
type
.
name
!=
'Corpus'
:
if
corpus
.
type
.
name
!=
'Corpus'
:
raise
Http404
(
"No such corpus."
)
raise
Http404
(
"No such corpus.
%
d"
%
(
corpus_id
,
))
return
corpus
@
classmethod
def
get_children
(
cls
,
corpus_id
):
corpus
=
cls
.
get
(
corpus_id
)
children
=
Node
.
objects
.
descendants
(
corpus
)
# children = Node.objects.filter(id=corpus_id).descendants()
# children = cls.get(corpus_id).descendants()
# childrenQuery = (cls.get(corpus_id)
# .children
# # .children()
# # .filter()
# .all()
# )
return
HttpResponse
(
"str(children.query)"
)
return
HttpResponse
(
str
(
children
.
query
))
# return childrenQuery
@
classmethod
def
ngrams
(
cls
,
request
,
corpus_id
):
# parameters retrieval and validation
corpus
=
cls
.
get
(
corpus_id
)
order
=
request
.
GET
.
get
(
'order'
,
'frequency'
)
order
=
request
.
GET
.
get
(
'order'
,
'frequency'
)
if
order
not
in
_ngrams_order_columns
:
if
order
not
in
_ngrams_order_columns
:
raise
ValidationError
(
'The order parameter should take one of the following values: '
+
', '
.
join
(
_ngrams_order_columns
),
400
)
raise
ValidationError
(
'The order parameter should take one of the following values: '
+
', '
.
join
(
_ngrams_order_columns
),
400
)
...
@@ -58,15 +86,10 @@ class CorpusController:
...
@@ -58,15 +86,10 @@ class CorpusController:
"list"
:
[
ngram
.
terms
for
ngram
in
ngramsQuery
],
"list"
:
[
ngram
.
terms
for
ngram
in
ngramsQuery
],
})
})
@
staticmethod
@
classmethod
def
metadata
(
request
,
corpus_id
):
def
metadata
(
cls
,
request
,
corpus_id
):
# parameters retrieval and control
# parameters retrieval and validation
corpusQuery
=
Node
.
objects
.
filter
(
id
=
corpus_id
)
corpus
=
cls
.
get
(
corpus_id
)
if
not
corpusQuery
:
raise
Http404
(
"No such corpus."
)
corpus
=
corpusQuery
.
first
()
if
corpus
.
type
.
name
!=
'Corpus'
:
raise
Http404
(
"No such corpus."
)
# query building
# query building
cursor
=
connection
.
cursor
()
cursor
=
connection
.
cursor
()
cursor
.
execute
(
cursor
.
execute
(
...
@@ -87,15 +110,11 @@ class CorpusController:
...
@@ -87,15 +110,11 @@ class CorpusController:
"list"
:
[
row
[
0
]
for
row
in
cursor
.
fetchall
()],
"list"
:
[
row
[
0
]
for
row
in
cursor
.
fetchall
()],
})
})
@
staticmethod
@
classmethod
def
data
(
request
,
corpus_id
):
def
data
(
cls
,
request
,
corpus_id
):
# parameters retrieval and control
# parameters retrieval and validation
corpusQuery
=
Node
.
objects
.
filter
(
id
=
corpus_id
)
return
cls
.
get_children
(
corpus_id
)
if
not
corpusQuery
:
corpus
=
cls
.
get
(
corpus_id
)
raise
Http404
(
"No such corpus."
)
corpus
=
corpusQuery
.
first
()
if
corpus
.
type
.
name
!=
'Corpus'
:
raise
Http404
(
"No such corpus."
)
# query building: initialization
# query building: initialization
columns
=
[]
columns
=
[]
conditions
=
[]
conditions
=
[]
...
...
node/models.py
View file @
89762429
...
@@ -4,7 +4,7 @@ from django.utils import timezone
...
@@ -4,7 +4,7 @@ from django.utils import timezone
from
django.contrib.auth.models
import
User
from
django.contrib.auth.models
import
User
from
django_hstore
import
hstore
from
django_hstore
import
hstore
from
cte_tree.models
import
CTENode
,
Manager
from
cte_tree.models
import
CTENode
,
CTENodeManager
#from cte_tree.fields import DepthField, PathField, OrderingField
#from cte_tree.fields import DepthField, PathField, OrderingField
from
parsing.Caches
import
LanguagesCache
,
NgramsExtractorsCache
,
NgramsCaches
from
parsing.Caches
import
LanguagesCache
,
NgramsExtractorsCache
,
NgramsCaches
...
@@ -68,7 +68,7 @@ class NodeQuerySet(models.query.QuerySet):
...
@@ -68,7 +68,7 @@ class NodeQuerySet(models.query.QuerySet):
for
node
in
self
:
for
node
in
self
:
node
.
extract_ngrams
(
keys
,
ngramsextractorscache
,
ngramscaches
)
node
.
extract_ngrams
(
keys
,
ngramsextractorscache
,
ngramscaches
)
class
NodeManager
(
models
.
Manager
):
class
NodeManager
(
CTENode
Manager
):
"""Methods available from Node.object."""
"""Methods available from Node.object."""
def
get_queryset
(
self
):
def
get_queryset
(
self
):
return
NodeQuerySet
(
self
.
model
)
return
NodeQuerySet
(
self
.
model
)
...
...
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