Commit 755370b9 authored by Administrator's avatar Administrator

project > corpora ok but copora> document no

parent add4d39c
from django.contrib import admin
# 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_hstore import hstore
class CorpusType(models.Model):
#
class Database(models.Model):
"""
Web Of Science, Europresse, Pubmed...
"""
def __str__(self):
return self.corpus_type
corpus_type = models.CharField(max_length=25, unique=True)
return self.database
database = models.CharField(max_length=50, unique=True)
class Language(models.Model):
......@@ -21,63 +20,90 @@ class Language(models.Model):
"""
def __str__(self):
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):
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)
subtitle = models.CharField(max_length=300, 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()
class Meta:
get_latest_by = 'date'
ordering = ('-date',)
verbose_name_plural = 'corpora'
def __str__(self):
return self.title
class Document(models.Model):
def __str__(self):
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)
# corpus_source foreign vers corpus
# unique_id
authors = models.ManyToManyField(Author, through='Authored', blank=True)
institution = models.ManyToManyField(Institution, blank=True, null=True)
uniqu_id = models.CharField(max_length=150, unique=True)
name = models.CharField(help_text="Journal/Seminar/Book Name", max_length=300, blank=True)
issue_title = models.CharField(help_text="Special issue title if any", max_length=250, blank=True)
chapter = models.CharField(max_length=300, blank=True)
title = models.CharField(max_length=300, 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)
source = models.CharField(max_length=150, blank=True)
authors = models.TextField(blank=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)
country = models.CharField(max_length=100, blank=True)
url = models.URLField(blank=True)
abstract = models.TextField(blank=True)
text = models.TextField(blank=True)
paper = models.FileField(upload_to='documents', 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):
return self.title
# class relation corpus / document (pour enlever des documents d'un corpus)
......
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'gargantext_web.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^grappelli/', include('grappelli.urls')), # grappelli URLS
url(r'^admin/', include(admin.site.urls)),
url(r'^grappelli/', include('grappelli.urls')), # grappelli URLS
)
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