from datetime import date
from django.conf import settings
+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.
if header is None:
header = etree.fromstring(data).find('.//{http://nowoczesnapolska.org.pl/sst#}header')
metadata['title'] = getattr(header, 'text', ' ') or ' '
- #print 'meta', d['title']
+ # print 'meta', d['title']
m = t.find('metadata')
if m is None:
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)
- except:
+ except (ObjectDoesNotExist, MultipleObjectsReturned):
return None
return plan