summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-04-29 11:12:07 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-06-17 13:21:27 +0200
commit2adf65aad9a99158da6eef7468dde7badd434b1e (patch)
tree239064507748fcde0dc8b1f6bdab7ebcbf2ed68e /ishtar_common/models.py
parentaab04bcf162d1264f7612b729a0dfe3177f24d3f (diff)
downloadIshtar-2adf65aad9a99158da6eef7468dde7badd434b1e.tar.bz2
Ishtar-2adf65aad9a99158da6eef7468dde7badd434b1e.zip
Document templates: adapt models to manage labels
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py27
1 files changed, 18 insertions, 9 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 74151fa31..43267f6df 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -3037,12 +3037,12 @@ class Dashboard(object):
avrg = self.get_average(vals)
return self.get_average([(x - avrg) ** 2 for x in vals])
- def get_standard_deviation(self, vals=[]):
+ def get_standard_deviation(self, vals=None):
if not vals:
vals = self.numbers[:]
return round(self.get_variance(vals) ** 0.5, 3)
- def get_median(self, vals=[]):
+ def get_median(self, vals=None):
if not vals:
vals = self.numbers[:]
len_vals = len(vals)
@@ -3053,7 +3053,7 @@ class Dashboard(object):
return (vals[int(len_vals / 2) - 1] +
vals[int(len_vals / 2)]) / 2.0
- def get_mode(self, vals={}):
+ def get_mode(self, vals=None):
if not vals:
vals = dict(zip(self.periods, self.numbers[:]))
mx = max(vals.values())
@@ -3063,22 +3063,24 @@ class Dashboard(object):
class DocumentTemplate(models.Model):
- CLASSNAMES = (('archaeological_operations.models.AdministrativeAct',
- _("Administrative Act")),)
name = models.CharField(_("Name"), max_length=100)
slug = models.SlugField(_("Slug"), blank=True, null=True, max_length=100,
unique=True)
+ associated_model = models.ForeignKey(ImporterModel)
template = models.FileField(
_("Template"), upload_to="templates/%Y/", help_text=max_size_help())
- associated_object_name = models.CharField(
- _("Associated object"), max_length=100, choices=CLASSNAMES)
available = models.BooleanField(_("Available"), default=True)
+ for_labels = models.BooleanField(_("Used for labels"), default=False)
+ label_per_page = models.IntegerField(
+ _("Number of label per page"), blank=True, null=True,
+ help_text=_("Only relevant for label template")
+ )
objects = SlugModelManager()
class Meta:
verbose_name = _("Document template")
verbose_name_plural = _("Document templates")
- ordering = ['associated_object_name', 'name']
+ ordering = ['associated_model', 'name']
def __str__(self):
return self.name
@@ -3086,13 +3088,20 @@ class DocumentTemplate(models.Model):
def natural_key(self):
return (self.slug,)
+ def clean(self):
+ if self.for_labels and not self.label_per_page:
+ raise ValidationError(_("For label template, you must provide "
+ "number of label per page."))
+
def save(self, *args, **kwargs):
if not self.slug:
self.slug = create_slug(DocumentTemplate, self.name)
return super(DocumentTemplate, self).save(*args, **kwargs)
@classmethod
- def get_tuples(cls, dct={}, empty_first=True):
+ def get_tuples(cls, dct=None, empty_first=True):
+ if not dct:
+ dct = {}
dct['available'] = True
if empty_first:
yield ('', '----------')