author | nishanth |
Tue, 23 Feb 2010 20:24:26 +0530 | |
changeset 61 | 708dd49d531b |
parent 59 | f6a3bf088a9e |
child 63 | 1fc027bf99ee |
permissions | -rw-r--r-- |
61 | 1 |
import random |
2 |
import string |
|
3 |
import os |
|
4 |
from django.core.files.storage import FileSystemStorage |
|
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
5 |
from django.db import models |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
6 |
from django.contrib.auth.models import User |
48 | 7 |
import tagging |
8 |
from tagging.fields import TagField |
|
9 |
||
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
10 |
GENDER_CHOICES = (( 'M', 'Male'), ('F', 'Female')) |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
11 |
RIGHTS_CHOICES = ( |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
12 |
("AD", "Admin"), |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
13 |
("MN", "Manager"), |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
14 |
("DV", "Developer"), |
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
15 |
("CT", "Contributor"),) |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
16 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
17 |
STATUS_CHOICES = ( |
18
a39549bd5b08
implemented create task view which needed task.py in events. added a method show_msg to views/user.py and used it in logoff view.
nishanth
parents:
12
diff
changeset
|
18 |
("UP", "Unpublished"), |
51 | 19 |
("OP", "Open"), |
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
20 |
("LO", "Locked"), |
51 | 21 |
("CL", "Claimed"), |
22 |
("AS", "Assigned"), |
|
22 | 23 |
("RE", "Reopened"), |
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
24 |
("CD", "Closed"), |
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
25 |
("DL", "Deleted"), |
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
26 |
("CM", "Completed")) |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
27 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
28 |
IMAGES_DIR = "./images" |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
29 |
UPLOADS_DIR = "./uploads" |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
30 |
|
61 | 31 |
class CustomImageStorage(FileSystemStorage): |
32 |
||
33 |
def path(self, name): |
|
34 |
""" we return images directory path. |
|
35 |
""" |
|
36 |
||
37 |
return os.path.join(IMAGES_DIR, name) |
|
38 |
||
39 |
def get_available_name(self, name): |
|
40 |
""" here we are going with username as the name of image. |
|
41 |
""" |
|
42 |
||
43 |
root, ext = os.path.splitext(name) |
|
44 |
name = ''.join([ random.choice(string.uppercase+string.digits) for i in range(10)])+ext |
|
45 |
while self.exists(name): |
|
46 |
name = ''.join([ random.choice(string.uppercase+string.digits) for i in range(10)])+ext |
|
47 |
return name |
|
48 |
||
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
49 |
class Profile(models.Model): |
59 | 50 |
|
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
51 |
user = models.ForeignKey(User, unique = True) |
38
7910ff503036
added help_text and verbose_name to models where required and removed import of seed_db from urls.py
nishanth
parents:
33
diff
changeset
|
52 |
dob = models.DateField(verbose_name = u"Date of Birth", help_text = "YYYY-MM-DD") |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
53 |
gender = models.CharField(max_length = 1, choices = GENDER_CHOICES) |
12
a93eebabfeb1
created forms, views, templates, actions for home_page, browse_task.
nishanth
parents:
10
diff
changeset
|
54 |
rights = models.CharField(max_length = 2, choices = RIGHTS_CHOICES, default = u"CT") |
a93eebabfeb1
created forms, views, templates, actions for home_page, browse_task.
nishanth
parents:
10
diff
changeset
|
55 |
credits = models.PositiveSmallIntegerField(default = 0) |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
56 |
|
12
a93eebabfeb1
created forms, views, templates, actions for home_page, browse_task.
nishanth
parents:
10
diff
changeset
|
57 |
aboutme = models.TextField(blank = True) |
48 | 58 |
# foss_comm = models.CharField(max_length = 80, blank = True, verbose_name = u"Foss Communities", help_text = u"Comma seperated list of foss communities you are involved in.") |
59 |
foss_comm = TagField() |
|
38
7910ff503036
added help_text and verbose_name to models where required and removed import of seed_db from urls.py
nishanth
parents:
33
diff
changeset
|
60 |
phonenum = models.CharField(max_length = 15, blank = True, verbose_name = u"Phone Number") |
7910ff503036
added help_text and verbose_name to models where required and removed import of seed_db from urls.py
nishanth
parents:
33
diff
changeset
|
61 |
homepage = models.URLField(blank = True, verbose_name = u"Homepage/Blog") |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
62 |
street = models.CharField(max_length = 80, blank = True) |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
63 |
city = models.CharField(max_length = 25, blank = True) |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
64 |
country = models.CharField(max_length = 25, blank = True) |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
65 |
nick = models.CharField(max_length = 20, blank = True) |
61 | 66 |
photo = models.ImageField(storage = CustomImageStorage(),upload_to = IMAGES_DIR, blank = True) |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
67 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
68 |
def __unicode__(self): |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
69 |
return unicode(self.user.username) |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
70 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
71 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
72 |
class Task(models.Model): |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
73 |
|
38
7910ff503036
added help_text and verbose_name to models where required and removed import of seed_db from urls.py
nishanth
parents:
33
diff
changeset
|
74 |
title = models.CharField(max_length = 100, unique = True, verbose_name = u"Title", help_text = u"Keep it simple and below 100 chars.") |
7910ff503036
added help_text and verbose_name to models where required and removed import of seed_db from urls.py
nishanth
parents:
33
diff
changeset
|
75 |
desc = models.TextField(verbose_name = u"Description") |
18
a39549bd5b08
implemented create task view which needed task.py in events. added a method show_msg to views/user.py and used it in logoff view.
nishanth
parents:
12
diff
changeset
|
76 |
status = models.CharField(max_length = 2, choices = STATUS_CHOICES, default = "UP") |
48 | 77 |
# tags = models.CharField(max_length = 200, blank = True) |
49 | 78 |
tags_field = TagField() |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
79 |
|
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
80 |
subs = models.ManyToManyField('self', blank = True, related_name = "%(class)s_parents") |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
81 |
deps = models.ManyToManyField('self', blank = True, related_name = "%(class)s_deps") |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
82 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
83 |
credits = models.PositiveSmallIntegerField() |
18
a39549bd5b08
implemented create task view which needed task.py in events. added a method show_msg to views/user.py and used it in logoff view.
nishanth
parents:
12
diff
changeset
|
84 |
progress = models.PositiveSmallIntegerField(default = 0) |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
85 |
|
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
86 |
mentors = models.ManyToManyField(User, related_name = "%(class)s_mentors") |
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
87 |
created_by = models.ForeignKey(User, related_name = "%(class)s_created_by") |
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
88 |
claimed_users = models.ManyToManyField(User, blank = True, related_name = "%(class)s_claimed_users") |
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
89 |
assigned_users = models.ManyToManyField(User, blank = True, related_name = "%(class)s_assigned_users") |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
90 |
|
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
91 |
creation_datetime = models.DateTimeField() |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
92 |
|
12
a93eebabfeb1
created forms, views, templates, actions for home_page, browse_task.
nishanth
parents:
10
diff
changeset
|
93 |
#is_claimable = models.BooleanField() |
a93eebabfeb1
created forms, views, templates, actions for home_page, browse_task.
nishanth
parents:
10
diff
changeset
|
94 |
|
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
95 |
## not yet decided if attribs after this are to be included |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
96 |
## tasktype = "" ## "bugfix"/"enhancement" |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
97 |
## priority = "" ## "very urgent"/"urgent" |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
98 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
99 |
def __unicode__(self): |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
100 |
return unicode(self.title) |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
101 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
102 |
class Comment(models.Model): |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
103 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
104 |
task = models.ForeignKey('Task') |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
105 |
data = models.TextField() |
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
106 |
created_by = models.ForeignKey(User, related_name = "%(class)s_created_by") |
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
107 |
creation_datetime = models.DateTimeField() |
59 | 108 |
deleted_by = models.ForeignKey(User, null = True, blank = True, related_name = "%(class)s_deleted_by") |
109 |
deleted = models.BooleanField() |
|
110 |
attachment = models.FileField(upload_to = UPLOADS_DIR, blank = True) |
|
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
111 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
112 |
def __unicode__(self): |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
113 |
return unicode(self.task.title) |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
114 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
115 |
class Credit(models.Model): |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
116 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
117 |
task = models.ForeignKey('Task') |
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
118 |
given_by = models.ForeignKey(User, related_name = "%(class)s_given_by") |
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
119 |
given_to = models.ForeignKey(User, related_name = "%(class)s_given_to") |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
120 |
points = models.PositiveSmallIntegerField() |
10
bf0cbea1bd12
removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents:
1
diff
changeset
|
121 |
given_time = models.DateTimeField() |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
122 |
|
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
123 |
def __unicode__(self): |
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
124 |
return unicode(self.task.title) |
21
c28774fe7ffd
implemented "add another mentor" functionality to a task.
nishanth
parents:
18
diff
changeset
|
125 |
|
c28774fe7ffd
implemented "add another mentor" functionality to a task.
nishanth
parents:
18
diff
changeset
|
126 |
class Claim(models.Model): |
1
7818992cbf83
Created taskapp and added data to models.py and edited settings.py to make it usable in admin interface.
Nishanth <nishanth@fossee.in>
parents:
diff
changeset
|
127 |
|
21
c28774fe7ffd
implemented "add another mentor" functionality to a task.
nishanth
parents:
18
diff
changeset
|
128 |
task = models.ForeignKey('Task') |
c28774fe7ffd
implemented "add another mentor" functionality to a task.
nishanth
parents:
18
diff
changeset
|
129 |
user = models.ForeignKey(User) |
c28774fe7ffd
implemented "add another mentor" functionality to a task.
nishanth
parents:
18
diff
changeset
|
130 |
message = models.TextField() |
c28774fe7ffd
implemented "add another mentor" functionality to a task.
nishanth
parents:
18
diff
changeset
|
131 |
creation_datetime = models.DateTimeField() |
51 | 132 |
|
133 |
class Request(models.Model): |
|
134 |
||
58 | 135 |
to = models.ManyToManyField(User, related_name = "%(class)s_to", blank = False) |
51 | 136 |
by = models.ForeignKey(User, related_name = "%(class)s_by", blank = False) |
137 |
role = models.CharField(max_length = 2, blank = False) |
|
138 |
is_active = models.BooleanField(default = True) |
|
139 |
reply = models.BooleanField(default = False) |
|
58 | 140 |
read = models.BooleanField(default = False) |
51 | 141 |
creation_date = models.DateTimeField() |
142 |
reply_date = models.DateTimeField() |
|
58 | 143 |
replied = models.BooleanField(default = False) |
59 | 144 |
task = models.ForeignKey(Task,related_name = "%(class)s_task", blank = True, null = True) |
51 | 145 |
|
146 |
class Notification(models.Model): |
|
147 |
||
148 |
to = models.ManyToManyField(User, related_name = "%(class)s_to", blank = False) |
|
149 |
is_read = models.BooleanField(default = False) |
|
150 |
sent_date = models.DateTimeField() |
|
151 |
sub = models.CharField(max_length = 100) |
|
152 |
message = models.TextField() |
|
52 | 153 |
deleted = models.BooleanField(default = False) |
21
c28774fe7ffd
implemented "add another mentor" functionality to a task.
nishanth
parents:
18
diff
changeset
|
154 |
|
48 | 155 |
tagging.register(Profile) |
156 |
tagging.register(Task) |