Changed all status to start with Uppercase letters, made 3 properties required.
Changed all the status to start with Uppercase letters because they are
publicly visible. Also changed required=True to False for created_by,
modified_by property to allow site admin to create and modify tasks. Also
changed required=True to False for history to allow history not to be written
until the task is published.
from django.conf import settings
from django.db import models
from django.db.models.fields import FieldDoesNotExist
class CurrentSiteManager(models.Manager):
"Use this to limit objects to those associated with the current site."
def __init__(self, field_name='site'):
super(CurrentSiteManager, self).__init__()
self.__field_name = field_name
self.__is_validated = False
def get_query_set(self):
if not self.__is_validated:
try:
self.model._meta.get_field(self.__field_name)
except FieldDoesNotExist:
raise ValueError, "%s couldn't find a field named %s in %s." % \
(self.__class__.__name__, self.__field_name, self.model._meta.object_name)
self.__is_validated = True
return super(CurrentSiteManager, self).get_query_set().filter(**{self.__field_name + '__id__exact': settings.SITE_ID})