diff options
author | Nishanth | 2010-01-24 15:43:19 +0530 |
---|---|---|
committer | Nishanth | 2010-01-24 15:43:19 +0530 |
commit | 10fb5c9e18a9f66c364bb186d403551a3845157b (patch) | |
tree | bb605a6f0670fa214b2b963743fa212bfd871fa2 /taskapp/models.py | |
parent | fe42dd79dc27fc0ff63e65105decfc5dc34e1a6a (diff) | |
download | pytask-10fb5c9e18a9f66c364bb186d403551a3845157b.tar.gz pytask-10fb5c9e18a9f66c364bb186d403551a3845157b.tar.bz2 pytask-10fb5c9e18a9f66c364bb186d403551a3845157b.zip |
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Diffstat (limited to 'taskapp/models.py')
-rw-r--r-- | taskapp/models.py | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/taskapp/models.py b/taskapp/models.py new file mode 100644 index 0000000..991b9d9 --- /dev/null +++ b/taskapp/models.py @@ -0,0 +1,94 @@ +from django.db import models +from django.contrib.auth.models import User + +GENDER_CHOICES = (( 'M', 'Male'), ('F', 'Female')) +RIGHTS_CHOICES = ( + ("AD", "Admin"), + ("MN", "Manager"), + ("DV", "Developer"), + ("MT", "Mentor"), + ("CT", "Contributor"), + ("GP", "Public"),) + +STATUS_CHOICES = ( + ("OP", "Open"), + ("CL", "Claimed"), + ("LO", "Locked"), + ("AS", "Assigned"),) + +IMAGES_DIR = "./images" +UPLOADS_DIR = "./uploads" + +class Person(models.Model): +#class Person(User): + + user = models.ForeignKey(User, unique = True) + aboutme = models.TextField() + DOB = models.DateField() + gender = models.CharField(max_length = 1, choices = GENDER_CHOICES) + rights = models.CharField(max_length = 2, choices = RIGHTS_CHOICES) + credits = models.PositiveSmallIntegerField() + + foss_comm = models.CharField(max_length = 80, blank = True) + phoneNum = models.CharField(max_length = 15, blank = True) + homepage = models.URLField(blank = True) + street = models.CharField(max_length = 80, blank = True) + city = models.CharField(max_length = 25, blank = True) + country = models.CharField(max_length = 25, blank = True) + nick = models.CharField(max_length = 20, blank = True) + photo = models.ImageField(upload_to = IMAGES_DIR, blank = True) + + def __unicode__(self): + return unicode(self.user.username) + + +class Task(models.Model): + + title = models.CharField(max_length = 200, unique = True) + desc = models.TextField() + status = models.CharField(max_length = 2, choices = STATUS_CHOICES) + tags = models.CharField(max_length = 200, blank = True) + + parents = models.ManyToManyField('self', blank = True, related_name = "%(class)s_parents") + deps = models.ManyToManyField('self', blank = True, related_name = "%(class)s_deps") + + credits = models.PositiveSmallIntegerField() + progress = models.PositiveSmallIntegerField() + + mentors = models.ManyToManyField('Person', related_name = "%(class)s_mentors") + created_by = models.ForeignKey('Person', related_name = "%(class)s_created_by") + claimed_users = models.ManyToManyField('Person', blank = True, related_name = "%(class)s_claimed_users") + assigned_users = models.ManyToManyField('Person', blank = True, related_name = "%(class)s_assigned_users") + + creation_date = models.DateField() + + ## not yet decided if attribs after this are to be included + ## tasktype = "" ## "bugfix"/"enhancement" + ## priority = "" ## "very urgent"/"urgent" + + def __unicode__(self): + return unicode(self.title) + +class Comment(models.Model): + + task = models.ForeignKey('Task') + data = models.TextField() + created_by = models.ForeignKey('Person', related_name = "%(class)s_created_by") + deleted_by = models.ForeignKey('Person', null = True, blank = True, related_name = "%(class)s_deleted_by") + creation_date = models.DateField() + deleted = models.BooleanField() + attachment = models.FileField(upload_to = UPLOADS_DIR, blank = True) + + def __unicode__(self): + return unicode(self.task.title) + +class Credit(models.Model): + + task = models.ForeignKey('Task') + given_by = models.ForeignKey('Person', related_name = "%(class)s_given_by") + given_to = models.ForeignKey('Person', related_name = "%(class)s_given_to") + points = models.PositiveSmallIntegerField() + + def __unicode__(self): + return unicode(self.task.title) + |