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