summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-09-27 14:17:51 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-09-27 14:22:43 +0200
commit96bb8750fc418e19945c989514ef41093d192e3f (patch)
treeec90214441c1e109d032cbbf8cead98c7c40abd0
parenta4cef6296c811f0ecf894611a2e66551059a9f15 (diff)
downloadIshtar-96bb8750fc418e19945c989514ef41093d192e3f.tar.bz2
Ishtar-96bb8750fc418e19945c989514ef41093d192e3f.zip
✨ Archaeological files - add operation name field: database, forms, search, sheet (refs #5795)
-rw-r--r--archaeological_files/forms.py5
-rw-r--r--archaeological_files/migrations/0118_operation_name.py43
-rw-r--r--archaeological_files/models.py4
-rw-r--r--archaeological_files/templates/ishtar/sheet_file.html1
-rw-r--r--archaeological_operations/wizards.py4
5 files changed, 56 insertions, 1 deletions
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py
index 82383a71d..587cb2237 100644
--- a/archaeological_files/forms.py
+++ b/archaeological_files/forms.py
@@ -98,6 +98,7 @@ class FileSelect(DocumentItemSelect):
label=_("Department"), choices=[]
)
name = forms.CharField(label=_("File name"), max_length=200)
+ operation_name = forms.CharField(label=_("Operation name"), max_length=200)
file_type = forms.ChoiceField(label=_("File type"), choices=[])
end_date = forms.NullBooleanField(label=_("Is active?"))
development_type = forms.ChoiceField(label=_("Development type"), choices=[])
@@ -288,6 +289,8 @@ class FileFormPlanning(CustomForm, ManageOldType):
HEADERS = {}
HEADERS["town"] = FormHeader(_("Geographic localisation"))
name = forms.CharField(label=_("Planning name"), required=False, max_length=1000)
+ operation_name = forms.CharField(label=_("Operation name"), required=False, max_length=1000,
+ help_text=_("This name is used on creation for the associated operation"))
development_type = forms.ChoiceField(label=_("Development type"), choices=[], required=False)
town = widgets.Select2MultipleField(
@@ -337,6 +340,8 @@ class FileFormResearchAddress(CustomForm, forms.Form):
base_models = ["town", "department"]
associated_models = {"town": Town, "department": Department}
name = forms.CharField(label=_("Project name"), required=False, max_length=100)
+ operation_name = forms.CharField(label=_("Operation name"), required=False, max_length=1000,
+ help_text=_("This name is used on creation for the associated operation"))
town = widgets.Select2MultipleField(
model=Town, label=_("Towns"), required=False, remote=True
)
diff --git a/archaeological_files/migrations/0118_operation_name.py b/archaeological_files/migrations/0118_operation_name.py
new file mode 100644
index 000000000..dfbd76e99
--- /dev/null
+++ b/archaeological_files/migrations/0118_operation_name.py
@@ -0,0 +1,43 @@
+# Generated by Django 2.2.24 on 2024-09-27 13:51
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_files', '0117_data_developmenttype_monitoring_justif'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='file',
+ name='operation_name',
+ field=models.TextField(blank=True, default='', verbose_name='Operation name'),
+ ),
+ migrations.AddField(
+ model_name='historicalfile',
+ name='operation_name',
+ field=models.TextField(blank=True, default='', verbose_name='Operation name'),
+ ),
+ migrations.AlterField(
+ model_name='file',
+ name='total_developed_surface',
+ field=models.FloatField(blank=True, null=True, verbose_name='Total developed surface (m²)'),
+ ),
+ migrations.AlterField(
+ model_name='file',
+ name='total_surface',
+ field=models.FloatField(blank=True, null=True, verbose_name='Total surface (m²)'),
+ ),
+ migrations.AlterField(
+ model_name='historicalfile',
+ name='total_developed_surface',
+ field=models.FloatField(blank=True, null=True, verbose_name='Total developed surface (m²)'),
+ ),
+ migrations.AlterField(
+ model_name='historicalfile',
+ name='total_surface',
+ field=models.FloatField(blank=True, null=True, verbose_name='Total surface (m²)'),
+ ),
+ ]
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index b6f1ee37c..c0b668514 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -532,6 +532,9 @@ class File(
"name": SearchAltName(
pgettext_lazy("key for text search", "name"), "name__iexact"
),
+ "operation_name": SearchAltName(
+ pgettext_lazy("key for text search", "operation-name"), "operation_name__iexact"
+ ),
"file_type": SearchAltName(
pgettext_lazy("key for text search", "type"), "file_type__label__iexact"
),
@@ -604,6 +607,7 @@ class File(
_("External ID is set automatically"), default=False
)
name = models.TextField(_("Name"), blank=True, default="")
+ operation_name = models.TextField(_("Operation name"), blank=True, default="")
file_type = models.ForeignKey(FileType, verbose_name=_("File type"), on_delete=models.PROTECT)
in_charge = models.ForeignKey(
Person,
diff --git a/archaeological_files/templates/ishtar/sheet_file.html b/archaeological_files/templates/ishtar/sheet_file.html
index b2b526453..a5e9d4013 100644
--- a/archaeological_files/templates/ishtar/sheet_file.html
+++ b/archaeological_files/templates/ishtar/sheet_file.html
@@ -60,6 +60,7 @@
<h3>{% trans "General"%}</h3>
<div class="row">
+ {% field_flex _("Operation name") item.operation_name %}
{% field_flex _("Creation date") item.creation_date|date:"DATE_FORMAT" %}
{% field_flex "Reception date" item.reception_date|date:"DATE_FORMAT" %}
{% field_flex _("Instruction deadline") item.instruction_deadline|date:"DATE_FORMAT" %}
diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py
index 581652c8f..e70eea676 100644
--- a/archaeological_operations/wizards.py
+++ b/archaeological_operations/wizards.py
@@ -172,10 +172,12 @@ class OperationWizard(Wizard):
return initial
keys = (
(("in_charge", "pk"), "in_charge"),
- (("name",), "common_name"),
+ (("operation_name",), "common_name"),
(("total_surface",), "surface"),
)
initial.update(self.__copy_fields(file, keys))
+ if not initial.get("common_name", None):
+ initial["common_name"] = file.name or ""
if "town" not in initial:
initial["town"] = [idx for idx, __ in self.get_towns()]
if file.is_preventive():