summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-07-17 16:11:42 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:23:17 +0100
commitaaeb9f0796321267d9ae09f4bb351f9116246890 (patch)
tree1fe1db4531f7f51a20bbe5a5fa4cfd49235c2974
parentbb2e5296e89ba924cc1e5e361e7dd53067676bbf (diff)
downloadIshtar-aaeb9f0796321267d9ae09f4bb351f9116246890.tar.bz2
Ishtar-aaeb9f0796321267d9ae09f4bb351f9116246890.zip
Account deletion: fix summary
-rw-r--r--CHANGES.md3
-rw-r--r--ishtar_common/forms_common.py16
-rw-r--r--ishtar_common/models.py4
-rw-r--r--ishtar_common/version.py4
-rw-r--r--ishtar_common/views.py2
-rw-r--r--ishtar_common/wizards.py12
6 files changed, 36 insertions, 5 deletions
diff --git a/CHANGES.md b/CHANGES.md
index 5f17fcd8f..3d7f1103a 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -6,12 +6,13 @@ date: 2022-11-04
Ishtar changelog
================
-v4.0.5 - 2022-
+v4.0.5 - 2022-07-17
--------------------
### Bug fix ###
- Geo - sheet: fix coordinates display
+- Account deletion: fix summary
v4.0.4 - 2022-07-17
--------------------
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 856381d05..e6afc4504 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -980,6 +980,7 @@ class IshtarUserSelect(TableSelect):
)
def __init__(self, *args, **kwargs):
+ self.user = kwargs.pop("user") if "user" in kwargs else None
super(IshtarUserSelect, self).__init__(*args, **kwargs)
self.fields["person_types"].choices = models.PersonType.get_types()
@@ -998,6 +999,21 @@ class AccountFormSelection(forms.Form):
)
+class AccountFormMultiSelection(MultiSearchForm):
+ form_label = _("Account search")
+ associated_models = {"pks": models.IshtarUser}
+ pk_key = "pks"
+
+ pk = forms.CharField(
+ label="",
+ required=False,
+ widget=widgets.DataTable(
+ reverse_lazy("get-ishtaruser"), IshtarUserSelect, models.IshtarUser
+ ),
+ validators=[models.valid_id(models.IshtarUser)],
+ )
+
+
class BasePersonForm(forms.ModelForm):
class Meta:
model = models.Person
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 870cce90b..81fc4c069 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -3318,6 +3318,10 @@ class IshtarUser(FullSearch):
def __str__(self):
return str(self.person)
+ @classmethod
+ def class_verbose_name(cls):
+ return cls._meta.verbose_name
+
def show_field_number(self, update=False):
cache_key, value = get_cache(self.__class__, ["show_field_number"])
if not update and value is not None:
diff --git a/ishtar_common/version.py b/ishtar_common/version.py
index 496f16954..7b6d2660d 100644
--- a/ishtar_common/version.py
+++ b/ishtar_common/version.py
@@ -1,5 +1,5 @@
-# 4.0.4
-VERSION = (4, 0, 4)
+# 4.0.5
+VERSION = (4, 0, 5)
def get_version():
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index d019da8ba..c706a4b45 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -310,7 +310,7 @@ account_management_wizard = wizards.AccountWizard.as_view(
account_deletion_wizard = wizards.IshtarUserDeletionWizard.as_view(
[
- ("selec-account_deletion", forms.AccountFormSelection),
+ ("selec-account_deletion", forms.AccountFormMultiSelection),
("final-account_deletion", FinalDeleteForm),
],
label=_("Account deletion"),
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index 5f3606a5e..ba3eb4556 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -1914,9 +1914,19 @@ class PersonDeletionWizard(MultipleDeletionWizard):
}
-class IshtarUserDeletionWizard(DeletionWizard):
+class IshtarUserDeletionWizard(MultipleDeletionWizard):
model = models.IshtarUser
fields = model.TABLE_COLS
+ redirect_url = "account_deletion"
+
+ def get_formated_datas(self, forms):
+ datas = super(IshtarUserDeletionWizard, self).get_formated_datas(forms)
+ print(self.current_objs, datas)
+ for idx, values in enumerate(datas):
+ obj = self.current_objs[idx]
+ datas[idx][1].append((_("Username"), obj.user_ptr.username))
+ datas[idx][1].append((_("Email"), obj.user_ptr.email or "-"))
+ return datas
class OrganizationWizard(Wizard):