Added timeline and event models and readjusted ScopedBase model.
authorMadhusudan.C.S <madhusudancs@gmail.com>
Tue, 20 Jul 2010 03:20:02 +0530
changeset 110 627cd08619ee
parent 109 0c24d69f0631
child 111 0e2c94c6a9e8
Added timeline and event models and readjusted ScopedBase model.
project/scipycon/base/models.py
--- a/project/scipycon/base/models.py	Tue Jul 20 03:18:54 2010 +0530
+++ b/project/scipycon/base/models.py	Tue Jul 20 03:20:02 2010 +0530
@@ -1,11 +1,69 @@
 from django.db import models
+from django.core.management.validation import max_length
+
+
+class Event(models.Model):
+    """Data model which holds the data related to the scope or the event.
+    """
+
+    # Different states the Event can be in
+    STATUS_CHOICES = (
+        ('active', 'Active'),
+        ('inactive', 'Inactive'),
+    )
+
+    # Scope of the program, used as a URL prefix
+    scope = models.CharField(max_length=255)
+
+    # Name of the program
+    name = models.CharField(max_length=255)
+
+    # Event specific i.e version of the event
+    turn = models.CharField(max_length=255)
+
+    # Time associated with the program
+    timeline = models.OneToOneField(Timeline)
+
+    # Status of the program
+    status = models.CharField(max_length=255, choices=STATUS_CHOICES)
+
+
+class Timeline(models.Model):
+    """Timeline of the program
+    """
+
+    # Start of registration for the program
+    registration_start = models.DateTimeField()
+
+    # End of registration for the program
+    registration_end = models.DateTimeField()
+
+    # Start of Call for Papers
+    cfp_start = models.DateTimeField()
+
+    # End of Call for Papers
+    cfp_end = models.DateTimeField()
+
+    # Accepted papers announced
+    accepted_papers_announced = models.DateTimeField()
+
+    # Deadline to submit proceedings paper
+    proceedings_paper_deadline = models.DateTimeField()
+
+    # Start of the actual program
+    event_start = models.DateTimeField()
+
+    # End of the actual program
+    event_end = models.DateTimeField()
 
 
 class ScopedBase(models.Model):
-    """Base model which is in turn inherited by other models. 
+    """Base model which is in turn inherited by other models
+    which needs to be scoped.
     """
 
-    scope = models.CharField(max_length=255)
+    # Scope of entity in which it is visible
+    scope = models.ForeignKey(Scope)
 
     class Meta:
         abstract = True