summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py29
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: