Commit 586e12d3 authored by delanoe's avatar delanoe

Merge branch 'unstable-migration' into unstable

parents 7e426b8a 4a7114e6
from gargantext.util.db import *
from gargantext.util.files import upload
from gargantext.constants import *
from datetime import datetime
from .users import User
#__all__ = ['Node', 'NodeType', 'Language']
class NodeType_v2(Base):
__table_args__ = {'extend_existing': True}
__tablename__ = 'node_nodetype'
id = Column(Integer, primary_key=True)
name = Column(String(255))
class Language_v2(Base):
__table_args__ = {'extend_existing': True}
__tablename__ = 'node_language'
id = Column(Integer, primary_key=True)
iso2 = Column(String(2))
iso3 = Column(String(3))
fullname = Column(String(255))
implemented = Column(Boolean)
class Node_v2(Base):
__table_args__ = {'extend_existing': True}
__tablename__ = 'node_node'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('node_node.id'))
user_id = Column(Integer, ForeignKey(User.id))
type_id = Column(ForeignKey(NodeType_v2.id))
name = Column(String(255))
language_id = Column(Integer, ForeignKey(Language_v2.id))
date = Column(DateTime(), default=datetime.now)
hyperdata = Column(JSONB, default=dict)
def nodes_list(user_id, nodetype, parent_id=None, count=False):
"""
nodes_list :: Int -> String -> Maybe Int -> Maybe Bool -> [(Int, String)]
"""
nodes = ( session.query(Node_v2.id, Node_v2.name)
.join(NodeType_v2, NodeType_v2.id == Node_v2.type_id)
.filter(NodeType_v2.name == nodetype)
)
if parent_id is not None:
nodes = nodes.filter(Node_v2.parent_id == parent_id)
if count is True:
return nodes.count()
else:
return nodes.all()
def nodes_tree(user_id):
"""
nodes_tree :: Int -> Tree Nodes
"""
for project_id, project_name in nodes_list(user_id, 'Project'):
print("* Project (%d, %s)" % (project_id, project_name))
for corpus_id, corpus_name in nodes_list(user_id, 'Corpus', parent_id=project_id):
count = nodes_list( user_id
, 'Document'
, parent_id=corpus_id
, count=True
)
if count > 1:
print("|- %d %s" % ( corpus_id, corpus_name ))
print(" |- %s docs" % count)
This diff is collapsed.
This diff is collapsed.
from django.conf.urls import patterns, url
from gargantext_web import views_optimized
from rest_v1_0 import api, ngrams, graph
from annotations import views
import tests.ngramstable.views as samtest
urlpatterns = patterns('',
# REST URLS
# What is REST ?
# https://en.wikipedia.org/wiki/Representational_state_transfer
#url(r'^api$', rest_v1_0.api.Root), # = ?
url(r'nodes$', api.NodesList.as_view()),
url(r'nodes/(\d+)$', api.Nodes.as_view()),
url(r'nodes/(\d+)/children/ngrams$', api.NodesChildrenNgrams.as_view()), # => repeated children ?
url(r'nodes/(\d+)/children/ids$', api.NodesChildrenNgramsIds.as_view()), # => repeated children ?
# NGRAMS table & annotations
url(r'node/(\d+)/ngrams$' , ngrams.Ngrams.as_view()),
url(r'node/(\d+)/ngrams/group$', ngrams.Group.as_view()),
url(r'node/(\d+)/ngrams/keep$', ngrams.Keep.as_view()),
# url(r'node/(?P<list_id>[0-9]+)/ngrams/keep/(?P<ngram_ids>[0-9,\+]+)+$' , ngrams.Keep.as_view()),
url(r'node/(?P<list_id>[0-9]+)/ngrams/(?P<ngram_ids>[0-9,\+]+)+$', views.NgramEdit.as_view()),
url(r'node/(?P<corpus_id>[0-9]+)/ngrams/list/(?P<list_name>\w+)$' , ngrams.List.as_view()),
url(r'node/corpus/(?P<node_ids>[0-9,\+]+)+$' , samtest.get_corpuses),
#url(r'nodes/(\d+)/children/hyperdata$', api.NodesChildrenMetatadata.as_view()),
#url(r'nodes/(\d+)/children/hyperdata$', api.NodesChildrenMetatadata.as_view()),
url(r'nodes/(\d+)/children/queries$', api.NodesChildrenQueries.as_view()),
url(r'nodes/(\d+)/children/duplicates$', api.NodesChildrenDuplicates.as_view()),
# url(r'^api/nodes/(\d+)/children/duplicates/delete$', api.NodesChildrenDuplicates.delete ),
url(r'nodes/(\d+)/ngrams$', api.CorpusController.ngrams),
url(r'nodes/(\d+)/graph$', graph.Graph.as_view()),
url(r'corpus/(\d+)/graph$', graph.Graph.as_view()),
url(r'hyperdata$', api.ApiHyperdata.as_view()),
url(r'ngrams$', api.ApiNgrams.as_view()),
url(r'tfidf/(\d+)/(\w+)$', views_optimized.tfidf),
)
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