summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCefin <kevon@tuta.io>2022-02-11 13:22:04 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:21:00 +0100
commitaa1a1960bb0ae2d83545aa8462c9467f54e7e48a (patch)
tree307cd55f5f62696ba3b0e333ad8e22d39b948df2
parent3f109fef94090b8c0bd9ec5e4a04a02d9752bd1b (diff)
downloadIshtar-aa1a1960bb0ae2d83545aa8462c9467f54e7e48a.tar.bz2
Ishtar-aa1a1960bb0ae2d83545aa8462c9467f54e7e48a.zip
File - Parcels - Modify: add get method for modifying parcels #5227
-rw-r--r--archaeological_files/models.py11
-rw-r--r--archaeological_files/urls.py5
-rw-r--r--archaeological_files/views.py44
-rw-r--r--archaeological_operations/models.py2
-rw-r--r--archaeological_operations/views.py9
-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