Commit 755370b9 authored by Administrator's avatar Administrator

project > corpora ok but copora> document no

parent add4d39c
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)
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 CorpusType(models.Model): class Database(models.Model):
""" """
Web Of Science, Europresse, Pubmed... Web Of Science, Europresse, Pubmed...
""" """
def __str__(self): def __str__(self):
return self.corpus_type return self.database
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)
......
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
......
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