From ddea255a607c2cf9824d0146525fa618e5699118 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 15 Feb 2024 18:48:59 +0100 Subject: ✨ Sheet find - museum: museum fields, specific template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archaeological_finds/forms.py | 4 +- archaeological_finds/models_finds.py | 22 +- .../templates/ishtar/sheet_find.html | 31 ++ .../templates/ishtar/sheet_museum_find.html | 608 +++++++++++++++++++++ .../templates/ishtar/sheet_museum_find_pdf.html | 14 + .../templates/ishtar/sheet_museum_find_window.html | 3 + 6 files changed, 679 insertions(+), 3 deletions(-) create mode 100644 archaeological_finds/templates/ishtar/sheet_museum_find.html create mode 100644 archaeological_finds/templates/ishtar/sheet_museum_find_pdf.html create mode 100644 archaeological_finds/templates/ishtar/sheet_museum_find_window.html diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 72dc6bfd2..e30a7bc8d 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -344,7 +344,7 @@ class BasicFindForm(CustomForm, ManageOldType): label=_("Free ID"), validators=[validators.MaxLengthValidator(60)] ) museum_id_prefix = forms.CharField(label=_("Museum ID prefix"), required=False) - museum_id = forms.CharField(label=_("Museum ID"), required=False) + museum_id = forms.CharField(label=_("Museum inventory number"), required=False) museum_id_suffix = forms.CharField(label=_("Museum ID suffix"), required=False) museum_id_comment = forms.CharField(label=_("Comment on museum ID"), widget=forms.Textarea, required=False) HEADERS["label"] = FormHeader(_("Identification")) @@ -1476,7 +1476,7 @@ class FindSelect(GeoItemSelect, PeriodSelect): ) label = forms.CharField(label=_("Free ID")) denomination = forms.CharField(label=_("Denomination")) - museum_id = forms.CharField(label=_("Museum ID")) + museum_id = forms.CharField(label=_("Museum inventory number")) cache_complete_museum_id = forms.CharField(label=_("Complete museum ID")) previous_id = forms.CharField(label=_("Previous ID")) base_finds__excavation_id = forms.CharField(label=_("Excavation ID")) diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index fcba41308..030328d1d 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -1829,6 +1829,7 @@ class Find( "excavation_ids", "weight_string", ] + SHEET_ALTERNATIVES = [("museum", "museum_find")] objects = UUIDModelManager() # fields @@ -1847,7 +1848,7 @@ class Find( denomination = models.TextField(_("Denomination"), blank=True, default="") # museum module IDs museum_id_prefix = models.TextField(_("Museum ID prefix"), blank=True, default="") - museum_id = models.TextField(_("Museum ID"), blank=True, default="") + museum_id = models.TextField(_("Museum inventory number"), blank=True, default="") museum_id_suffix = models.TextField(_("Museum ID suffix"), blank=True, default="") museum_id_comment = models.TextField(_("Comment on museum ID"), blank=True, default="") laboratory_id = models.TextField(_("Laboratory ID"), blank=True, default="") @@ -2204,6 +2205,25 @@ class Find( ] ) + @property + def has_museum_section(self): + for field in self._meta.fields: + if not field.name.startswith("museum_"): + continue + if getattr(self, field.name): + return True + return False + + @property + def museum_entry_date_label(self): + from django.utils.formats import date_format + if not self.museum_entry_date: + return + dates = [date_format(self.museum_entry_date, format='SHORT_DATE_FORMAT', use_l10n=True)] + if self.museum_entry_date_end: + dates.append(date_format(self.museum_entry_date_end, format='SHORT_DATE_FORMAT', use_l10n=True)) + return " / ".join(dates) + @classmethod def hierarchic_fields(cls): return ["container", "container_ref"] diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html index c163b7d57..98295dd65 100644 --- a/archaeological_finds/templates/ishtar/sheet_find.html +++ b/archaeological_finds/templates/ishtar/sheet_find.html @@ -211,6 +211,37 @@ {% endif %} + {% if item.has_museum_section %} +

{% trans "Museum / legal status" %}

