taskapp/models.py
author nishanth
Tue, 02 Mar 2010 02:12:57 +0530
changeset 165 8ea5bcf3bd01
parent 162 d378eff02f2e
child 166 ac72d641046e
permissions -rw-r--r--
implemented edit_task functionality.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
61
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
     1
import os
119
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
     2
61
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
     3
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
     4
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
     5
from django.contrib.auth.models import User
119
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
     6
48
8670846be981 installed tagging into the app.
anoop
parents: 38
diff changeset
     7
import tagging
8670846be981 installed tagging into the app.
anoop
parents: 38
diff changeset
     8
from tagging.fields import TagField
8670846be981 installed tagging into the app.
anoop
parents: 38
diff changeset
     9
119
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
    10
from pytask.taskapp.utilities.helper import get_key
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
    11
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
    12
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
    13
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
    14
	("AD", "Admin"),
107
4903b4973fc8 completed the process_request part.
nishanth
parents: 104
diff changeset
    15
	("MG", "Manager"),
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
	("DV", "Developer"),
10
bf0cbea1bd12 removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents: 1
diff changeset
    17
	("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
    18
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
    19
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
    20
    ("UP", "Unpublished"),
51
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
    21
    ("OP", "Open"),
10
bf0cbea1bd12 removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents: 1
diff changeset
    22
    ("LO", "Locked"),
63
1fc027bf99ee added events in task.py for adding subtask and dependencies
nishanth
parents: 61
diff changeset
    23
    ("WR", "Working"),
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
128
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    28
NOTIFY_CHOICES = (
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    29
    ("MT", "Add Mentor"),
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    30
    ("DV", "Developer"),
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    31
    ("MG", "Manager"),
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    32
    ("AD", "Admin"),
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    33
    ("PY", "Assign credits"),
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    34
    ("CM", "Task completed"),
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    35
    ("CD", "Task closed"),
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    36
    ("DL", "Task deleted"),
131
85276c5aee5c added notifications for approval and rejection of a mentor.
nishanth
parents: 130
diff changeset
    37
    ("NU", "New User"),
85276c5aee5c added notifications for approval and rejection of a mentor.
nishanth
parents: 130
diff changeset
    38
    ("NT", "New Mentor"),
162
d378eff02f2e added au ru notifications.
nishanth
parents: 153
diff changeset
    39
    ("ND", "New Developer"),
d378eff02f2e added au ru notifications.
nishanth
parents: 153
diff changeset
    40
    ("NG", "New Manager"),
d378eff02f2e added au ru notifications.
nishanth
parents: 153
diff changeset
    41
    ("NA", "New Admin"),
d378eff02f2e added au ru notifications.
nishanth
parents: 153
diff changeset
    42
    ("AU", "Assign user"), ## i mean assign the task
d378eff02f2e added au ru notifications.
nishanth
parents: 153
diff changeset
    43
    ("RU", "Remove user"), ## remove from working users list in task
128
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    44
)
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    45
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
    46
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
    47
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
    48
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
    49
118
5bbb29a07b87 modified image storage.
nishanth
parents: 116
diff changeset
    50
61
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    51
class CustomImageStorage(FileSystemStorage):
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    52
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    53
    def path(self, name):
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    54
        """ we return images directory path.
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    55
        """
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    56
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    57
        return os.path.join(IMAGES_DIR, name)
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    58
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    59
    def get_available_name(self, name):
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    60
        """ here we are going with username as the name of image.
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    61
        """
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    62
    
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    63
        root, ext = os.path.splitext(name)
118
5bbb29a07b87 modified image storage.
nishanth
parents: 116
diff changeset
    64
        file_name = get_key() + ext
5bbb29a07b87 modified image storage.
nishanth
parents: 116
diff changeset
    65
        while self.exists(file_name):
5bbb29a07b87 modified image storage.
nishanth
parents: 116
diff changeset
    66
            file_name = get_key() + ext
5bbb29a07b87 modified image storage.
nishanth
parents: 116
diff changeset
    67
        return file_name
61
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    68
10
bf0cbea1bd12 removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents: 1
diff changeset
    69
class Profile(models.Model):
59
f6a3bf088a9e made changes to models.
anoop
parents: 58
diff changeset
    70
    
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
    71
    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
    72
    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
    73
    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
    74
    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
    75
    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
    76
    
12
a93eebabfeb1 created forms, views, templates, actions for home_page, browse_task.
nishanth
parents: 10
diff changeset
    77
    aboutme = models.TextField(blank = True)
48
8670846be981 installed tagging into the app.
anoop
parents: 38
diff changeset
    78
    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
    79
    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
    80
    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
    81
    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
    82
    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
    83
    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
    84
    nick = models.CharField(max_length = 20, blank = True)
61
708dd49d531b added custom image storage for profile photo.
nishanth
parents: 59
diff changeset
    85
    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
    86
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
    87
    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
    88
        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
    89
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
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
    91
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
    92
    
119
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
    93
    prim_key = models.AutoField(primary_key = True)
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
    94
    id = models.CharField(max_length = 10, unique = True)
165
8ea5bcf3bd01 implemented edit_task functionality.
nishanth
parents: 162
diff changeset
    95
    title = models.CharField(max_length = 100, verbose_name = u"Title", help_text = u"Keep it simple and below 100 chars.")
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
    96
    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
    97
    status = models.CharField(max_length = 2, choices = STATUS_CHOICES, default = "UP")
49
52b774df918e fixed a bug in models.
anoop
parents: 48
diff changeset
    98
    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
    99
    
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
    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
   101
    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
   102
        
10
bf0cbea1bd12 removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents: 1
diff changeset
   103
    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
   104
    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
   105
    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
   106
    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
   107
    
10
bf0cbea1bd12 removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents: 1
diff changeset
   108
    creation_datetime = models.DateTimeField()
124
6d92b7cd2a37 taking care if publish task post request is made again. added published_date field to task.
nishanth
parents: 123
diff changeset
   109
    published_datetime = models.DateTimeField()
90
b2426897ff18 our task model does not meet out needs. so modified it and added a model called map. made the changes in views accordingly.phew!!!. this one took the hell out of me :( .
nishanth
parents: 86
diff changeset
   110
    sub_type = models.CharField(max_length=1, choices = (('D','Dependency'),('S','Subtask')), default = 'D')   
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.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
90
b2426897ff18 our task model does not meet out needs. so modified it and added a model called map. made the changes in views accordingly.phew!!!. this one took the hell out of me :( .
nishanth
parents: 86
diff changeset
   115
class Map(models.Model):
b2426897ff18 our task model does not meet out needs. so modified it and added a model called map. made the changes in views accordingly.phew!!!. this one took the hell out of me :( .
nishanth
parents: 86
diff changeset
   116
b2426897ff18 our task model does not meet out needs. so modified it and added a model called map. made the changes in views accordingly.phew!!!. this one took the hell out of me :( .
nishanth
parents: 86
diff changeset
   117
    main = models.ForeignKey('Task', related_name = "%(class)s_main")
b2426897ff18 our task model does not meet out needs. so modified it and added a model called map. made the changes in views accordingly.phew!!!. this one took the hell out of me :( .
nishanth
parents: 86
diff changeset
   118
    subs = models.ManyToManyField('Task', blank = True, null = True, related_name = "%(class)s_subs")
b2426897ff18 our task model does not meet out needs. so modified it and added a model called map. made the changes in views accordingly.phew!!!. this one took the hell out of me :( .
nishanth
parents: 86
diff changeset
   119
b2426897ff18 our task model does not meet out needs. so modified it and added a model called map. made the changes in views accordingly.phew!!!. this one took the hell out of me :( .
nishanth
parents: 86
diff changeset
   120
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
   121
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
   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
    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
   124
    data = models.TextField()
10
bf0cbea1bd12 removed views.py and made it a package. added auth_profile to settings.py
nishanth
parents: 1
diff changeset
   125
    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
   126
    creation_datetime = models.DateTimeField()
59
f6a3bf088a9e made changes to models.
anoop
parents: 58
diff changeset
   127
    deleted_by = models.ForeignKey(User, null = True, blank = True, related_name = "%(class)s_deleted_by")
112
eadff01e395e now task page displays only undeleted comments. and publish task removes previous comments.
nishanth
parents: 107
diff changeset
   128
    is_deleted = models.BooleanField()
59
f6a3bf088a9e made changes to models.
anoop
parents: 58
diff changeset
   129
    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
   130
    
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
   131
    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
   132
        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
   133
21
c28774fe7ffd implemented "add another mentor" functionality to a task.
nishanth
parents: 18
diff changeset
   134
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
   135
    
21
c28774fe7ffd implemented "add another mentor" functionality to a task.
nishanth
parents: 18
diff changeset
   136
    task = models.ForeignKey('Task')
c28774fe7ffd implemented "add another mentor" functionality to a task.
nishanth
parents: 18
diff changeset
   137
    user = models.ForeignKey(User)
c28774fe7ffd implemented "add another mentor" functionality to a task.
nishanth
parents: 18
diff changeset
   138
    message = models.TextField()
c28774fe7ffd implemented "add another mentor" functionality to a task.
nishanth
parents: 18
diff changeset
   139
    creation_datetime = models.DateTimeField()
51
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   140
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   141
class Request(models.Model):
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   142
85
9cf299c47990 changed request model.
anoop
parents: 83
diff changeset
   143
    sent_to = models.ManyToManyField(User, related_name = "%(class)s_sent_to", blank = False)
9cf299c47990 changed request model.
anoop
parents: 83
diff changeset
   144
    sent_by = models.ForeignKey(User, related_name = "%(class)s_sent_by", blank = False)
51
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   145
    role = models.CharField(max_length = 2, blank = False)
116
cb7f54ed5866 modified request model.
nishanth
parents: 115
diff changeset
   146
    reply = models.BooleanField(default = False, blank = False)
104
d1bdd5d6c1a6 added the field remarks in request model.
nishanth
parents: 90
diff changeset
   147
    remarks = models.TextField(default = "",blank = True)
119
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
   148
    
116
cb7f54ed5866 modified request model.
nishanth
parents: 115
diff changeset
   149
    is_read = models.BooleanField(default = False, blank = False)
cb7f54ed5866 modified request model.
nishanth
parents: 115
diff changeset
   150
    is_valid = models.BooleanField(default = True, blank = False)
119
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
   151
    
51
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   152
    creation_date = models.DateTimeField()
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   153
    reply_date = models.DateTimeField()
85
9cf299c47990 changed request model.
anoop
parents: 83
diff changeset
   154
    is_replied = models.BooleanField(default = False)
86
fcbdf372857c modified requests to match the new model.
nishanth
parents: 85
diff changeset
   155
    replied_by = models.ForeignKey(User, related_name = "%(class)s_replied_by", blank = True, null = True)
119
39ab7c460143 did lots and now id field in task is a random key
nishanth
parents: 118
diff changeset
   156
    
59
f6a3bf088a9e made changes to models.
anoop
parents: 58
diff changeset
   157
    task = models.ForeignKey(Task,related_name = "%(class)s_task", blank = True, null = True)
85
9cf299c47990 changed request model.
anoop
parents: 83
diff changeset
   158
    receiving_user = models.ForeignKey(User, related_name = "%(class)s_receiving_user", blank = True, null = True)
80
8917b190c4c4 added attribute pynts to request model.
anoop
parents: 71
diff changeset
   159
    pynts = models.PositiveIntegerField(default=0)
51
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   160
83
fd2e1bd7af82 added accept_assign_credits request
nishanth
parents: 80
diff changeset
   161
    def __unicode__(self):
fd2e1bd7af82 added accept_assign_credits request
nishanth
parents: 80
diff changeset
   162
86
fcbdf372857c modified requests to match the new model.
nishanth
parents: 85
diff changeset
   163
        return u"Request %s %s"%(self.sent_by.username, self.role)
83
fd2e1bd7af82 added accept_assign_credits request
nishanth
parents: 80
diff changeset
   164
51
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   165
class Notification(models.Model):
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   166
128
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
   167
    role = models.CharField(max_length = 2, choices = NOTIFY_CHOICES, blank = False)
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
   168
    sent_to = models.ForeignKey(User, related_name = "%(class)s_sent_to", blank = False)
129
e747da8bc110 notifications work for approving and rejecting credits.
nishanth
parents: 128
diff changeset
   169
    sent_from = models.ForeignKey(User, related_name = "%(class)s_sent_from", null = True, blank = True)
e747da8bc110 notifications work for approving and rejecting credits.
nishanth
parents: 128
diff changeset
   170
    task = models.ForeignKey(Task, related_name = "%(class)s_sent_for", null = True, blank = True)
128
f34e3a3e1439 modified the notifications model. the sent_to is now a foreign key. now if we have a new type to be added, we can generate message and sub while creating notification. we can keep track of history using the role field in notification and task/sent_from
nishanth
parents: 124
diff changeset
   171
123
a6b4234388c8 now notification depends on id and not pos.
nishanth
parents: 119
diff changeset
   172
51
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   173
    sub = models.CharField(max_length = 100)
89463859712c added request and notification models.
nishanth
parents: 49
diff changeset
   174
    message = models.TextField()
129
e747da8bc110 notifications work for approving and rejecting credits.
nishanth
parents: 128
diff changeset
   175
    remarks = models.CharField(max_length = 100)
123
a6b4234388c8 now notification depends on id and not pos.
nishanth
parents: 119
diff changeset
   176
a6b4234388c8 now notification depends on id and not pos.
nishanth
parents: 119
diff changeset
   177
    sent_date = models.DateTimeField()
a6b4234388c8 now notification depends on id and not pos.
nishanth
parents: 119
diff changeset
   178
    is_read = models.BooleanField(default = False)
a6b4234388c8 now notification depends on id and not pos.
nishanth
parents: 119
diff changeset
   179
    is_deleted = models.BooleanField(default = False)
130
9417ae986d2a added __unicode__ method to notification and removed useless comments in reply_to_request.
nishanth
parents: 129
diff changeset
   180
9417ae986d2a added __unicode__ method to notification and removed useless comments in reply_to_request.
nishanth
parents: 129
diff changeset
   181
    def __unicode__(self):
9417ae986d2a added __unicode__ method to notification and removed useless comments in reply_to_request.
nishanth
parents: 129
diff changeset
   182
        return u"%s %s"%(self.sent_to, self.sent_date.ctime())
21
c28774fe7ffd implemented "add another mentor" functionality to a task.
nishanth
parents: 18
diff changeset
   183
    
48
8670846be981 installed tagging into the app.
anoop
parents: 38
diff changeset
   184
tagging.register(Profile)
8670846be981 installed tagging into the app.
anoop
parents: 38
diff changeset
   185
tagging.register(Task)