pytask/taskapp/models.py
changeset 346 8ffc889a3b37
parent 342 2e344786ce4f
child 348 1eb24b1662cf
equal deleted inserted replaced
345:6df2f882b591 346:8ffc889a3b37
    33                           help_text = u"Give tags seperated by commas") 
    33                           help_text = u"Give tags seperated by commas") 
    34     
    34     
    35     pynts = models.PositiveSmallIntegerField(help_text = u"No.of pynts a user \
    35     pynts = models.PositiveSmallIntegerField(help_text = u"No.of pynts a user \
    36                                              gets on completing the task")
    36                                              gets on completing the task")
    37     created_by = models.ForeignKey(User,
    37     created_by = models.ForeignKey(User,
    38                                    related_name = "%(class)s_created_by")
    38                                    related_name = "created_tasks")
    39     approved_by = models.ForeignKey(User, blank = True, null = True,
    39     approved_by = models.ForeignKey(User, blank = True, null = True,
    40                                     related_name = "%(class)s_approved_by")
    40                                     related_name = "approved_tasks")
    41     reviewers = models.ManyToManyField(User, blank = True, null = True,
    41     reviewers = models.ManyToManyField(User, blank = True, null = True,
    42                                        related_name = "%(class)s_reviewers")
    42                                        related_name = "reviewing_tasks")
    43 
    43 
    44     claimed_users = models.ManyToManyField(User, blank = True, null = True, 
    44     claimed_users = models.ManyToManyField(User, blank = True, null = True, 
    45                                            related_name = "%(class)s_claimed_users")
    45                                            related_name = "claimed_tasks")
    46     selected_users = models.ManyToManyField(User, blank = True, null = True, 
    46     selected_users = models.ManyToManyField(User, blank = True, null = True, 
    47                                             related_name = "%(class)s_selected_users")
    47                                             related_name = "selected_tasks")
    48     
    48     
    49     creation_datetime = models.DateTimeField()
    49     creation_datetime = models.DateTimeField()
    50     approval_datetime = models.DateTimeField(blank = True, null = True)
    50     approval_datetime = models.DateTimeField(blank = True, null = True)
    51     
    51     
    52     def __unicode__(self):
    52     def __unicode__(self):
    53         return unicode(self.title)
    53         return unicode(self.title)
    54 
    54 
    55 class TaskComment(models.Model):
    55 class TaskComment(models.Model):
    56 
    56 
    57     uniq_key = models.CharField(max_length = 10, unique = True)
    57     uniq_key = models.CharField(max_length = 10, unique = True)
    58     task = models.ForeignKey('Task', related_name = "%(class)s_task")
    58     task = models.ForeignKey('Task', related_name = "comments")
    59             
    59             
    60     data = models.TextField()
    60     data = models.TextField()
    61     commented_by = models.ForeignKey(User,
    61     commented_by = models.ForeignKey(User,
    62                                      related_name = "%(class)s_created_by")
    62                                      related_name = "commented_taskcomments")
    63     deleted_by = models.ForeignKey(User, null = True, blank = True,
    63     deleted_by = models.ForeignKey(User, null = True, blank = True,
    64                                    related_name = "%(class)s_deleted_by")
    64                                    related_name = "deleted_taskcomments")
    65     comment_datetime = models.DateTimeField()
    65     comment_datetime = models.DateTimeField()
    66     is_deleted = models.BooleanField(default=False)
    66     is_deleted = models.BooleanField(default=False)
    67 
    67 
    68     def __unicode__(self):
    68     def __unicode__(self):
    69         return unicode(self.task.title)
    69         return unicode(self.task.title)
    70 
    70 
    71 class TaskClaim(models.Model):
    71 class TaskClaim(models.Model):
    72 
    72 
    73     uniq_key = models.CharField(max_length = 10, unique = True)
    73     uniq_key = models.CharField(max_length = 10, unique = True)
    74     task = models.ForeignKey('Task', related_name = "%(class)s_task")
    74     task = models.ForeignKey('Task', related_name = "claims")
    75             
    75             
    76     claimed_by = models.ForeignKey(User,
    76     claimed_by = models.ForeignKey(User,
    77                                    related_name = "%(class)s_created_by")
    77                                    related_name = "claimed_claims")
    78     proposal = models.TextField()
    78     proposal = models.TextField()
    79 
    79 
    80     comment_datetime = models.DateTimeField()
    80     comment_datetime = models.DateTimeField()
    81 
    81 
    82     def __unicode__(self):
    82     def __unicode__(self):
    83         return unicode(self.task.title)
    83         return unicode(self.task.title)
    84 
    84 
    85 class WorkReport(models.Model):
    85 class WorkReport(models.Model):
    86 
    86 
    87     uniq_key = models.CharField(max_length = 10, unique = True)
    87     uniq_key = models.CharField(max_length = 10, unique = True)
    88     task = models.ForeignKey(Task, related_name = "%(class)s_task")
    88     task = models.ForeignKey(Task, related_name = "reports")
    89     submitted_by = models.ForeignKey(User, null = True, blank = True,
    89     submitted_by = models.ForeignKey(User, null = True, blank = True,
    90                                      related_name = "%(class)s_submitted_by")
    90                                      related_name = "submitted_reports")
    91     approved_by = models.ForeignKey(User, null = True, blank = True,
    91     approved_by = models.ForeignKey(User, null = True, blank = True,
    92                                     related_name = "%(class)s_approved_by")
    92                                     related_name = "approved_reports")
    93 
    93 
    94     data = models.TextField()
    94     data = models.TextField()
    95     summary = models.CharField(max_length=100, verbose_name="Summary",
    95     summary = models.CharField(max_length=100, verbose_name="Summary",
    96                                help_text="A one line summary")
    96                                help_text="A one line summary")
    97     attachment = models.FileField(upload_to = UPLOADS_DIR)
    97     attachment = models.FileField(upload_to = UPLOADS_DIR)
   103 
   103 
   104     uniq_key = models.CharField(max_length = 10, unique = True)
   104     uniq_key = models.CharField(max_length = 10, unique = True)
   105     report = models.ForeignKey('WorkReport', related_name = "%(class)s_report")
   105     report = models.ForeignKey('WorkReport', related_name = "%(class)s_report")
   106             
   106             
   107     data = models.TextField()
   107     data = models.TextField()
   108     commented_by = models.ForeignKey(User, related_name = "%(class)s_created_by")
   108     commented_by = models.ForeignKey(User, 
       
   109                                      related_name = "commented_reportcomments")
   109     deleted_by = models.ForeignKey(User, null = True, blank = True,
   110     deleted_by = models.ForeignKey(User, null = True, blank = True,
   110                                    related_name = "%(class)s_deleted_by")
   111                                    related_name = "deleted_reportcomments")
   111     comment_datetime = models.DateTimeField()
   112     comment_datetime = models.DateTimeField()
   112     is_deleted = models.BooleanField(default=False)
   113     is_deleted = models.BooleanField(default=False)
   113 
   114 
   114 class RequestPynts(models.Model):
   115 class PyntRequests(models.Model):
   115 
   116 
   116     uniq_key = models.CharField(max_length = 10, unique = True)
   117     uniq_key = models.CharField(max_length = 10, unique = True)
   117     task = models.ForeignKey(Task, related_name = "%(class)s_task")
   118     task = models.ForeignKey(Task, related_name = "pynt_requests")
   118     pynts = models.PositiveIntegerField(default=0, help_text="No.of pynts")
   119     pynts = models.PositiveIntegerField(default=0, help_text="No.of pynts")
   119 
   120 
   120     requested_by = models.ForeignKey(User, 
   121     requested_by = models.ForeignKey(User, 
   121                                      related_name = "%(class)s_requested_by")
   122                                      related_name = "requested_by_pynts")
   122     requested_for = models.ForeignKey(User, 
   123     requested_for = models.ForeignKey(User, 
   123                                      related_name = "%(class)s_requested_for")
   124                                      related_name = "requested_for_pynts")
   124 
   125 
   125     responded_by = models.ForeignKey(User, null = True, blank = True,
   126     responded_by = models.ForeignKey(User, null = True, blank = True,
   126                                     related_name = "%(class)s_responded_by")
   127                                     related_name = "responded_requests")
   127 
   128 
   128     is_accepted = models.BooleanField(default=False)
   129     is_accepted = models.BooleanField(default=False)
   129     remarks = models.CharField(max_length=100, blank=True,
   130     remarks = models.CharField(max_length=100, blank=True,
   130                                help_text="Reason in case of rejection")
   131                                help_text="Reason in case of rejection")
   131             
   132             
   133     is_responded = models.BooleanField(default=False)
   134     is_responded = models.BooleanField(default=False)
   134 
   135 
   135 class TextBook(models.Model):
   136 class TextBook(models.Model):
   136 
   137 
   137     uniq_key = models.CharField(max_length = 10, unique = True)
   138     uniq_key = models.CharField(max_length = 10, unique = True)
   138     chapters = models.ManyToManyField(Task, related_name="%(class)s_chapters")
   139     chapters = models.ManyToManyField(Task, related_name="%(class)s_set")
   139     tags_field = TagField(verbose_name="Tags")
   140     tags_field = TagField(verbose_name="Tags")
   140 
   141 
   141     created_by = models.ForeignKey(User, related_name = "%(class)s_created_by")
   142     created_by = models.ForeignKey(User, related_name = "created_textbooks")
   142     approved_by = models.ForeignKey(User, null = True, blank = True,
   143     approved_by = models.ForeignKey(User, null = True, blank = True,
   143                                     related_name = "%(class)s_approved_by")
   144                                     related_name = "approved_textbooks")
   144 
   145 
   145     status = models.CharField(max_length = 2, choices = TB_STATUS_CHOICES, default = "UP")
   146     status = models.CharField(max_length = 2, choices = TB_STATUS_CHOICES, default = "UP")
   146     creation_datetime = models.DateTimeField()
   147     creation_datetime = models.DateTimeField()
   147     approval_datetime = models.DateTimeField(blank = True, null = True)
   148     approval_datetime = models.DateTimeField(blank = True, null = True)
   148 
   149