summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/management/commands/regenerate_cached_label_ope.py38
-rw-r--r--archaeological_operations/models.py20
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)