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
755370b9
Commit
755370b9
authored
Sep 05, 2014
by
Administrator
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
project > corpora ok but copora> document no
parent
add4d39c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
162 additions
and
39 deletions
+162
-39
admin.py
documents/admin.py
+96
-0
models.py
documents/models.py
+64
-38
urls.py
gargantext_web/urls.py
+2
-1
No files found.
documents/admin.py
View file @
755370b9
from
django.contrib
import
admin
from
django.contrib
import
admin
# Register your models here.
# Register your models here.
from
nested_inlines.admin
import
NestedModelAdmin
,
NestedStackedInline
,
NestedTabularInline
from
documents.models
import
Database
,
Language
,
Project
,
Corpus
,
Document
class
DocumentInLine
(
NestedStackedInline
):
model
=
Document
extra
=
1
class
CorpusInLine
(
NestedStackedInline
):
model
=
Corpus
extra
=
0
inlines
=
[
DocumentInLine
,]
class
ProjectAdmin
(
NestedModelAdmin
):
exclude
=
(
'analyst'
,)
list_display
=
(
'title'
,
'date'
,
'analyst'
)
inlines
=
[
CorpusInLine
,]
def
has_change_permission
(
self
,
request
,
obj
=
None
):
has_class_permission
=
super
(
ProjectAdmin
,
self
)
.
has_change_permission
(
request
,
obj
)
if
not
has_class_permission
:
return
False
if
obj
is
not
None
and
not
request
.
user
.
is_superuser
and
request
.
user
.
id
!=
obj
.
analyst
.
id
:
return
False
return
True
def
get_queryset
(
self
,
request
):
if
request
.
user
.
is_superuser
:
return
Project
.
objects
.
all
()
return
Project
.
objects
.
filter
(
analyst
=
request
.
user
)
def
save_model
(
self
,
request
,
obj
,
form
,
change
):
if
not
change
:
obj
.
analyst
=
request
.
user
obj
.
save
()
class
CorpusAdmin
(
admin
.
ModelAdmin
):
exclude
=
(
'analyst'
,)
list_display
=
(
'title'
,
'date'
,
'analyst'
)
inlines
=
[
DocumentInLine
,]
def
has_change_permission
(
self
,
request
,
obj
=
None
):
has_class_permission
=
super
(
CorpusAdmin
,
self
)
.
has_change_permission
(
request
,
obj
)
if
not
has_class_permission
:
return
False
if
obj
is
not
None
and
not
request
.
user
.
is_superuser
and
request
.
user
.
id
!=
obj
.
analyst
.
id
:
return
False
return
True
def
get_queryset
(
self
,
request
):
if
request
.
user
.
is_superuser
:
return
Corpus
.
objects
.
all
()
return
Corpus
.
objects
.
filter
(
analyst
=
request
.
user
)
def
save_model
(
self
,
request
,
obj
,
form
,
change
):
if
not
change
:
obj
.
analyst
=
request
.
user
obj
.
save
()
#
#class DocumentAdmin(admin.ModelAdmin):
# exclude = ('analyst',)
# list_display = ('date', 'source', 'title')
#
#
# def has_change_permission(self, request, obj=None):
# has_class_permission = super(DocumentAdmin, self).has_change_permission(request, obj)
# if not has_class_permission:
# return False
# if obj is not None and not request.user.is_superuser and request.user.id != obj.analyst.id:
# return False
# return True
#
# def get_queryset(self, request):
# if request.user.is_superuser:
# return Document.objects.all()
#
# return Document.objects.filter(analyst=request.user)
#
# def save_model(self, request, obj, form, change):
# if not change:
# obj.analyst = request.user
# obj.save()
#
admin
.
site
.
register
(
Database
)
admin
.
site
.
register
(
Language
)
admin
.
site
.
register
(
Project
,
ProjectAdmin
)
admin
.
site
.
register
(
Corpus
,
CorpusAdmin
)
#admin.site.register(Document, DocumentAdmin)
documents/models.py
View file @
755370b9
from
django.db
import
models
# Create your models here.
from
django.contrib.auth.models
import
User
from
django.db
import
models
from
django.utils
import
timezone
from
django.utils
import
timezone
from
django_hstore
import
hstore
from
django_hstore
import
hstore
#
class
CorpusTyp
e
(
models
.
Model
):
class
Databas
e
(
models
.
Model
):
"""
"""
Web Of Science, Europresse, Pubmed...
Web Of Science, Europresse, Pubmed...
"""
"""
def
__str__
(
self
):
def
__str__
(
self
):
return
self
.
corpus_typ
e
return
self
.
databas
e
corpus_type
=
models
.
CharField
(
max_length
=
25
,
unique
=
True
)
database
=
models
.
CharField
(
max_length
=
50
,
unique
=
True
)
class
Language
(
models
.
Model
):
class
Language
(
models
.
Model
):
...
@@ -21,62 +20,89 @@ class Language(models.Model):
...
@@ -21,62 +20,89 @@ class Language(models.Model):
"""
"""
def
__str__
(
self
):
def
__str__
(
self
):
return
self
.
language
return
self
.
language
language
=
models
.
CharField
(
max_length
=
15
,
unique
=
True
)
language
=
models
.
CharField
(
max_length
=
30
,
unique
=
True
)
class
Corpus
(
models
.
Model
):
class
Project
(
models
.
Model
):
date
=
models
.
DateField
(
default
=
timezone
.
now
(),
verbose_name
=
"Date of creation"
)
analyst
=
models
.
ForeignKey
(
User
,
related_name
=
'entries'
)
title
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
subtitle
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
others
=
hstore
.
DictionaryField
(
blank
=
True
)
objects
=
hstore
.
HStoreManager
()
#class Meta:
#get_latest_by = 'date'
#ordering = ('-date',)
#verbose_name_plural = 'entries'
def
__str__
(
self
):
def
__str__
(
self
):
return
self
.
title
return
self
.
title
corpus_type
=
models
.
ForeignKey
(
CorpusType
)
language
=
models
.
ForeignKey
(
Language
,
blank
=
True
,
null
=
True
)
date
=
models
.
DateField
(
default
=
timezone
.
now
(),
verbose_name
=
"Date End"
)
class
Corpus
(
models
.
Model
):
project
=
models
.
ForeignKey
(
Project
)
database
=
models
.
ForeignKey
(
Database
)
language
=
models
.
ForeignKey
(
Language
)
date
=
models
.
DateField
(
default
=
timezone
.
now
(),
verbose_name
=
"Date of creation"
)
analyst
=
models
.
ForeignKey
(
User
)
title
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
title
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
subtitle
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
subtitle
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
zip_file
=
models
.
FileField
(
upload_to
=
'documents'
,
blank
=
True
)
zip_file
=
models
.
FileField
(
upload_to
=
'documents'
,
blank
=
True
)
others
=
hstore
.
DictionaryField
(
blank
=
True
)
others
=
hstore
.
DictionaryField
(
blank
=
True
,
null
=
True
)
objects
=
hstore
.
HStoreManager
()
objects
=
hstore
.
HStoreManager
()
class
Meta
:
get_latest_by
=
'date'
ordering
=
(
'-date'
,)
verbose_name_plural
=
'corpora'
def
__str__
(
self
):
return
self
.
title
class
Document
(
models
.
Model
):
class
Document
(
models
.
Model
):
def
__str__
(
self
):
def
__str__
(
self
):
return
self
.
title
return
self
.
title
project
=
models
.
ForeignKey
(
Project
)
corpus
=
models
.
ForeignKey
(
Corpus
)
#corpus = models.ManyToManyField(Corpus)
analyst
=
models
.
ForeignKey
(
User
)
date
=
models
.
DateField
(
blank
=
True
,
null
=
True
)
date
=
models
.
DateField
(
blank
=
True
,
null
=
True
)
# corpus_source foreign vers corpus
# unique_id
authors
=
models
.
ManyToManyField
(
Author
,
through
=
'Authored'
,
blank
=
True
)
uniqu_id
=
models
.
CharField
(
max_length
=
150
,
unique
=
True
)
institution
=
models
.
ManyToManyField
(
Institution
,
blank
=
True
,
null
=
True
)
title
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
name
=
models
.
CharField
(
help_text
=
"Journal/Seminar/Book Name"
,
max_length
=
300
,
blank
=
True
)
source
=
models
.
CharField
(
max_length
=
150
,
blank
=
True
)
issue_title
=
models
.
CharField
(
help_text
=
"Special issue title if any"
,
max_length
=
250
,
blank
=
True
)
authors
=
models
.
TextField
(
blank
=
True
)
chapter
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
title
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
country
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
subtitle
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
source
=
models
.
CharField
(
max_length
=
100
,
blank
=
True
)
keywords
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
bibtex_id
=
models
.
CharField
(
max_length
=
50
,
blank
=
True
)
volume
=
models
.
IntegerField
(
blank
=
True
,
null
=
True
)
number
=
models
.
IntegerField
(
blank
=
True
,
null
=
True
)
start_page
=
models
.
IntegerField
(
blank
=
True
,
null
=
True
)
end_page
=
models
.
IntegerField
(
blank
=
True
,
null
=
True
)
editors
=
models
.
CharField
(
verbose_name
=
"Editors Names"
,
max_length
=
200
,
blank
=
True
)
publisher
=
models
.
CharField
(
max_length
=
300
,
blank
=
True
)
country
=
models
.
ForeignKey
(
Country
,
blank
=
True
,
null
=
True
)
address
=
models
.
CharField
(
max_length
=
200
,
blank
=
True
)
url
=
models
.
URLField
(
blank
=
True
)
url
=
models
.
URLField
(
blank
=
True
)
abstract
=
models
.
TextField
(
blank
=
True
)
abstract
=
models
.
TextField
(
blank
=
True
)
text
=
models
.
TextField
(
blank
=
True
)
text
=
models
.
TextField
(
blank
=
True
)
paper
=
models
.
FileField
(
upload_to
=
'documents'
,
blank
=
True
)
others
=
hstore
.
DictionaryField
(
blank
=
True
)
others
=
hstore
.
DictionaryField
(
blank
=
True
)
objects
=
hstore
.
HStoreManager
()
objects
=
hstore
.
HStoreManager
()
class
Meta
:
get_latest_by
=
'date'
ordering
=
(
'-date'
,)
#verbose_name_plural = 'entries'
def
__str__
(
self
):
return
self
.
title
# class relation corpus / document (pour enlever des documents d'un corpus)
# class relation corpus / document (pour enlever des documents d'un corpus)
...
...
gargantext_web/urls.py
View file @
755370b9
from
django.conf.urls
import
patterns
,
include
,
url
from
django.conf.urls
import
patterns
,
include
,
url
from
django.contrib
import
admin
from
django.contrib
import
admin
admin
.
autodiscover
()
admin
.
autodiscover
()
urlpatterns
=
patterns
(
''
,
urlpatterns
=
patterns
(
''
,
# Examples:
# Examples:
# url(r'^$', 'gargantext_web.views.home', name='home'),
# url(r'^$', 'gargantext_web.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
# url(r'^blog/', include('blog.urls')),
url
(
r'^grappelli/'
,
include
(
'grappelli.urls'
)),
# grappelli URLS
url
(
r'^admin/'
,
include
(
admin
.
site
.
urls
)),
url
(
r'^admin/'
,
include
(
admin
.
site
.
urls
)),
url
(
r'^grappelli/'
,
include
(
'grappelli.urls'
)),
# grappelli URLS
)
)
from
django.conf
import
settings
from
django.conf
import
settings
...
...
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