diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/models.py | 29 | ||||
| -rw-r--r-- | ishtar_common/views.py | 4 | 
2 files changed, 28 insertions, 5 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: diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 54d2e26a0..eda0be543 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -40,7 +40,6 @@ from django.db.models import Q  from django.http import HttpResponse, Http404  from django.shortcuts import render_to_response, redirect  from django.template import RequestContext, loader -from django.template.defaultfilters import slugify  from django.utils.translation import ugettext, ugettext_lazy as _  if settings.XHTML2ODT_PATH: @@ -391,8 +390,7 @@ def show_item(model, name):          context_instance = RequestContext(request)          context_instance.update(dct)          n = datetime.datetime.now() -        filename = u'%s_%s_%s' % (name, slugify(unicode(item)), -                                  n.strftime('%Y%m%d-%H%M%S')) +        filename = item.associated_filename          if doc_type == "odt" and settings.XHTML2ODT_PATH and \             settings.ODT_TEMPLATE:              tpl = loader.get_template('ishtar/sheet_%s.html' % name) | 
