Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
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)