+
+ {% field_flex "Museum ID prefix" item.museum_id_prefix %} + {% field_flex "Museum inventory number" item.museum_id %} + {% field_flex "Museum ID suffix" item.museum_id_suffix %} + {% field_flex "Comment on museum ID" item.museum_id_comment %} + {% field_flex_detail "Owner institution" item.museum_owner_institution %} + {% field_flex_detail "Custodian institution" item.museum_custodian_institution %} + {% field_flex "Depositor inventory number" item.museum_depositor_inventory_number %} + {% field_flex "Collections entry mode" item.museum_collection_entry_mode %} + {% field_flex "Comment on museum entry mode" item.museum_entry_mode_comment %} + {% trans "Museum entry date" as museum_entry_date_label %} + {% field_flex museum_entry_date_label item.museum_entry_date_label %} + {% field_flex "Comment on museum entry date" item.museum_entry_date_comment %} + {% field_flex "Name of donor, testator or vendor" item.museum_donor %} + {% field_flex_multiple_obj "Presence of inventory marking" item "museum_inventory_marking_presence" %} + {% field_flex_multiple_obj "Type of marking" item "museum_marking_type" %} + {% field_flex "Comment on marking" item.museum_marking_comment %} + {% field_flex "Collection" item.museum_collection %} + {% field_flex_multiple_obj "Former collection" item "museum_former_collections" %} + {% field_flex "Inventory entry year" item.museum_inventory_entry_year %} + {% field_flex "Conformity with inventory" item.museum_inventory_conformity %} + {% field_flex "Comment of non-conformity" item.museum_non_conformity_comment %} + {% field_flex "Inventory transcript" item.museum_inventory_transcript %} + {% field_flex "Original/reproduction" item.museum_original_repro %} + {% field_flex "Date of museum allocation" item.museum_allocation_date|date:"SHORT_DATE_FORMAT" %} + {% field_flex "Purchase price" item.museum_purchase_price %} +
+ {% endif %} + {% with dating_list=item|m2m_listing:"datings" %} {% if dating_list or item.dating_comment or item.cultural_attributions_count %}

{% trans "Dating" %}

