diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 29 | 
1 files changed, 27 insertions, 2 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index fc4cdbd17..ac2661fe1 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -29,12 +29,13 @@ from django.conf import settings  from django.core.exceptions import ObjectDoesNotExist, ValidationError  from django.core.files.uploadedfile import SimpleUploadedFile  from django.core.validators import validate_slug -from django.utils.translation import ugettext_lazy as _, ugettext -from django.utils.safestring import SafeUnicode, mark_safe  from django.core.urlresolvers import reverse, NoReverseMatch  from django.db.utils import DatabaseError  from django.db.models import Q, Max, Count  from django.db.models.signals import post_save +from django.utils.translation import ugettext_lazy as _, ugettext +from django.utils.safestring import SafeUnicode, mark_safe +from django.template.defaultfilters import slugify  from django.contrib.auth.models import User  from django.contrib.gis.db import models @@ -376,6 +377,13 @@ class BaseHistorizedItem(models.Model):          item.pk = self.pk          return item +    @property +    def last_edition_date(self): +        try: +            return self.history.order_by('-history_date').all()[0].history_date +        except IndexError: +            return +      def rollback(self, date):          """          Rollback to a previous state @@ -417,6 +425,23 @@ class BaseHistorizedItem(models.Model):          except NoReverseMatch:              return +    @property +    def associated_filename(self): +        if [True for attr in ('get_town_label', 'get_department', 'reference', +                              'short_class_name') if not hasattr(self, attr)]: +            print  [True if  hasattr(self, attr) else False for attr in ('get_town_label', 'get_department', 'reference', +                              'short_class_name') ] +            return '' +        print "yata" +        items = [self.get_department(), self.get_town_label(), +                 self.short_class_name, self.reference] +        last_edition_date = self.last_edition_date +        if last_edition_date: +            items.append(last_edition_date.strftime('%Y%m%d')) +        else: +            items.append('00000000') +        return slugify(u"-".join([unicode(item) for item in items])) +  class LightHistorizedItem(BaseHistorizedItem):      history_date = models.DateTimeField(default=datetime.datetime.now)      class Meta: | 
