did lots and now id field in task is a random key
authornishanth
Fri, 26 Feb 2010 16:02:32 +0530
changeset 119 39ab7c460143
parent 118 5bbb29a07b87
child 120 aad4e6065d85
did lots and now id field in task is a random key
taskapp/events/task.py
taskapp/management/commands/seed_db.py
taskapp/models.py
taskapp/utilities/helper.py
--- a/taskapp/events/task.py	Fri Feb 26 15:15:16 2010 +0530
+++ b/taskapp/events/task.py	Fri Feb 26 16:02:32 2010 +0530
@@ -1,6 +1,7 @@
 from datetime import datetime
 from pytask.taskapp.models import Profile, Task, Comment, Credit, Claim, Map
 from pytask.taskapp.utilities.request import create_request
+from pytask.taskapp.utilities.helper import get_key
 
 def publishTask(task, rem_mentors=True, rem_comments=True):
     """ set the task status to open """
@@ -95,18 +96,30 @@
     
     task.mentors.add(mentor)
     task.save()
-    return task    
-    
+    return task     
+
+
+
 def createTask(title,desc,created_by,credits):
     """ creates a bare minimum task with title, description and credits.
     the creator of the task will be assigned as a mentor for the task.
     """
 
+    while True:
+        id = get_key()
+        try:
+            task = Task.objects.get(id__iexact=id)
+            continue
+        except Task.DoesNotExist:
+            break
+
     try:
         task = Task.objects.get(title__iexact=title)
         return None
-    except Task.DoesNotExist:
+    except:
         task = Task(title=title)
+
+    task.id = id 
     task.desc = desc
     task.created_by = created_by
     task.credits = credits
--- a/taskapp/management/commands/seed_db.py	Fri Feb 26 15:15:16 2010 +0530
+++ b/taskapp/management/commands/seed_db.py	Fri Feb 26 16:02:32 2010 +0530
@@ -24,7 +24,7 @@
         gender = "M"
         userEvents.createUser(username,email,password,dob,gender)
 
-    for i in range(1,21):
+    for i in range(1,6):
         
         title = "Task "+str(i)
         desc = "I am "+title
--- a/taskapp/models.py	Fri Feb 26 15:15:16 2010 +0530
+++ b/taskapp/models.py	Fri Feb 26 16:02:32 2010 +0530
@@ -1,12 +1,14 @@
-import random
-import string
 import os
+
 from django.core.files.storage import FileSystemStorage
 from django.db import models
 from django.contrib.auth.models import User
+
 import tagging
 from tagging.fields import TagField
 
+from pytask.taskapp.utilities.helper import get_key
+
 GENDER_CHOICES = (( 'M', 'Male'), ('F', 'Female'))
 RIGHTS_CHOICES = (
 	("AD", "Admin"),
@@ -26,12 +28,6 @@
 IMAGES_DIR = "./images"
 UPLOADS_DIR = "./uploads"
 
-def get_key():
-    """ generate a 10 character name with random alphabets and digits.
-    """
-
-    name = ''.join([ random.choice(string.uppercase+string.digits) for i in range(10)])
-    return name
 
 class CustomImageStorage(FileSystemStorage):
 
@@ -60,7 +56,6 @@
     credits = models.PositiveSmallIntegerField(default = 0)
     
     aboutme = models.TextField(blank = True)
-#    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.")
     foss_comm = TagField()
     phonenum = models.CharField(max_length = 15, blank = True, verbose_name = u"Phone Number")
     homepage = models.URLField(blank = True, verbose_name = u"Homepage/Blog")
@@ -76,10 +71,11 @@
 
 class Task(models.Model):
     
+    prim_key = models.AutoField(primary_key = True)
+    id = models.CharField(max_length = 10, unique = True)
     title = models.CharField(max_length = 100, unique = True, verbose_name = u"Title", help_text = u"Keep it simple and below 100 chars.")
     desc = models.TextField(verbose_name = u"Description")
     status = models.CharField(max_length = 2, choices = STATUS_CHOICES, default = "UP")
-#    tags = models.CharField(max_length = 200, blank = True)
     tags_field = TagField()
     
     credits = models.PositiveSmallIntegerField()
@@ -92,11 +88,6 @@
     
     creation_datetime = models.DateTimeField()
     sub_type = models.CharField(max_length=1, choices = (('D','Dependency'),('S','Subtask')), default = 'D')   
-    #is_claimable = models.BooleanField()
-    
-    ## 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)
@@ -145,12 +136,15 @@
     role = models.CharField(max_length = 2, blank = False)
     reply = models.BooleanField(default = False, blank = False)
     remarks = models.TextField(default = "",blank = True)
+    
     is_read = models.BooleanField(default = False, blank = False)
     is_valid = models.BooleanField(default = True, blank = False)
+    
     creation_date = models.DateTimeField()
     reply_date = models.DateTimeField()
     is_replied = models.BooleanField(default = False)
     replied_by = models.ForeignKey(User, related_name = "%(class)s_replied_by", blank = True, null = True)
+    
     task = models.ForeignKey(Task,related_name = "%(class)s_task", blank = True, null = True)
     receiving_user = models.ForeignKey(User, related_name = "%(class)s_receiving_user", blank = True, null = True)
     pynts = models.PositiveIntegerField(default=0)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskapp/utilities/helper.py	Fri Feb 26 16:02:32 2010 +0530
@@ -0,0 +1,8 @@
+import string,random
+
+def get_key():
+    """ return a 10 character random key.
+    """
+    
+    return ''.join([ random.choice(string.uppercase+string.digits) for i in range(10)])
+