pytask/taskapp/models.py
changeset 403 61292fa7f61a
parent 383 4252da60a4ef
child 437 b5a93feac34d
equal deleted inserted replaced
402:b8ca16f03916 403:61292fa7f61a
    20     ("CM", "Completed"))
    20     ("CM", "Completed"))
    21 
    21 
    22 UPLOADS_DIR = "./pytask/static/uploads"
    22 UPLOADS_DIR = "./pytask/static/uploads"
    23 
    23 
    24 class Task(models.Model):
    24 class Task(models.Model):
    25     
       
    26     uniq_key = models.CharField(max_length = 10, unique = True)
       
    27     title = models.CharField(max_length = 100, verbose_name = u"Title", 
    25     title = models.CharField(max_length = 100, verbose_name = u"Title", 
    28                              help_text = u"Keep it simple and below 100 chars.")
    26                              help_text = u"Keep it simple and below 100 chars.")
    29     desc = models.TextField(verbose_name = u"Description")
    27     desc = models.TextField(verbose_name = u"Description")
    30 
    28 
    31     status = models.CharField(max_length = 2, choices = TASK_STATUS_CHOICES, default = "UP")
    29     status = models.CharField(max_length = 2, choices = TASK_STATUS_CHOICES, default = "UP")
    52     def __unicode__(self):
    50     def __unicode__(self):
    53         return unicode(self.title)
    51         return unicode(self.title)
    54 
    52 
    55 class TaskComment(models.Model):
    53 class TaskComment(models.Model):
    56 
    54 
    57     uniq_key = models.CharField(max_length = 10, unique = True)
       
    58     task = models.ForeignKey('Task', related_name = "comments")
    55     task = models.ForeignKey('Task', related_name = "comments")
    59             
    56             
    60     data = models.TextField(verbose_name="")
    57     data = models.TextField(verbose_name="")
    61     commented_by = models.ForeignKey(User,
    58     commented_by = models.ForeignKey(User,
    62                                      related_name = "commented_taskcomments")
    59                                      related_name = "commented_taskcomments")
    67 
    64 
    68     def __unicode__(self):
    65     def __unicode__(self):
    69         return unicode(self.task.title)
    66         return unicode(self.task.title)
    70 
    67 
    71 class TaskClaim(models.Model):
    68 class TaskClaim(models.Model):
    72 
       
    73     uniq_key = models.CharField(max_length = 10, unique = True)
       
    74     task = models.ForeignKey('Task', related_name = "claims")
    69     task = models.ForeignKey('Task', related_name = "claims")
    75             
    70             
    76     claimed_by = models.ForeignKey(User,
    71     claimed_by = models.ForeignKey(User,
    77                                    related_name = "claimed_claims")
    72                                    related_name = "claimed_claims")
    78     proposal = models.TextField()
    73     proposal = models.TextField()
    81 
    76 
    82     def __unicode__(self):
    77     def __unicode__(self):
    83         return unicode(self.task.title)
    78         return unicode(self.task.title)
    84 
    79 
    85 class WorkReport(models.Model):
    80 class WorkReport(models.Model):
    86 
       
    87     uniq_key = models.CharField(max_length = 10, unique = True)
       
    88     task = models.ForeignKey(Task, related_name = "reports")
    81     task = models.ForeignKey(Task, related_name = "reports")
    89     submitted_by = models.ForeignKey(User, null = True, blank = True,
    82     submitted_by = models.ForeignKey(User, null = True, blank = True,
    90                                      related_name = "submitted_reports")
    83                                      related_name = "submitted_reports")
    91     approved_by = models.ForeignKey(User, null = True, blank = True,
    84     approved_by = models.ForeignKey(User, null = True, blank = True,
    92                                     related_name = "approved_reports")
    85                                     related_name = "approved_reports")
    98 
    91 
    99     revision = models.PositiveIntegerField(default=0)
    92     revision = models.PositiveIntegerField(default=0)
   100     submitted_at = models.DateTimeField()
    93     submitted_at = models.DateTimeField()
   101 
    94 
   102 class ReportComment(models.Model):
    95 class ReportComment(models.Model):
   103 
       
   104     uniq_key = models.CharField(max_length = 10, unique = True)
       
   105     report = models.ForeignKey('WorkReport', related_name = "%(class)s_report")
    96     report = models.ForeignKey('WorkReport', related_name = "%(class)s_report")
   106             
    97             
   107     data = models.TextField()
    98     data = models.TextField()
   108     commented_by = models.ForeignKey(User, 
    99     commented_by = models.ForeignKey(User, 
   109                                      related_name = "commented_reportcomments")
   100                                      related_name = "commented_reportcomments")
   111                                    related_name = "deleted_reportcomments")
   102                                    related_name = "deleted_reportcomments")
   112     comment_datetime = models.DateTimeField()
   103     comment_datetime = models.DateTimeField()
   113     is_deleted = models.BooleanField(default=False)
   104     is_deleted = models.BooleanField(default=False)
   114 
   105 
   115 class PyntRequest(models.Model):
   106 class PyntRequest(models.Model):
   116 
       
   117     uniq_key = models.CharField(max_length = 10, unique = True)
       
   118     task = models.ForeignKey(Task, related_name = "pynt_requests")
   107     task = models.ForeignKey(Task, related_name = "pynt_requests")
   119     pynts = models.PositiveIntegerField(default=0, help_text="No.of pynts")
   108     pynts = models.PositiveIntegerField(default=0, help_text="No.of pynts")
   120 
   109 
   121     requested_by = models.ForeignKey(User, 
   110     requested_by = models.ForeignKey(User, 
   122                                      related_name = "requested_by_pynts")
   111                                      related_name = "requested_by_pynts")
   133     request_datetime = models.DateTimeField()
   122     request_datetime = models.DateTimeField()
   134     is_responded = models.BooleanField(default=False)
   123     is_responded = models.BooleanField(default=False)
   135 
   124 
   136 class TextBook(models.Model):
   125 class TextBook(models.Model):
   137 
   126 
   138     uniq_key = models.CharField(max_length = 10, unique = True)
       
   139     name = models.CharField(max_length = 100)
   127     name = models.CharField(max_length = 100)
   140     chapters = models.ManyToManyField(Task, related_name="textbooks")
   128     chapters = models.ManyToManyField(Task, related_name="textbooks")
   141     tags_field = TagField(verbose_name="Tags")
   129     tags_field = TagField(verbose_name="Tags")
   142 
   130 
   143     created_by = models.ForeignKey(User, related_name = "created_textbooks")
   131     created_by = models.ForeignKey(User, related_name = "created_textbooks")