summaryrefslogtreecommitdiff
path: root/ishtar_common
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
commitc73c38ab243b3a54a36b284376d9fb986bce02d7 (patch)
tree1fe1db4531f7f51a20bbe5a5fa4cfd49235c2974 /ishtar_common
parent9a33671a0c5f788f85d23c34f880d0994789e675 (diff)
downloadIshtar-c73c38ab243b3a54a36b284376d9fb986bce02d7.tar.bz2
Ishtar-c73c38ab243b3a54a36b284376d9fb986bce02d7.zip
Account deletion: fix summary
Diffstat (limited to 'ishtar_common')
-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
5 files changed, 34 insertions, 4 deletions
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):