pytask/taskapp/models.py
changeset 92 b92347d24557
parent 90 437af7ad6cb9
child 93 54152e4f5cd7
equal deleted inserted replaced
91:5b121925d7f5 92:b92347d24557
     2 from django.contrib.auth.models import User
     2 from django.contrib.auth.models import User
     3 
     3 
     4 import tagging
     4 import tagging
     5 from tagging.fields import TagField
     5 from tagging.fields import TagField
     6 
     6 
     7 STATUS_CHOICES = (
     7 TASK_STATUS_CHOICES = (
     8         ("UP", "Unpublished"),
     8         ("UP", "Unpublished"),
     9         ("OP", "Open"),
     9         ("OP", "Open"),
    10         ("LO", "Locked"),
    10         ("LO", "Locked"),
    11         ("WR", "Working"),
    11         ("WR", "Working"),
    12         ("CD", "Closed"),
    12         ("CD", "Closed"),
    13         ("DL", "Deleted"),
    13         ("DL", "Deleted"),
    14         ("CM", "Completed"))
    14         ("CM", "Completed"))
       
    15 
       
    16 TB_STATUS_CHOICES = (
       
    17     ("UP", "Unpublished"),
       
    18     ("OP", "Open"),
       
    19     ("WR", "All tasks have users selected"),
       
    20     ("CM", "Completed"))
    15 
    21 
    16 UPLOADS_DIR = "./pytask/static/uploads"
    22 UPLOADS_DIR = "./pytask/static/uploads"
    17 
    23 
    18 class Task(models.Model):
    24 class Task(models.Model):
    19     
    25     
    20     uniq_key = models.CharField(max_length = 10, unique = True)
    26     uniq_key = models.CharField(max_length = 10, unique = True)
    21     title = models.CharField(max_length = 100, verbose_name = u"Title", 
    27     title = models.CharField(max_length = 100, verbose_name = u"Title", 
    22                              help_text = u"Keep it simple and below 100 chars.")
    28                              help_text = u"Keep it simple and below 100 chars.")
    23     desc = models.TextField(verbose_name = u"Description")
    29     desc = models.TextField(verbose_name = u"Description")
    24 
    30 
    25     status = models.CharField(max_length = 2, choices = STATUS_CHOICES, default = "UP")
    31     status = models.CharField(max_length = 2, choices = TASK_STATUS_CHOICES, default = "UP")
    26     tags_field = TagField(verbose_name = u"Tags", 
    32     tags_field = TagField(verbose_name = u"Tags", 
    27                           help_text = u"Give tags seperated by commas") 
    33                           help_text = u"Give tags seperated by commas") 
    28     
    34     
    29     pynts = models.PositiveSmallIntegerField(help_text = u"No.of pynts a user \
    35     pynts = models.PositiveSmallIntegerField(help_text = u"No.of pynts a user \
    30                                              gets on completing the task")
    36                                              gets on completing the task")
    36                                            related_name = "%(class)s_claimed_users")
    42                                            related_name = "%(class)s_claimed_users")
    37     selected_users = models.ManyToManyField(User, blank = True, 
    43     selected_users = models.ManyToManyField(User, blank = True, 
    38                                             related_name = "%(class)s_selected_users")
    44                                             related_name = "%(class)s_selected_users")
    39     
    45     
    40     creation_datetime = models.DateTimeField()
    46     creation_datetime = models.DateTimeField()
       
    47     approval_datetime = models.DateTimeField()
    41     
    48     
    42     def __unicode__(self):
    49     def __unicode__(self):
    43         return unicode(self.title)
    50         return unicode(self.title)
    44 
    51 
    45 class TaskComment(models.Model):
    52 class TaskComment(models.Model):
   119                                help_text="Reason in case of rejection")
   126                                help_text="Reason in case of rejection")
   120             
   127             
   121     request_datetime = models.DateTimeField()
   128     request_datetime = models.DateTimeField()
   122     is_responded = models.BooleanField(default=False)
   129     is_responded = models.BooleanField(default=False)
   123 
   130 
       
   131 class TextBook(models.Model):
       
   132 
       
   133     uniq_key = models.CharField(max_length = 10, unique = True)
       
   134     tags_field = TagField(verbose_name="Tags")
       
   135 
       
   136     created_by = models.ForeignKey(User, related_name = "%(class)s_created_by")
       
   137     approved_by = models.ForeignKey(User, related_name = "%(class)s_approved_by")
       
   138 
       
   139     status = models.CharField(max_length = 2, choices = TB_STATUS_CHOICES, default = "UP")
       
   140     creation_datetime = models.DateTimeField()
       
   141     approval_datetime = models.DateTimeField()
       
   142 
   124 tagging.register(Task)
   143 tagging.register(Task)