1 # -*- encoding: utf-8 -*-
2 from django
.db
import models
4 from timezones
.fields
import TimeZoneField
7 class Discipline(models
.Model
):
8 id = models
.IntegerField(primary_key
=True, db_column
='id_discipline')
9 nom
= models
.CharField(max_length
=765, db_column
='nom_discipline')
11 def __unicode__ (self
):
15 db_table
= u
'discipline'
18 class SourceActualite(models
.Model
):
19 nom
= models
.CharField(max_length
=255)
20 url
= models
.CharField(max_length
=255)
22 class Actualite(models
.Model
):
23 id = models
.AutoField(primary_key
=True, db_column
='id_actualite')
24 titre
= models
.CharField(max_length
=765, db_column
='titre_actualite')
25 texte
= models
.TextField(db_column
='texte_actualite')
26 url
= models
.CharField(max_length
=765, db_column
='url_actualite')
27 logo
= models
.CharField(max_length
=765, db_column
='logo_actualite')
28 date
= models
.DateField(db_column
='date_actualite')
29 visible
= models
.CharField(max_length
=3, db_column
='visible_actualite')
30 ancienid
= models
.IntegerField(db_column
='ancienId_actualite')
32 def __unicode__ (self
):
33 return "Actualite %d: %s" % (self
.id, self
.titre
)
36 db_table
= u
'actualite'
40 class ActiveManager(models
.Manager
):
41 def get_query_set(self
):
42 return super(ActiveManager
, self
).get_query_set().filter(actif
=True)
44 class Evenement(models
.Model
):
45 actif
= models
.BooleanField(default
= True)
46 uid
= models
.CharField(max_length
= 255, default
= uuid
.uuid1
)
47 approuve
= models
.BooleanField(default
= False)
48 titre
= models
.CharField(max_length
=255)
49 discipline
= models
.ForeignKey('Discipline', related_name
= "discipline",
50 blank
= True, null
= True)
51 discipline_secondaire
= models
.ForeignKey('Discipline', related_name
= \
52 "discipline_secondaire",
54 "Discipline secondaire",
55 blank
= True, null
= True)
56 mots_cles
= models
.TextField('Mots-Clés', blank
= True, null
= True)
57 type = models
.CharField(max_length
= 255, choices
= \
58 (('Colloque', 'Colloque'),
59 ('Conférence', 'Conférence'),
60 ('Appel à contribution', 'Appel à contribution'),
61 ('Journée d\'étude', 'Journée d\'étude'),
64 fuseau
= TimeZoneField(verbose_name
= 'Fuseau horaire')
65 debut
= models
.DateTimeField(default
= datetime
.datetime
.now
)
66 fin
= models
.DateTimeField(default
= datetime
.datetime
.now
)
67 lieu
= models
.TextField()
68 description
= models
.TextField(blank
= True, null
= True)
70 contact
= models
.TextField(blank
= True, null
= True)
71 url
= models
.CharField(max_length
=255, blank
= True, null
= True)
73 objects
= ActiveManager()
76 class Record(models
.Model
):
77 id = models
.AutoField(primary_key
= True)
78 title
= models
.TextField(null
= True, blank
= True)
79 alt_title
= models
.TextField(null
= True, blank
= True)
80 creator
= models
.TextField(null
= True, blank
= True)
81 description
= models
.TextField(null
= True, blank
= True)
82 abstract
= models
.TextField(null
= True, blank
= True)
83 creation
= models
.CharField(max_length
= 255, null
= True, blank
= True)
84 issued
= models
.CharField(max_length
= 255, null
= True, blank
= True)
85 modified
= models
.CharField(max_length
= 255, null
= True, blank
= True)
86 identifier
= models
.CharField(max_length
= 255, null
= True, blank
= True, unique
= True)
87 isbn
= models
.TextField(null
= True, blank
= True)
88 uri
= models
.CharField(max_length
= 255, null
= True, blank
= True, unique
= True)
89 source
= models
.TextField(null
= True, blank
= True)
90 contributor
= models
.TextField(null
= True, blank
= True)
91 subject
= models
.TextField(null
= True, blank
= True)
92 publisher
= models
.TextField(null
= True, blank
= True)
93 type = models
.TextField(null
= True, blank
= True)
94 format
= models
.TextField(null
= True, blank
= True)
95 language
= models
.TextField(null
= True, blank
= True)
96 orig_lang
= models
.TextField(null
= True, blank
= True)
98 def __unicode__(self
):
99 return "<R %s, %s>" % (self
.id, self
.subject
)
101 class HarvestLog(models
.Model
):
102 name
= models
.CharField(max_length
= 255, primary_key
= True)
103 date
= models
.DateTimeField(auto_now
= True)
104 count
= models
.IntegerField(null
= True, blank
= True)