summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-07-15 16:18:14 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-07-15 16:18:14 +0200
commit14075c7c744bb80da7f25c28f8c4f1322f30a69e (patch)
tree2974d8cf142a96e5b620b306f24f9698b120959c /ishtar_common
parent1bcb570b463370ad1375c395f0f23b204a2dba0e (diff)
downloadIshtar-14075c7c744bb80da7f25c28f8c4f1322f30a69e.tar.bz2
Ishtar-14075c7c744bb80da7f25c28f8c4f1322f30a69e.zip
✨ Find: add the ability to configure a "+ find without context" button
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/admin.py2
-rw-r--r--ishtar_common/migrations/0248_ishtarsiteprofile_no_context_button.py20
-rw-r--r--ishtar_common/models.py8
-rw-r--r--ishtar_common/templates/gis/openlayers-osm.html7
-rw-r--r--ishtar_common/templates/ishtar/wizard/default_wizard.html9
-rw-r--r--ishtar_common/wizards.py2
6 files changed, 45 insertions, 3 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index ae0f9eb3f..44ca43ec2 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -523,6 +523,7 @@ class IshtarSiteProfileAdmin(admin.ModelAdmin):
)
model = models.IshtarSiteProfile
form = AdminIshtarSiteProfileForm
+ autocomplete_fields = ["no_context_button"]
fieldsets = (
(None, {
"fields": (
@@ -583,6 +584,7 @@ class IshtarSiteProfileAdmin(admin.ModelAdmin):
"use_town_for_geo",
"relation_graph",
"parcel_mandatory",
+ "no_context_button",
),
}),
(_("Index"), {
diff --git a/ishtar_common/migrations/0248_ishtarsiteprofile_no_context_button.py b/ishtar_common/migrations/0248_ishtarsiteprofile_no_context_button.py
new file mode 100644
index 000000000..4bb7a1883
--- /dev/null
+++ b/ishtar_common/migrations/0248_ishtarsiteprofile_no_context_button.py
@@ -0,0 +1,20 @@
+# Generated by Django 2.2.24 on 2024-07-15 10:50
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_context_records', '0117_identification_m2m'),
+ ('ishtar_common', '0247_document_cached_authors'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='ishtarsiteprofile',
+ name='no_context_button',
+ field=models.ForeignKey(blank=True, help_text='If provided a button is displayed on find search pages to create a "No context" find', null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_context_records.ContextRecord', verbose_name='Default context record for no context button'),
+ ),
+ ]
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 9eeea5d66..1f8eab6a8 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1181,6 +1181,14 @@ class IshtarSiteProfile(models.Model, Cached):
_("Preventive operator module"), default=False
)
underwater = models.BooleanField(_("Underwater module"), default=False)
+ no_context_button = models.ForeignKey(
+ "archaeological_context_records.ContextRecord",
+ verbose_name=_("Context record for no context button"),
+ help_text=_('If provided a button is displayed on find search pages to create a "No context" find'),
+ on_delete=models.SET_NULL,
+ null=True,
+ blank=True
+ )
parcel_mandatory = models.BooleanField(
_("Parcel are mandatory for context records"), default=True
)
diff --git a/ishtar_common/templates/gis/openlayers-osm.html b/ishtar_common/templates/gis/openlayers-osm.html
index 4ed773a33..59969210a 100644
--- a/ishtar_common/templates/gis/openlayers-osm.html
+++ b/ishtar_common/templates/gis/openlayers-osm.html
@@ -35,8 +35,11 @@
groupSelectStyle: 'children'
});
{{ module }}.map.addControl(layer_switcher);
- $(".ol-viewport").parent().width($(".form").width());
- $(document).ready(function() {
+ {% comment %}$(".ol-viewport").parent().width($(".form").width());{% endcomment %}
+ let ol_viewport = document.querySelector(".ol-viewport");
+ if (ol_viewport.parent) ol_viewport.parent().width(document.querySelector(".form").width());
+ {% comment %}$(document).ready(function() { {% endcomment %}
+ document.addEventListener("DOMContentLoaded", function() {
{{ module }}.map.updateSize();
let features = {{ module }}.featureOverlay.getSource().getFeatures();
if (features.length){
diff --git a/ishtar_common/templates/ishtar/wizard/default_wizard.html b/ishtar_common/templates/ishtar/wizard/default_wizard.html
index c4a304111..0d3863af9 100644
--- a/ishtar_common/templates/ishtar/wizard/default_wizard.html
+++ b/ishtar_common/templates/ishtar/wizard/default_wizard.html
@@ -6,6 +6,15 @@
{% block content %}
{% block wizard_head %}
<h3>{{wizard_label}}</h3>
+{% if no_context_cr %}
+<div class="row mb-3">
+ <div class="col">
+ <a href="/find_create/{{no_context_cr|unlocalize}}/" class="btn btn-success">
+ <i class="fa fa-plus" aria-hidden="true"></i> {% trans "find without context" %}
+ </a>
+ </div>
+</div>
+{% endif %}
{% include "ishtar/blocks/wizard_breadcrumb.html" %}
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index dee3c9a1f..43e84fbcb 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -1689,7 +1689,7 @@ class SearchWizard(IshtarWizard):
return self.label
def get_context_data(self, form, **kwargs):
- context = super(SearchWizard, self).get_context_data(form)
+ context = super().get_context_data(form)
self.request.session["CURRENT_ACTION"] = self.get_wizard_name()
current_step = self.steps.current
bookmark = self.request.GET.get("bookmark", None)