diff options
Diffstat (limited to 'taskapp')
-rw-r--r-- | taskapp/__init__.py | 0 | ||||
-rw-r--r-- | taskapp/__init__.pyc | bin | 0 -> 142 bytes | |||
-rw-r--r-- | taskapp/admin.py | 7 | ||||
-rw-r--r-- | taskapp/admin.pyc | bin | 0 -> 423 bytes | |||
-rw-r--r-- | taskapp/models.py | 94 | ||||
-rw-r--r-- | taskapp/models.pyc | bin | 0 -> 4331 bytes | |||
-rw-r--r-- | taskapp/tests.py | 23 | ||||
-rw-r--r-- | taskapp/views.py | 1 |
8 files changed, 125 insertions, 0 deletions
diff --git a/taskapp/__init__.py b/taskapp/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/taskapp/__init__.py diff --git a/taskapp/__init__.pyc b/taskapp/__init__.pyc Binary files differnew file mode 100644 index 0000000..ed6d00f --- /dev/null +++ b/taskapp/__init__.pyc diff --git a/taskapp/admin.py b/taskapp/admin.py new file mode 100644 index 0000000..bb157f4 --- /dev/null +++ b/taskapp/admin.py @@ -0,0 +1,7 @@ +from pytask.taskapp.models import Person,Task,Comment,Credit +from django.contrib import admin + +admin.site.register(Person) +admin.site.register(Task) +admin.site.register(Comment) +admin.site.register(Credit) diff --git a/taskapp/admin.pyc b/taskapp/admin.pyc Binary files differnew file mode 100644 index 0000000..c2f88b1 --- /dev/null +++ b/taskapp/admin.pyc 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) + diff --git a/taskapp/models.pyc b/taskapp/models.pyc Binary files differnew file mode 100644 index 0000000..dc7b9c4 --- /dev/null +++ b/taskapp/models.pyc diff --git a/taskapp/tests.py b/taskapp/tests.py new file mode 100644 index 0000000..2247054 --- /dev/null +++ b/taskapp/tests.py @@ -0,0 +1,23 @@ +""" +This file demonstrates two different styles of tests (one doctest and one +unittest). These will both pass when you run "manage.py test". + +Replace these with more appropriate tests for your application. +""" + +from django.test import TestCase + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.failUnlessEqual(1 + 1, 2) + +__test__ = {"doctest": """ +Another way to test that 1 + 1 is equal to 2. + +>>> 1 + 1 == 2 +True +"""} + diff --git a/taskapp/views.py b/taskapp/views.py new file mode 100644 index 0000000..60f00ef --- /dev/null +++ b/taskapp/views.py @@ -0,0 +1 @@ +# Create your views here. |