summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-08-25 21:34:55 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-08-25 21:34:55 +0200
commit3baf86f27dcebc7a968c01bee6cd2c1b3fb9a8a2 (patch)
tree231ca1cfc63c661930644922975200edf0273785 /ishtar_common
parenta698072bb49a58e376aeef138260d3df197a3f64 (diff)
downloadIshtar-3baf86f27dcebc7a968c01bee6cd2c1b3fb9a8a2.tar.bz2
Ishtar-3baf86f27dcebc7a968c01bee6cd2c1b3fb9a8a2.zip
Change saved filename (refs #244)
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py29
-rw-r--r--ishtar_common/views.py4
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)