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) |