From 10fb5c9e18a9f66c364bb186d403551a3845157b Mon Sep 17 00:00:00 2001 From: Nishanth Date: Sun, 24 Jan 2010 15:43:19 +0530 Subject: Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface. --- taskapp/__init__.py | 0 taskapp/__init__.pyc | Bin 0 -> 142 bytes taskapp/admin.py | 7 ++++ taskapp/admin.pyc | Bin 0 -> 423 bytes taskapp/models.py | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++ taskapp/models.pyc | Bin 0 -> 4331 bytes taskapp/tests.py | 23 +++++++++++++ taskapp/views.py | 1 + 8 files changed, 125 insertions(+) create mode 100644 taskapp/__init__.py create mode 100644 taskapp/__init__.pyc create mode 100644 taskapp/admin.py create mode 100644 taskapp/admin.pyc create mode 100644 taskapp/models.py create mode 100644 taskapp/models.pyc create mode 100644 taskapp/tests.py create mode 100644 taskapp/views.py (limited to 'taskapp') diff --git a/taskapp/__init__.py b/taskapp/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/taskapp/__init__.pyc b/taskapp/__init__.pyc new file mode 100644 index 0000000..ed6d00f Binary files /dev/null and b/taskapp/__init__.pyc differ 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 new file mode 100644 index 0000000..c2f88b1 Binary files /dev/null and b/taskapp/admin.pyc differ 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 new file mode 100644 index 0000000..dc7b9c4 Binary files /dev/null and b/taskapp/models.pyc differ 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. -- cgit