diff --git a/archaeological_finds/templates/ishtar/sheet_museum_find.html b/archaeological_finds/templates/ishtar/sheet_museum_find.html new file mode 100644 index 000000000..e1c82d791 --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_museum_find.html @@ -0,0 +1,608 @@ +{% extends "ishtar/sheet.html" %} +{% load i18n l10n ishtar_helpers window_field from_dict link_to_window window_tables window_header humanize %} + +{% block head_title %}{% trans "Find" %}{% if item.denomination %} - {{item.denomination|default:""}}{% endif %} - {{item.cache_complete_museum_id|default:""}}{% endblock %} + +{% block toolbar %} +{% window_find_nav item window_id 'show-find' 'find_modify' 'show-historized-find' 'revert-find' previous next 1 baskets %} +{% endblock %} + +{% block content %} + +{% if item.downstream_treatment %} + +{% endif %} + +{# trick to set to null non existing variable #} +{% with permission_view_document=permission_view_document %} +{% with permission_view_own_document=permission_view_own_document %} +{% with permission_change_own_geovectordata=permission_change_own_geovectordata %} +{% with permission_change_geovectordata=permission_change_geovectordata %} + +{% with permission_change_geo=permission_change_own_geovectordata|or_:permission_change_geovectordata %} + +{% with non_modif_treatments_count=item.non_modif_treatments_count %} +{% with associated_treatment_files_count=item.associated_treatment_files_count %} + +{% with can_view_container=permission_view_own_container|or_:permission_view_container %} +{% with display_warehouse_treatments=item.container|or_:item.container_ref|or_:item.upstream_treatment|or_:item.downstream_treatment|or_:non_modif_treatments_count|or_:associated_treatment_files_count %} +{% with can_view_documents=permission_view_own_document|or_:permission_view_document %} +{% with display_documents=can_view_documents|and_:item.documents_count %} +{% with has_image=item.images_number %} + +{% if output != "ODT" and output != "PDF"%} + +{% endif %} + +
+ +
+ {% if has_image %} +
+
+ {% include "ishtar/blocks/window_image.html" %} +
+ {% endif %} +

{% trans "Identification" %}

+ +
+ {% include "ishtar/blocks/sheet_external_id.html" %} + {# no complete identifier #} +
+ +
+ {% field_flex "Denomination" item.denomination %} + {% field_flex "Complete museum ID" item.cache_complete_museum_id %} + {% field_flex "Free ID" item.label %} + {% field_flex "Previous ID" item.previous_id %} + {% field_flex "Excavation ID" item.excavation_ids %} + {% field_flex "Laboratory ID" item.laboratory_id %} + {% field_flex "Seal number" item.seal_number %} + {# no index admin #} + {% field_flex_full "Mark" item.mark "
" "
" %} +
+ +

{% trans "Description" %}

+
+ {% field_flex_full "Description" item.description "
" "
" %} + {% field_flex_full "Public description" item.public_description "
" "
" %} + {% field_flex "Is complete?" item.is_complete %} + {% with material=item.get_hierarchical_material_types %}{% if material %} + {% field_flex "Material types" material %}{% else %} + {% field_flex_multiple_obj "Material types" item 'material_types' %} + {% endif %}{% endwith %} + {% field_flex "Material type quality" item.material_type_quality %} + {% field_flex_multiple_obj "Technical processes" item 'technical_processes' %} + {% field_flex_full "Comment on the material" item.material_comment "
" "
" %} + {% field_flex_multiple_obj "Object types" item 'object_types' %} + {% field_flex "Object type quality" item.object_type_quality %} + {% field_flex_multiple_obj "Functional areas" item 'functional_areas' %} + {% field_flex_multiple_obj "Technical areas" item 'technical_areas' %} + {% field_flex "Number of remains" item.find_number %} + {% field_flex "Minimum number of individuals (MNI)" item.min_number_of_individuals %} + {% field_flex_full "Comment on quantity" item.quantity_comment "
" "
" %} + {% field_flex_full "Decoration" item.decoration "
" "
" %} + {% field_flex_full "Inscription" item.inscription "
" "
" %} + {% field_flex "Manufacturing place" item.manufacturing_place %} + {% field_flex_multiple_obj "Communicability" item 'communicabilities' %} + {% field_flex_full "Comment" item.comment "
" "
" %} +
+ + {% if item.has_museum_section %} +

{% trans "Museum / legal status" %}

+
+ {% field_flex "Museum ID prefix" item.museum_id_prefix %} + {% field_flex "Museum inventory number" item.museum_id %} + {% field_flex "Museum ID suffix" item.museum_id_suffix %} + {% field_flex "Comment on museum ID" item.museum_id_comment %} + {% field_flex_detail "Owner institution" item.museum_owner_institution %} + {% field_flex_detail "Custodian institution" item.museum_custodian_institution %} + {% field_flex "Depositor inventory number" item.museum_depositor_inventory_number %} + {% field_flex "Collections entry mode" item.museum_collection_entry_mode %} + {% field_flex "Comment on museum entry mode" item.museum_entry_mode_comment %} + {% trans "Museum entry date" as museum_entry_date_label %} + {% field_flex museum_entry_date_label item.museum_entry_date_label %} + {% field_flex "Comment on museum entry date" item.museum_entry_date_comment %} + {% field_flex "Name of donor, testator or vendor" item.museum_donor %} + {% field_flex_multiple_obj "Presence of inventory marking" item "museum_inventory_marking_presence" %} + {% field_flex_multiple_obj "Type of marking" item "museum_marking_type" %} + {% field_flex "Comment on marking" item.museum_marking_comment %} + {% field_flex "Collection" item.museum_collection %} + {% field_flex_multiple_obj "Former collection" item "museum_former_collections" %} + {% field_flex "Inventory entry year" item.museum_inventory_entry_year %} + {% field_flex "Conformity with inventory" item.museum_inventory_conformity %} + {% field_flex "Comment of non-conformity" item.museum_non_conformity_comment %} + {% field_flex "Inventory transcript" item.museum_inventory_transcript %} + {% field_flex "Original/reproduction" item.museum_original_repro %} + {% field_flex "Date of museum allocation" item.museum_allocation_date|date:"SHORT_DATE_FORMAT" %} + {% field_flex "Purchase price" item.museum_purchase_price %} +
+ {% endif %} + + {% if item.length or item.width or item.height or item.diameter or item.thickness or item.volume or item.weight_string or item.dimensions_comment or item.clutter_long_side or item.clutter_short_side or item.clutter_height %} +

{% trans "Dimensions" %}

+
+ {% field_flex "Length (cm)" item.length %} + {% field_flex "Width (cm)" item.width %} + {% field_flex "Height (cm)" item.height %} + {% field_flex "Thickness (cm)" item.thickness %} + {% field_flex "Diameter (cm)" item.diameter %} + {% field_flex "Circumference (cm)" item.circumference %} + {% field_flex "Volume (l)" item.volume %} + {% trans "Weight (g)" as weight_label %} + {% field_flex weight_label item.weight_string %} + {% field_flex "Clutter long side (cm)" item.clutter_long_side %} + {% field_flex "Clutter short side (cm)" item.clutter_short_side %} + {% field_flex "Clutter height (cm)" item.clutter_height %} + {% field_flex_full "Dimensions comment" item.dimensions_comment "
" "
" %} +
+ {% endif %} + + {% with dating_list=item|m2m_listing:"datings" %} + {% if dating_list or item.dating_comment or item.cultural_attributions_count %} +

{% trans "Dating" %}

+ {% if item.cultural_attributions_count %} +
+ {% field_flex_multiple_obj "Cultural attributions" item 'cultural_attributions' %} +
+ {% endif %} + + + + + + + + + + {% for dating in dating_list %} + + + + + + + + + {% endfor %} +
{% trans "Chronological period" %}{% trans "Start date" %}{% trans "End date" %}{% trans "Dating type" %}{% trans "Quality" %}{% trans "Precise on dating" %}
+ {{dating.period}} + + {{dating.start_date|default_if_none:"-"}} + + {{dating.end_date|default_if_none:"-"}} + + {{dating.dating_type|default_if_none:"-"}} + + {{dating.quality|default_if_none:"-"}} + + {{dating.precise_dating|default_if_none:"-"}} +
+
+ {% field_flex_full "Comment on dating" item.dating_comment "
" "
" %} +
+ {% endif %} + {% endwith %} + +

{% trans "Sheet" %}

+
+ {% trans "Checked" as checked_label %} + {% field_flex checked_label item.checked_type %} + {% with item.check_date|date:"SHORT_DATE_FORMAT" as check_date %} + {% if check_date %}{% field_flex "Check date" check_date %}{% endif %} + {% endwith %} + {% include "ishtar/blocks/sheet_creation_section.html" %} +
+ {% if has_image %} +
+ {% endif %} +
+ +
+ + +
+ {% if is_external %} + {% for base_find in item.base_finds_list %} + {% with first=forloop.first %} + {% include "ishtar/sheet_basefind.html" %} + {% endwith %} + {% endfor %} + {% else %} + {% for base_find in item.base_finds.all %} + {% with first=forloop.first %} + {% include "ishtar/sheet_basefind.html" %} + {% endwith %} + {% endfor %} + {% endif %} +
+
+ + {% if display_warehouse_treatments %} +
+ {% comment %} + {% if item.collection %} +
+ {% field_flex_detail "Collection" item.collection "large" %} +
+ {% endif %} + {% endcomment %} + {% if item.integrities_count or item.remarkabilities_count or item.conservatory_state or item.conservatory_comment or item.alterations.count or item.alteration_causes.count or item.preservation_to_considers.count or item.appraisal_date or item.treatment_emergency or item.insurance_value or item.estimated_value %} +

{% trans "Preservation" %}

+
+ {% field_flex_multiple_obj "Integrity / interest" item 'integrities' %} + {% field_flex_multiple_obj "Remarkability" item 'remarkabilities' %} + {% field_flex "Conservatory state" item.conservatory_state %} + {% field_flex_multiple_obj "Alteration" item 'alterations' %} + {% field_flex_multiple_obj "Alteration cause" item 'alteration_causes' %} + {% field_flex_multiple_obj "Recommended treatments" item 'preservation_to_considers' %} + {% field_flex "Treatment emergency" item.treatment_emergency %} + {% field_flex "Estimated value" item.estimated_value|default_if_none:''|intcomma '' ' '|add:CURRENCY %} + {% field_flex "Insurance value" item.insurance_value|default_if_none:''|intcomma '' ' '|add:CURRENCY %} + {% field_flex "Appraisal date" item.appraisal_date %} + {% field_flex_full "Conservatory comment" item.conservatory_comment "
" "
" %} +
+ {% endif %} + {% if item.container or item.container_ref %} + {% if can_view_container %} +

{% trans "Warehouse - container" %}

+
+ {% if item.container_ref != item.container and item.container_ref %} +
+
{% trans "Reference container" %}
+
+ +
+
+ {% endif %} + {% if item.container %} +
+
+ {% if item.container_ref != item.container %} + {% trans "Current container" %}{% else %} + {% trans "Reference container / current container" %} + {% endif %} +
+
+ +
+
+ {% if item.container.index %} +
+
+
{% trans "Index" %}
+
+ {{ item.container.location }} - {{ item.container.index }} +
+
+
+ {% endif %} + {% endif %} +
+ {% endif %} + + + + + + {% endif %} + {% if item.upstream_treatment or item.downstream_treatment or non_modif_treatments_count %} + {% if non_modif_treatments_count %} +

{% trans "Simple treatments"%}

+ + + + + + + + + + + + + + {# {% for treatment in item.treatments.all %} #} + {% for items, treatment in item.non_modif_treatments %} + + + + + + + + + + + + + {% endfor %} +
 {% trans "Year - index" %}{% trans "Label" %}{% trans "Type" %}{% trans "State" %}{% trans "Related finds (max. 15 displayed)" %}{% trans "Doer" %}{% trans "Container" %}{% trans "Start date" %}{% trans "End date" %}
+ + + + {{ treatment.year }} - {{treatment.index}}{{ treatment.label|default_if_none:"-" }}{{ treatment.treatment_types_lbl }}{{ treatment.treatment_state|default_if_none:"-" }}{% for it in items %}{{it}} {{it|link_to_window:request}}{% endfor %}{{ treatment.person|default_if_none:"-" }}{{ treatment.container|default_if_none:"-" }}{{ treatment.start_date|default_if_none:"-" }}{{ treatment.end_date|default_if_none:"-" }}
+ {% endif %} + + {% if item.upstream_treatment %} +

{% trans "Upstream treatment" %}

+ + + + + + + + + + + + + + {% for items, treatment in item.limited_upstream_treatments %} + + + + + + + + + + + + + {% endfor %} +
 {% trans "Year - index" %}{% trans "Label" %}{% trans "Type" %}{% trans "State" %}{% trans "Related finds (max. 15 displayed)" %}{% trans "Doer" %}{% trans "Container" %}{% trans "Start date" %}{% trans "End date" %}
+ + + + {{ treatment.year }} - {{treatment.index}}{{ treatment.label|default_if_none:"-" }}{{ treatment.treatment_types_lbl }}{{ treatment.treatment_state|default_if_none:"-" }}{% for it in items %}{{it}} {{it|link_to_window:request}}{% endfor %}{{ treatment.person|default_if_none:"-" }}{{ treatment.container|default_if_none:"-" }}{{ treatment.start_date|default_if_none:"-" }}{{ treatment.end_date|default_if_none:"-" }}
+

{% trans "CSV" %} ({{ENCODING}})

+ {% endif %} + + {% if item.downstream_treatment %} +

{% trans "Downstream treatment" %}

+ + + + + + + + + + + + + + {% for items, treatment in item.limited_downstream_treatments %} + + + + + + + + + + + + + {% endfor %} +
 {% trans "Year - index" %}{% trans "Label" %}{% trans "Type" %}{% trans "State" %}{% trans "Related finds (max. 15 displayed)" %}{% trans "Doer" %}{% trans "Container" %}{% trans "Start date" %}{% trans "End date" %}
+ + + + {{ treatment.year }} - {{treatment.index}}{{ treatment.label|default_if_none:"-" }}{{ treatment.treatment_types_lbl }}{{ treatment.treatment_state|default_if_none:"-" }}{% for it in items %}{{it}} {{ it|link_to_window:request}}{% endfor %}{{ treatment.person|default_if_none:"" }}{{ treatment.container|default_if_none:"-" }}{{ treatment.start_date|default_if_none:"" }}{{ treatment.end_date|default_if_none:"" }}
+ +

{% trans "CSV" %} ({{ENCODING}})

+ {% endif %} + {% endif %} + {% if item.associated_treatment_files_count %} +

{% trans "Treatment requests" %}

+ + + + + + + + + + + + + {% for treatment_file in item.associated_treatment_files %} + + + + + + + + + + + + {% endfor %} +
 {% trans "Year - index" %}{% trans "Type" %}{% trans "Name" %}{% trans "Person in charge" %}{% trans "Applicant" %}{% trans "Applicant organisation" %}{% trans "Reception date" %}{% trans "End date" %}
+ + + + {{ treatment_file.year }} - {{treatment_file.index}}{{ treatment_file.type }}{{ treatment_file.name|default_if_none:"-" }}{{ treatment_file.in_charge|default_if_none:"" }}{{ treatment_file.applicant|default_if_none:"" }}{{ treatment_file.applicant_organisation|default_if_none:"" }}{{ treatment_file.reception_date|default_if_none:"" }}{{ treatment_file.end_date|default_if_none:"" }}
+ {% endif %} +
+ {% endif %} + {% if display_documents %} +
+ {% trans "Associated documents" as finds_docs %} + {% if item.documents.count %} + {% dynamic_table_document finds_docs 'documents' 'finds' item.pk '' output %} + {% elif item.documents_list %} +

{{finds_docs}}

+ {% include "ishtar/blocks/api_document_list.html" %} + {% endif %} +
+ {% endif %} + + {% if not is_external and SHOW_GEO %} +
+

{% trans "Geographic data" %}

+ + {% with find_id=item.pk %} + {% for base_find in item.base_finds.all %} + {% with geo_item=base_find %} +

{% if base_find.complete_identifier %}{{ base_find.complete_identifier }}{% else %}{{base_find.short_id}}{% endif %}

+ {% with current_geolabel=base_find %} + {% include "ishtar/blocks/sheet_geographic.html" %} + {% endwith %} {% endwith %} + {% endfor %} + {% endwith %} + +
+ {% endif %} + + {% if item.data and item.data|length > 0 %} +
+ {% include "ishtar/blocks/sheet_json.html" %} +
+ {% endif %} +
+ +{% endwith %} {% endwith %} {% endwith %} {% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %} + + + +{% endblock %} + diff --git a/archaeological_finds/templates/ishtar/sheet_museum_find_pdf.html b/archaeological_finds/templates/ishtar/sheet_museum_find_pdf.html new file mode 100644 index 000000000..b7deed171 --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_museum_find_pdf.html @@ -0,0 +1,14 @@ +{% extends "ishtar/sheet_museum_find.html" %} +{% block header %} +{% endblock %} +{% block main_head %} +{{ block.super }} +
+Ishtar – {{APP_NAME}} – {{item}} +
+{% endblock %} +{%block head_sheet%}{%endblock%} +{%block main_foot%} + + +{%endblock%} diff --git a/archaeological_finds/templates/ishtar/sheet_museum_find_window.html b/archaeological_finds/templates/ishtar/sheet_museum_find_window.html new file mode 100644 index 000000000..62587cefc --- /dev/null +++ b/archaeological_finds/templates/ishtar/sheet_museum_find_window.html @@ -0,0 +1,3 @@ +{% extends "ishtar/sheet_museum_find.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} -- cgit v1.2.3