2 from django.contrib.auth.models import User |
2 from django.contrib.auth.models import User |
3 |
3 |
4 import tagging |
4 import tagging |
5 from tagging.fields import TagField |
5 from tagging.fields import TagField |
6 |
6 |
7 STATUS_CHOICES = ( |
7 TASK_STATUS_CHOICES = ( |
8 ("UP", "Unpublished"), |
8 ("UP", "Unpublished"), |
9 ("OP", "Open"), |
9 ("OP", "Open"), |
10 ("LO", "Locked"), |
10 ("LO", "Locked"), |
11 ("WR", "Working"), |
11 ("WR", "Working"), |
12 ("CD", "Closed"), |
12 ("CD", "Closed"), |
13 ("DL", "Deleted"), |
13 ("DL", "Deleted"), |
14 ("CM", "Completed")) |
14 ("CM", "Completed")) |
|
15 |
|
16 TB_STATUS_CHOICES = ( |
|
17 ("UP", "Unpublished"), |
|
18 ("OP", "Open"), |
|
19 ("WR", "All tasks have users selected"), |
|
20 ("CM", "Completed")) |
15 |
21 |
16 UPLOADS_DIR = "./pytask/static/uploads" |
22 UPLOADS_DIR = "./pytask/static/uploads" |
17 |
23 |
18 class Task(models.Model): |
24 class Task(models.Model): |
19 |
25 |
20 uniq_key = models.CharField(max_length = 10, unique = True) |
26 uniq_key = models.CharField(max_length = 10, unique = True) |
21 title = models.CharField(max_length = 100, verbose_name = u"Title", |
27 title = models.CharField(max_length = 100, verbose_name = u"Title", |
22 help_text = u"Keep it simple and below 100 chars.") |
28 help_text = u"Keep it simple and below 100 chars.") |
23 desc = models.TextField(verbose_name = u"Description") |
29 desc = models.TextField(verbose_name = u"Description") |
24 |
30 |
25 status = models.CharField(max_length = 2, choices = STATUS_CHOICES, default = "UP") |
31 status = models.CharField(max_length = 2, choices = TASK_STATUS_CHOICES, default = "UP") |
26 tags_field = TagField(verbose_name = u"Tags", |
32 tags_field = TagField(verbose_name = u"Tags", |
27 help_text = u"Give tags seperated by commas") |
33 help_text = u"Give tags seperated by commas") |
28 |
34 |
29 pynts = models.PositiveSmallIntegerField(help_text = u"No.of pynts a user \ |
35 pynts = models.PositiveSmallIntegerField(help_text = u"No.of pynts a user \ |
30 gets on completing the task") |
36 gets on completing the task") |
36 related_name = "%(class)s_claimed_users") |
42 related_name = "%(class)s_claimed_users") |
37 selected_users = models.ManyToManyField(User, blank = True, |
43 selected_users = models.ManyToManyField(User, blank = True, |
38 related_name = "%(class)s_selected_users") |
44 related_name = "%(class)s_selected_users") |
39 |
45 |
40 creation_datetime = models.DateTimeField() |
46 creation_datetime = models.DateTimeField() |
|
47 approval_datetime = models.DateTimeField() |
41 |
48 |
42 def __unicode__(self): |
49 def __unicode__(self): |
43 return unicode(self.title) |
50 return unicode(self.title) |
44 |
51 |
45 class TaskComment(models.Model): |
52 class TaskComment(models.Model): |
119 help_text="Reason in case of rejection") |
126 help_text="Reason in case of rejection") |
120 |
127 |
121 request_datetime = models.DateTimeField() |
128 request_datetime = models.DateTimeField() |
122 is_responded = models.BooleanField(default=False) |
129 is_responded = models.BooleanField(default=False) |
123 |
130 |
|
131 class TextBook(models.Model): |
|
132 |
|
133 uniq_key = models.CharField(max_length = 10, unique = True) |
|
134 tags_field = TagField(verbose_name="Tags") |
|
135 |
|
136 created_by = models.ForeignKey(User, related_name = "%(class)s_created_by") |
|
137 approved_by = models.ForeignKey(User, related_name = "%(class)s_approved_by") |
|
138 |
|
139 status = models.CharField(max_length = 2, choices = TB_STATUS_CHOICES, default = "UP") |
|
140 creation_datetime = models.DateTimeField() |
|
141 approval_datetime = models.DateTimeField() |
|
142 |
124 tagging.register(Task) |
143 tagging.register(Task) |