diff options
-rw-r--r-- | archaeological_files/models.py | 11 | ||||
-rw-r--r-- | archaeological_files/urls.py | 5 | ||||
-rw-r--r-- | archaeological_files/views.py | 44 | ||||
-rw-r--r-- | archaeological_operations/models.py | 2 | ||||
-rw-r--r-- | archaeological_operations/views.py | 9 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/forms/modify_parcels.html (renamed from archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html) | 0 |
6 files changed, 61 insertions, 10 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py index cdc996d95..f737472a1 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -1221,6 +1221,17 @@ class File( def get_extra_actions(self, request): # url, base_text, icon, extra_text, extra css class, is a quick action actions = super(File, self).get_extra_actions(request) + if self.can_do(request, "change_operation"): + actions += [ + ( + reverse("file-parcels-modify", args=[self.pk]), + _("Modify parcels"), + "fa fa-pencil", + _("parcels"), + "", + True, + ), + ] if self.can_do(request, "add_administrativeact"): actions += [ ( diff --git a/archaeological_files/urls.py b/archaeological_files/urls.py index a8e0fa5a5..084f2155f 100644 --- a/archaeological_files/urls.py +++ b/archaeological_files/urls.py @@ -146,6 +146,11 @@ urlpatterns = [ name="file-edit-preventive-price", ), url( + r"^file-parcels-modify/(?P<pk>.+)/$", + views.file_modify_parcels, + name="file-parcels-modify", + ), + url( r'^file/edit-preventive/(?P<pk>\d+)/$', check_rights(["change_file", "change_own_file"])( views.PreventiveEditView.as_view() diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 95aa0c9c1..58454092f 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -52,11 +52,11 @@ from archaeological_operations.wizards import OperationWizard from archaeological_operations.views import operation_creation_wizard from ishtar_common.forms_common import TownFormset -from archaeological_operations.forms import FinalAdministrativeActDeleteForm +from archaeological_operations.forms import FinalAdministrativeActDeleteForm, SelectedParcelGeneralFormSet from ishtar_common.forms import ClosingDateFormSelection from . import forms, models -from archaeological_operations.models import Operation, AdministrativeAct +from archaeological_operations.models import Operation, AdministrativeAct, Parcel RE_YEAR_INDEX = re.compile(r"([1-2][0-9]{3})-([0-9]+)") # eg.: 2014-123 @@ -343,6 +343,46 @@ def file_add_operation(request, pk, current_right=None): ) +PARCEL_FORMSET_EXTRA_FORM = 3 + +def file_modify_parcels(request, pk): + formset_class = SelectedParcelGeneralFormSet + file = models.File.objects.get(pk=pk) + parcels = Parcel.objects.filter(associated_file=pk).all() + available_towns = [] + + initial = [] + for parcel in parcels: + town = models.Town.objects.get(pk=parcel.town_id) + available_towns.append((town.pk, str(town))) + initial.append({ + "pk": parcel.pk, + "town": town.pk, + "year": parcel.year, + "section": parcel.section, + "parcel_number": parcel.parcel_number, + "public_domain": parcel.public_domain + }) + + data = { + 'TOWNS': available_towns, + 'form-TOTAL_FORMS': len(initial) + PARCEL_FORMSET_EXTRA_FORM, + 'form-INITIAL_FORMS': 0, + 'form-MIN_NUM_FORMS': 0, + 'form-MAX_NUM_FORMS': 100, + } + + if request.method == 'POST': + pass + else: + formset = formset_class(initial=initial, data=data) + + return render(request, 'ishtar/forms/modify_parcels.html', { + 'formset': formset, + "url": reverse("file-parcels-modify", args=[pk]), + }) + + def reset_wizards(request): for wizard_class, url_name in ( (FileWizard, "file_creation"), diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 5c637aacf..9d0018f28 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -1694,7 +1694,7 @@ class Operation( reverse("operation-parcels-modify", args=[self.pk]), _("Modify Parcels"), "fa fa-pencil", - _("Parcels"), + _("parcels"), "", True, ), diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 0cd1cd8cf..d0d33194f 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -489,15 +489,10 @@ def operation_modify_parcels(request, pk): ) operation.parcels.add(parcel_to_add) return redirect(reverse("operation-parcels-modify", args=[pk])) - else: - print(formset.errors) - print(formset.non_form_errors()) else: formset = formset_class(initial=initial, data=data) -# - # for form in formset: - # print(form.as_table()) - return render(request, 'ishtar/forms/operation_modify_parcels.html', { + + return render(request, 'ishtar/forms/modify_parcels.html', { 'formset': formset, "url": reverse("operation-parcels-modify", args=[pk]) }) diff --git a/archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html b/ishtar_common/templates/ishtar/forms/modify_parcels.html index b9882c12c..b9882c12c 100644 --- a/archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html +++ b/ishtar_common/templates/ishtar/forms/modify_parcels.html |