From: yomguy Date: Wed, 21 Mar 2012 11:06:15 +0000 (+0100) Subject: fix keys and models X-Git-Tag: 0.2~106 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=e7d051628eda3650d0d79763b114a71b76248b95;p=teleforma.git fix keys and models --- diff --git a/teleforma/models.py b/teleforma/models.py index 3a118e2c..afd6bbed 100755 --- a/teleforma/models.py +++ b/teleforma/models.py @@ -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"])