summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse/models.py')
-rw-r--r--archaeological_warehouse/models.py36
1 files changed, 34 insertions, 2 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 35e5536fa..31701dbf9 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -21,10 +21,10 @@ import datetime
from django.conf import settings
from django.contrib.gis.db import models
-from django.db.models import Q, Count
+from django.db.models import Q
from django.db.models.signals import post_save, post_delete
from django.template.defaultfilters import slugify
-from django.utils.translation import ugettext_lazy as _, ugettext
+from django.utils.translation import ugettext_lazy as _
from ishtar_common.utils import cached_label_changed
@@ -328,6 +328,38 @@ class Container(LightHistorizedItem, ImageModel):
def precise_location(self):
return self.location.name + u" - " + self.divisions_lbl
+ def get_localisations(self):
+ """
+ Get precise localisation of the container in the warehouse.
+
+ :return: tuple of strings with localisations
+ """
+ return tuple((
+ loca.reference
+ for loca in ContainerLocalisation.objects.filter(
+ container=self).order_by('division__order')
+ ))
+
+ def set_localisation(self, place, value):
+ """
+ Set the reference for the localisation number "place" (starting from 0)
+ :param place: the number of the localisation
+ :param value: the reference to be set
+ :return: the container location object or None if the place does not
+ exist
+ """
+ q = WarehouseDivisionLink.objects.filter(
+ warehouse=self.location).order_by('order')
+ for idx, division_link in enumerate(q.all()):
+ if idx == place:
+ break
+ else:
+ return
+ obj, created = ContainerLocalisation.objects.update_or_create(
+ container=self, division=division_link,
+ defaults={'reference': value})
+ return obj
+
@property
def divisions_lbl(self):
locas = [