diff options
| -rw-r--r-- | archaeological_operations/management/commands/regenerate_cached_label_ope.py | 38 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 20 | 
2 files changed, 52 insertions, 6 deletions
diff --git a/archaeological_operations/management/commands/regenerate_cached_label_ope.py b/archaeological_operations/management/commands/regenerate_cached_label_ope.py new file mode 100644 index 000000000..4eee0b623 --- /dev/null +++ b/archaeological_operations/management/commands/regenerate_cached_label_ope.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2014 Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +# See the file COPYING for details. + +import sys + +from django.db import models +from django.core.management.base import BaseCommand, CommandError +from django.core.exceptions import ValidationError + +from archaeological_operations import models + +class Command(BaseCommand): +    args = '' +    help = 'Regenerate cached label' + +    def handle(self, *args, **options): +        q = models.Operation.objects +        ln = q.count() +        sys.stdout.write("\n* regeneration\n") +        for idx, operation in enumerate(q.all()): +            operation.save() +            sys.stdout.write("\r* %d/%d" % (idx, ln)) diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index a4a225ff0..0823118e0 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -271,14 +271,22 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,      def show_url(self):          return reverse('show-operation', args=[self.pk, '']) -    @property -    def reference(self): +    def get_reference(self, full=False): +        ref = ""          if self.code_patriarche: -            return unicode(self.code_patriarche) +            ref = unicode(self.code_patriarche) +            if not full: +                return ref          if self.year and self.operation_code: -            return u"-".join((unicode(self.year), +            if ref: +                ref += u" - " +            ref += u"-".join((unicode(self.year),                                unicode(self.operation_code))) -        return "00" +        return ref or "00" + +    @property +    def reference(self): +        return self.get_reference()      @property      def report_delivery_delay(self): @@ -289,7 +297,7 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,      def _generate_cached_label(self): -        items = [self.get_town_label(), self.reference] +        items = [self.get_town_label(), self.get_reference(full=True)]          if self.common_name:              items.append(self.common_name)          cached_label = settings.JOINT.join(items)  | 
