e7b02313828a16d21dba0896e58bd35f040726e8
[auf_savoirs_en_partage_django.git] / auf_savoirs_en_partage / sitotheque / models.py
1 # -*- encoding: utf-8 -*-
2 from django.db import models
3 from datamaster_modeles.models import *
4 from savoirs.models import Discipline
5
6 TYPE_SITE_CHOICES = (
7 ('RV', 'Revue en ligne'),
8 ('BB', 'Bibliothèque en ligne'),
9 ('FD', 'Fonds documentaire'),
10 ('AR', 'Archive ouverte'),
11 ('CO', 'Cours en ligne'),
12 ('RE', 'Repertoire de ressource'),
13 ('SA', 'Site associatif'),
14 ('SC', 'Site culturel'),
15 ('SI', 'Site d\'information'),
16 ('AU', 'Autre type de site'),
17 )
18
19 class Site(models.Model):
20 """Fiche d'info d'un site web"""
21 url = models.URLField(verify_exists=True) # dc:identifier (dc:source?)
22 titre = models.CharField(max_length=255, verbose_name='Titre') # dc.title
23 description = models.TextField()
24 editeur = models.CharField(max_length=255, verbose_name='Éditeur') # dc.publisher : organisation resp
25 auteur = models.CharField(max_length=255, verbose_name='Auteur') # dc.creator : nom, prénom
26
27 #auf_partenaire = models.BooleanField() # dc.contributor
28
29 date_publication = models.DateField() # dc.date : date de publication
30 type = models.CharField(max_length=2, null=False, blank=False, choices=TYPE_SITE_CHOICES,
31 verbose_name = 'Type de site') # dc.type
32 discipline = models.ManyToManyField(Discipline, blank=True)
33 thematique = models.ManyToManyField(Thematique, blank=True)
34
35 mots_cles = models.TextField(verbose_name='Mots-clés') # dc:subject # indexation libre
36
37 # source # dc:source (dc:relation?)
38 pays = models.ForeignKey(Pays, null = True, db_column='pays', to_field='code', verbose_name = 'Pays')
39
40 # meta
41 actif = models.BooleanField()
42 date_maj = models.DateField(auto_now=True)
43
44 def __unicode__(self):
45 return "%s" % (self.titre)