diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-11-13 16:00:45 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-11-13 16:00:45 +0100 |
commit | d1df41560068baff1efabc5798fc82923ffc8267 (patch) | |
tree | c542887000a415fe5d380dcffb5a33676ec0ce4a | |
parent | cdf85f5c13b57988fd1734529413790b7463ad5b (diff) | |
download | Ishtar-d1df41560068baff1efabc5798fc82923ffc8267.tar.bz2 Ishtar-d1df41560068baff1efabc5798fc82923ffc8267.zip |
Archaeological files: on creation, final step display potential similar files (check based on parcels and towns)
-rw-r--r-- | archaeological_files/models.py | 15 | ||||
-rw-r--r-- | archaeological_files_pdl/templates/ishtar/wizard/file_confirm_wizard.html | 17 | ||||
-rw-r--r-- | archaeological_files_pdl/wizards.py | 20 | ||||
-rw-r--r-- | ishtar_common/static/media/style.css | 1 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/wizard/confirm_wizard.html | 1 |
5 files changed, 54 insertions, 0 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 1d8822a3b..155c61a5e 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -282,6 +282,21 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, if getattr(self.corporation_general_contractor, key)]) return address + @classmethod + def similar_files(cls, parcels): + # get similar parcels + similar = set() + for parcel in parcels: + q = cls.objects.filter( + parcels__town__pk=parcel['town'], + parcels__section=parcel['section'], + parcels__parcel_number=parcel['parcel_number'] + ) + if q.count(): + for fle in q.all(): + similar.add(fle) + return similar + def update_has_admin_act(self, cache_key=None): if not cache_key: cache_key, val = get_cache(self.__class__, [self.pk, diff --git a/archaeological_files_pdl/templates/ishtar/wizard/file_confirm_wizard.html b/archaeological_files_pdl/templates/ishtar/wizard/file_confirm_wizard.html new file mode 100644 index 000000000..45298c896 --- /dev/null +++ b/archaeological_files_pdl/templates/ishtar/wizard/file_confirm_wizard.html @@ -0,0 +1,17 @@ +{% extends "ishtar/wizard/confirm_wizard.html" %} +{% load url from future %} +{% load i18n %} + +{% block "warning_informations" %} +{% for file in similar_files %} +{% if forloop.first %} +<p class='alert'><label>{% trans "These(s) file(s) are in the same town and have parcel(s) in common." %}</label></p> +<ul> +{% endif%} + <li>{{file}} <a href='#' onclick='load_window("{% url 'show-file' file.pk '' %}", "{{model_name}}");' class='display_details'>{% trans "Details" %}</a></li> +{% if forloop.last %} +</ul> +<hr/> +{% endif %} +{% endfor %} +{% endblock %} diff --git a/archaeological_files_pdl/wizards.py b/archaeological_files_pdl/wizards.py index 1d8351176..61294e538 100644 --- a/archaeological_files_pdl/wizards.py +++ b/archaeological_files_pdl/wizards.py @@ -37,6 +37,7 @@ class FileWizard(BaseFileWizard): 'preventiveplanning-%(url_name)s': 'ishtar/wizard/wizard_preventiveplanning.html', } + wizard_confirm = 'ishtar/wizard/file_confirm_wizard.html' def get_current_year(self): general_form_key = 'general-' + self.url_name @@ -68,6 +69,7 @@ class FileWizard(BaseFileWizard): context = super(FileWizard, self).get_context_data(form) formplanning = "planningservice-" + self.url_name forminstruction = "instruction-" + self.url_name + formfinal = "final-" + self.url_name if self.steps.current == formplanning: try: idx = int( @@ -83,6 +85,24 @@ class FileWizard(BaseFileWizard): if saisine_type: context['saisine_type'] = unicode(saisine_type) context['saisine_type_delay'] = saisine_type.delay or 0 + elif self.steps.current == formfinal and \ + self.steps.current.endswith('creation'): # creation only + parcels = [] + parcel_step_key = self.parcel_step_key + self.url_name + + parcel_numbers = self.session_get_value( + parcel_step_key, 'parcel_number', multi=True) or [] + sections = self.session_get_value( + parcel_step_key, 'section', multi=True) or [] + towns = self.session_get_value( + parcel_step_key, 'town', multi=True) or [] + for idx, parcel_number in enumerate(parcel_numbers): + if not parcel_number: + continue + parcels.append({'town': towns[idx], + 'section': sections[idx], + 'parcel_number': parcel_number}) + context['similar_files'] = models.File.similar_files(parcels) return context diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css index e82865e05..42d953833 100644 --- a/ishtar_common/static/media/style.css +++ b/ishtar_common/static/media/style.css @@ -273,6 +273,7 @@ a.button{ background-image:url(images/info.png); background-repeat:no-repeat; text-decoration:none; + vertical-align: bottom; } .display_details_inline{ diff --git a/ishtar_common/templates/ishtar/wizard/confirm_wizard.html b/ishtar_common/templates/ishtar/wizard/confirm_wizard.html index 15bb9e9bd..9007c867c 100644 --- a/ishtar_common/templates/ishtar/wizard/confirm_wizard.html +++ b/ishtar_common/templates/ishtar/wizard/confirm_wizard.html @@ -13,6 +13,7 @@ </form> <form action="." method="post">{% csrf_token %} <div class='form'> + {% block "warning_informations" %}{% endblock %} <p>{%if confirm_msg %}{{confirm_msg|safe}}{%else%}{% trans "You have entered the following informations:" %}{%endif%}</p> {% for form_label, form_data in datas %} <table class='confirm'> |