from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from django.db import models
from django.template.loader import render_to_string
+from django.utils.encoding import force_unicode
from django.utils.translation import ugettext_lazy as _
from dvcs.models import Ref
from organizations.models import Organization
owner_user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True)
owner_organization = models.ForeignKey(Organization, null=True)
- stage = models.CharField(_('stage'), max_length=128, blank=True, default=STAGES[0])
+ stage = models.CharField(_('stage'), max_length=128, blank=True, default=STAGES[0][0])
assigned_to = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, related_name='assignments')
deleted = models.BooleanField(default=False)
- tags = models.ManyToManyField(Tag)
+ tags = models.ManyToManyField(Tag, blank=True)
+ # we need to know if it were ever published (for notifications)
+ published = models.BooleanField(default=False)
# Where to cache searchable stuff from metadata?
# Probably in some kind of search index.
return metadata
def can_edit(self, user):
+ if user.is_superuser:
+ return True
if self.owner_user:
return self.owner_user == user
else:
self.assigned_to = None
self.save()
+ def stage_name(self):
+ return force_unicode(dict(STAGES)[self.stage]) if self.stage else None
+
def get_plan(self):
try:
plan = self.plan_set.get(stage=self.stage)