From 143b337b67195504ebbbe54984ab2e4b42ff6f2d Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 29 Sep 2020 18:06:04 +0200 Subject: Warehouse sheet: display divisions table, display number of items, divisions, containers --- archaeological_warehouse/models.py | 23 ++++++++++++++++++++ .../templates/ishtar/sheet_warehouse.html | 25 ++++++++++++++++++---- archaeological_warehouse/urls.py | 4 ++++ archaeological_warehouse/views.py | 8 +++++++ 4 files changed, 56 insertions(+), 4 deletions(-) (limited to 'archaeological_warehouse') diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 4b7201bcc..a8a38c34d 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -31,6 +31,7 @@ from django.db.models.signals import post_save, post_delete, m2m_changed from django.template.defaultfilters import slugify from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy +from django.apps import apps from ishtar_common.data_importer import post_importer_action from ishtar_common.model_managers import ExternalIdManager, UUIDModelManager from ishtar_common.models import Document, GeneralType, get_external_id, \ @@ -154,6 +155,28 @@ class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem, def __str__(self): return self.name + @property + def number_divisions(self): + return Container.objects.filter( + location=self.pk, container_type__stationary=True).count() + + @property + def number_containers(self): + return Container.objects.filter( + location=self.pk, container_type__stationary=False).count() + + @property + def number_finds(self): + Find = apps.get_model("archaeological_finds", "Find") + return Find.objects.filter( + container__location_id=self.pk).count() + + @property + def number_owned_finds(self): + Find = apps.get_model("archaeological_finds", "Find") + return Find.objects.filter( + container_ref__location_id=self.pk).count() + @property def short_label(self): return self.name diff --git a/archaeological_warehouse/templates/ishtar/sheet_warehouse.html b/archaeological_warehouse/templates/ishtar/sheet_warehouse.html index aec248b07..8e143aae9 100644 --- a/archaeological_warehouse/templates/ishtar/sheet_warehouse.html +++ b/archaeological_warehouse/templates/ishtar/sheet_warehouse.html @@ -60,12 +60,28 @@
- {% include "ishtar/blocks/sheet_creation_section.html" %} +
+
{% trans "Number of container" %}
+
{{item.number_containers}}
+
+
+
{% trans "Number of divisions" %}
+
{{item.number_divisions}}
+
+
+
{% trans "Number of finds" %}
+
{{item.number_finds}}
+
+
+
{% trans "Number of owned finds" %}
+
{{item.number_owned_finds}}
+
{% field_flex_detail "Person in charge" item.person_in_charge %} {% field_flex_detail "Organization" item.organization %} - {% trans "Default divisions" as def_div_label %} + {% trans "Default divisions (imports)" as def_div_label %} {% field_flex def_div_label item.default_location_types|join:", " %} {% field_flex_full "Comment" item.comment "
" "
" %} + {% include "ishtar/blocks/sheet_creation_section.html" %} {% include "ishtar/blocks/sheet_json.html" %}
@@ -87,10 +103,11 @@
{% if item.containers.count %} +

{% trans "Divisions" %}

+ {% dynamic_table_document '' 'divisions' 'location_id' item.pk 'TABLE_COLS' output %}

{% trans "Containers" %}

- {% dynamic_table_document '' 'containers' 'location_id' item.pk 'TABLE_COLS' output %} + {% dynamic_table_document '' 'non-divisions' 'location_id' item.pk 'TABLE_COLS' output %} {% else %} -
{% trans "No container inside this warehouse" %} diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py index c1b589315..2f43d74a6 100644 --- a/archaeological_warehouse/urls.py +++ b/archaeological_warehouse/urls.py @@ -46,6 +46,10 @@ urlpatterns = [ views.new_container, name='new-container'), url(r'get-container/(?P.+)?$', views.get_container, name='get-container'), + url(r'get-divisions-container/(?P.+)?$', + views.get_divisions_container, name='get-divisions-container'), + url(r'get-non-divisions-container/(?P.+)?$', + views.get_non_divisions_container, name='get-non-divisions-container'), url(r'get-warehouse/(?P.+)?$', views.get_warehouse, name='get-warehouse'), url(r'get-warehouse-shortcut/(?P.+)?$', diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index 3a11c0e05..34def58cf 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -46,6 +46,14 @@ from archaeological_warehouse.wizards import PackagingWizard, WarehouseSearch, \ get_container = get_item(models.Container, 'get_container', 'container', search_form=forms.ContainerSelect) +get_divisions_container = get_item( + models.Container, 'get_container', 'container', + search_form=forms.ContainerSelect, + base_request={"container_type__stationary": 'True'}) +get_non_divisions_container = get_item( + models.Container, 'get_container', 'container', + search_form=forms.ContainerSelect, + base_request={"container_type__stationary": 'False'}) show_container = show_item(models.Container, 'container') get_warehouse = get_item(models.Warehouse, 'get_warehouse', 'warehouse', -- cgit v1.2.3