diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 27 | 
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 ('', '----------')  | 
