taskapp/models.py
changeset 9 3ad980fc23ca
parent 1 7818992cbf83
child 12 a93eebabfeb1
equal deleted inserted replaced
4:12ca78ff63e4 9:3ad980fc23ca
     4 GENDER_CHOICES = (( 'M', 'Male'), ('F', 'Female'))
     4 GENDER_CHOICES = (( 'M', 'Male'), ('F', 'Female'))
     5 RIGHTS_CHOICES = (
     5 RIGHTS_CHOICES = (
     6 	("AD", "Admin"),
     6 	("AD", "Admin"),
     7 	("MN", "Manager"),
     7 	("MN", "Manager"),
     8 	("DV", "Developer"),
     8 	("DV", "Developer"),
     9 	("MT", "Mentor"),
     9 	("CT", "Contributor"),)
    10 	("CT", "Contributor"),
       
    11 	("GP", "Public"),)
       
    12 
    10 
    13 STATUS_CHOICES = (
    11 STATUS_CHOICES = (
    14 	("OP", "Open"),
    12 	("OP", "Open"),
       
    13     ("LO", "Locked"),
    15 	("CL", "Claimed"),
    14 	("CL", "Claimed"),
    16 	("LO", "Locked"),
    15 	("AS", "Assigned"),
    17 	("AS", "Assigned"),)
    16     ("RO", "Reopened"),
       
    17     ("CD", "Closed"),
       
    18     ("DL", "Deleted"),
       
    19     ("CM", "Completed"))
    18 
    20 
    19 IMAGES_DIR = "./images"
    21 IMAGES_DIR = "./images"
    20 UPLOADS_DIR = "./uploads"
    22 UPLOADS_DIR = "./uploads"
    21 
    23 
    22 class Person(models.Model):
    24 class Profile(models.Model):
    23 #class Person(User):
       
    24 	
    25 	
    25     user = models.ForeignKey(User, unique = True)
    26     user = models.ForeignKey(User, unique = True)
    26     aboutme = models.TextField()
    27     aboutme = models.TextField()
    27     DOB = models.DateField()
    28     dob = models.DateField()
    28     gender = models.CharField(max_length = 1, choices = GENDER_CHOICES)
    29     gender = models.CharField(max_length = 1, choices = GENDER_CHOICES)
    29     rights = models.CharField(max_length = 2, choices = RIGHTS_CHOICES)
    30     rights = models.CharField(max_length = 2, choices = RIGHTS_CHOICES)
    30     credits = models.PositiveSmallIntegerField()
    31     credits = models.PositiveSmallIntegerField()
    31     
    32     
    32     foss_comm = models.CharField(max_length = 80, blank = True)
    33     foss_comm = models.CharField(max_length = 80, blank = True)
    33     phoneNum = models.CharField(max_length = 15, blank = True)
    34     phonenum = models.CharField(max_length = 15, blank = True)
    34     homepage = models.URLField(blank = True)
    35     homepage = models.URLField(blank = True)
    35     street = models.CharField(max_length = 80, blank = True)
    36     street = models.CharField(max_length = 80, blank = True)
    36     city = models.CharField(max_length = 25, blank = True)
    37     city = models.CharField(max_length = 25, blank = True)
    37     country = models.CharField(max_length = 25, blank = True)
    38     country = models.CharField(max_length = 25, blank = True)
    38     nick = models.CharField(max_length = 20, blank = True)
    39     nick = models.CharField(max_length = 20, blank = True)
    39     photo = models.ImageField(upload_to = IMAGES_DIR, blank = True)
    40 #    photo = models.ImageField(upload_to = IMAGES_DIR, blank = True)
    40 
    41 
    41     def __unicode__(self):
    42     def __unicode__(self):
    42         return unicode(self.user.username)
    43         return unicode(self.user.username)
    43 
    44 
    44 
    45 
    47     title = models.CharField(max_length = 200, unique = True)
    48     title = models.CharField(max_length = 200, unique = True)
    48     desc = models.TextField()
    49     desc = models.TextField()
    49     status = models.CharField(max_length = 2, choices = STATUS_CHOICES)
    50     status = models.CharField(max_length = 2, choices = STATUS_CHOICES)
    50     tags = models.CharField(max_length = 200, blank = True)
    51     tags = models.CharField(max_length = 200, blank = True)
    51     
    52     
    52     parents = models.ManyToManyField('self', blank = True, related_name = "%(class)s_parents")
    53     subs = models.ManyToManyField('self', blank = True, related_name = "%(class)s_parents")
    53     deps = models.ManyToManyField('self', blank = True, related_name = "%(class)s_deps")
    54     deps = models.ManyToManyField('self', blank = True, related_name = "%(class)s_deps")
    54     
    55     
    55     credits = models.PositiveSmallIntegerField()
    56     credits = models.PositiveSmallIntegerField()
    56     progress = models.PositiveSmallIntegerField()
    57     progress = models.PositiveSmallIntegerField()
    57         
    58         
    58     mentors = models.ManyToManyField('Person', related_name = "%(class)s_mentors")
    59     mentors = models.ManyToManyField(User, related_name = "%(class)s_mentors")
    59     created_by = models.ForeignKey('Person', related_name = "%(class)s_created_by")
    60     created_by = models.ForeignKey(User, related_name = "%(class)s_created_by")
    60     claimed_users = models.ManyToManyField('Person', blank = True, related_name = "%(class)s_claimed_users")
    61     claimed_users = models.ManyToManyField(User, blank = True, related_name = "%(class)s_claimed_users")
    61     assigned_users = models.ManyToManyField('Person', blank = True, related_name = "%(class)s_assigned_users")
    62     assigned_users = models.ManyToManyField(User, blank = True, related_name = "%(class)s_assigned_users")
    62     
    63     
    63     creation_date = models.DateField()
    64     creation_datetime = models.DateTimeField()
    64     
    65     
    65     ## not yet decided if attribs after this are to be included
    66     ## not yet decided if attribs after this are to be included
    66     ## tasktype = "" ## "bugfix"/"enhancement"
    67     ## tasktype = "" ## "bugfix"/"enhancement"
    67     ## priority = "" ## "very urgent"/"urgent"
    68     ## priority = "" ## "very urgent"/"urgent"
    68     
    69     
    71 
    72 
    72 class Comment(models.Model):
    73 class Comment(models.Model):
    73     
    74     
    74     task = models.ForeignKey('Task')
    75     task = models.ForeignKey('Task')
    75     data = models.TextField()
    76     data = models.TextField()
    76     created_by = models.ForeignKey('Person', related_name = "%(class)s_created_by")
    77     created_by = models.ForeignKey(User, related_name = "%(class)s_created_by")
    77     deleted_by = models.ForeignKey('Person', null = True, blank = True, related_name = "%(class)s_deleted_by")
    78     creation_datetime = models.DateTimeField()
    78     creation_date = models.DateField()
    79 #    deleted_by = models.ForeignKey(User, null = True, blank = True, related_name = "%(class)s_deleted_by")
    79     deleted = models.BooleanField()
    80 #    deleted = models.BooleanField()
    80     attachment = models.FileField(upload_to = UPLOADS_DIR, blank = True)
    81 #    attachment = models.FileField(upload_to = UPLOADS_DIR, blank = True)
    81     
    82     
    82     def __unicode__(self):
    83     def __unicode__(self):
    83         return unicode(self.task.title)
    84         return unicode(self.task.title)
    84 
    85 
    85 class Credit(models.Model):
    86 class Credit(models.Model):
    86     
    87     
    87     task = models.ForeignKey('Task')
    88     task = models.ForeignKey('Task')
    88     given_by = models.ForeignKey('Person', related_name = "%(class)s_given_by")
    89     given_by = models.ForeignKey(User, related_name = "%(class)s_given_by")
    89     given_to = models.ForeignKey('Person', related_name = "%(class)s_given_to")
    90     given_to = models.ForeignKey(User, related_name = "%(class)s_given_to")
    90     points = models.PositiveSmallIntegerField()
    91     points = models.PositiveSmallIntegerField()
       
    92     given_time = models.DateTimeField()
    91     
    93     
    92     def __unicode__(self):
    94     def __unicode__(self):
    93         return unicode(self.task.title)
    95         return unicode(self.task.title)
    94     
    96