]> git.parisson.com Git - teleforma.git/commitdiff
fix keys and models
authoryomguy <yomguy@parisson.com>
Wed, 21 Mar 2012 11:06:15 +0000 (12:06 +0100)
committeryomguy <yomguy@parisson.com>
Wed, 21 Mar 2012 11:06:15 +0000 (12:06 +0100)
teleforma/models.py

index 3a118e2cc97287916d98e9bfe6c88884a5b78dc6..afd6bbed93b0aebcdc76af091e97395c9749e857 100755 (executable)
@@ -54,6 +54,9 @@ from south.modelsinspector import add_introspection_rules
 
 app_label = 'teleforma'
 
+n_sessions = 21
+session_choices = [(str(x), str(y)) for x in range(1, n_sessions) for y in range(1, n_sessions) if x == y]
+
 
 class Organization(Model):
 
@@ -79,21 +82,37 @@ class Department(Model):
         db_table = app_label + '_' + 'department'
 
 
-class Conference(Model):
 
-    title           = CharField(_('title'), max_length=255)
+class Category(Model):
+
+    name            = CharField(_('name'), max_length=255)
     description     = CharField(_('description'), max_length=255, blank=True)
 
     def __str__(self):
-        return self.title
+        return self.name
 
     class Meta:
-        db_table = app_label + '_' + 'conference'
+        db_table = app_label + '_' + 'category'
+
+
+
+class Course(Model):
+
+    public_id       = CharField(_('public_id'), max_length=255)
+    department      = ForeignKey('Department', related_name='course', verbose_name='department')
+    title           = CharField(_('title'), max_length=255)
+    description     = CharField(_('description'), max_length=255, blank=True)
+    category        = ForeignKey('Category', related_name='student', verbose_name='category')
+
+    class Meta:
+        db_table = app_label + '_' + 'course'
 
 
 class Professor(Model):
 
     user            = ForeignKey('User', related_name='professor', verbose_name='user')
+    courses         = ManyToManyField('Course', related_name="student", verbose_name=_('course'),
+                                        blank=True, null=True)
 
     def __str__(self):
         return self.user.username
@@ -102,20 +121,23 @@ class Professor(Model):
         db_table = app_label + '_' + 'professor'
 
 
+class Conference(Model):
 
-class IEJ(Model):
-
-    name            = CharField(_('name'), max_length=255)
+    title           = CharField(_('title'), max_length=255)
     description     = CharField(_('description'), max_length=255, blank=True)
+    professor       = ForeignKey('Professor', related_name='course', verbose_name='professor')
+    course          = ForeignKey('Course', related_name='document', verbose_name='course')
+    session         = CharField(_('session'), choices=session_choices,
+                                      max_length=16, default="1")
 
     def __str__(self):
-        return self.name
+        return self.title
 
     class Meta:
-        db_table = app_label + '_' + 'iej'
+        db_table = app_label + '_' + 'conference'
 
 
-class Category(Model):
+class IEJ(Model):
 
     name            = CharField(_('name'), max_length=255)
     description     = CharField(_('description'), max_length=255, blank=True)
@@ -124,21 +146,7 @@ class Category(Model):
         return self.name
 
     class Meta:
-        db_table = app_label + '_' + 'category'
-
-
-
-class Course(Model):
-
-    public_id       = CharField(_('public_id'), max_length=255)
-    department      = ForeignKey('Department', related_name='course', verbose_name='department')
-    title           = CharField(_('title'), max_length=255)
-    description     = CharField(_('description'), max_length=255, blank=True)
-    session         = CharField(_('session'), max_length=255, blank=True)
-    professor       = ForeignKey('Professor', related_name='course', verbose_name='professor')
-
-    class Meta:
-        db_table = app_label + '_' + 'course'
+        db_table = app_label + '_' + 'iej'
 
 
 class Student(Model):
@@ -156,20 +164,39 @@ class Student(Model):
         db_table = app_label + '_' + 'student'
 
 
+class MediaBaseResource(Model):
+    "Describe a media base resource"
+
+    title           = CharField(_('title'), required=True)
+    description     = CharField(_('description'))
+    mime_type       = CharField(_('mime_type'), null=True)
+    credits         = CharField(_('credits'))
+    is_published    = BooleanField(_('published'))
+    date_added      = DateTimeField(_('date added'), auto_now_add=True)
+    date_modified   = DateTimeField(_('date modified'), auto_now=True)
+
+    def __unicode__(self):
+        return self.code
+
+    @property
+    def public_id(self):
+        return self.code
 
-class Document(Model):
+    def get_fields(self):
+        return self._meta.fields
+
+    class Meta(MetaCore):
+        abstract = True
+        ordering = ['code']
+
+
+class Document(MediaBaseResource):
 
     element_type = 'document'
 
+    code            = CharField(_('code'))
     course          = ForeignKey('Course', related_name='document', verbose_name='course')
-    title           = CharField(_('title'))
-    date            = DateTimeField(_('date'), auto_now=True)
-    description     = TextField(_('description'))
-    mime_type       = CharField(_('mime_type'), null=True)
-    url             = CharField(_('url'), max_length=500)
-    credits         = CharField(_('credits'))
     file            = FileField(_('file'), upload_to='items/%Y/%m/%d', db_column="filename")
-    is_published    = BooleanField(_('published'))
 
     def is_image(self):
         is_url_image = False
@@ -194,16 +221,12 @@ class Document(Model):
         db_table = app_label + '_' + 'document'
 
 
-
-class Media(Model):
+class Media(MediaBaseResource):
 
     element_type = 'media'
 
     course          = ForeignKey('Course', related_name='media', verbose_name='course')
-    date            = DateTimeField(_('date'), auto_now=True)
-    url             = CharField(_('url'), max_length=500)
     item            = ForeignKey('MediaItem', related_name='media', verbose_name='item')
-    is_published    = BooleanField(_('published'))
 
     class Meta:
         db_table = app_label + '_' + 'media'
@@ -218,4 +241,4 @@ class ShortTextField(models.TextField):
          )
          return super(ShortTextField, self).formfield(**kwargs)
 
-add_introspection_rules([], ["^telecaster\.models\.ShortTextField"])
+add_introspection_rules([], ["^teleforma\.models\.ShortTextField"])