summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorCefin <kevon@tuta.io>2021-11-22 11:50:47 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-07-08 09:58:49 +0200
commit5bcb673673f4909edab72baaf3457772f3a62abe (patch)
tree10be31612f5624e0ce781dc7543e3704661ef9d6 /ishtar_common
parent76f33567b2f49f993b28eb4f8881219b46f4d5c8 (diff)
downloadIshtar-5bcb673673f4909edab72baaf3457772f3a62abe.tar.bz2
Ishtar-5bcb673673f4909edab72baaf3457772f3a62abe.zip
rapid action on person create new user #5216
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py19
-rw-r--r--ishtar_common/urls.py1
-rw-r--r--ishtar_common/views.py11
3 files changed, 31 insertions, 0 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 6bfffd0cf..cb0da7ba7 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -2910,6 +2910,25 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem):
for fle in self.general_contractor.all():
fle.save() # force update of raw_general_contractor
+ def get_extra_actions(self, request):
+ actions = super(Person, self).get_extra_actions(request)
+
+ can_create_person = self.can_do(request, "change_person")
+ if not can_create_person:
+ return actions
+ actions += [
+ (
+ reverse("person_create", args=[self.pk]),
+ _("Create new user"),
+ "fa fa-user",
+ "",
+ "",
+ False,
+ ),
+ ]
+ return actions
+
+
@classmethod
def get_query_owns(cls, ishtaruser):
return (
diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py
index 9e120a945..7bbdc189f 100644
--- a/ishtar_common/urls.py
+++ b/ishtar_common/urls.py
@@ -82,6 +82,7 @@ urlpatterns = [
name="person_modification",
),
url(r"person_modify/(?P<pk>.+)/$", views.person_modify, name="person_modify"),
+ url(r"person_create/(?P<pk>.+)/$", views.person_create, name="person_create"),
url(
r"person_deletion/(?P<step>.+)?$",
check_rights(["change_person", "change_own_person"])(
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 2cf09e66f..1363684a7 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -210,6 +210,17 @@ def person_modify(request, pk):
)
+def person_create(request, pk):
+ if not wizard_is_available(person_creation_wizard, request, models.Person, pk):
+ return HttpResponseRedirect("/")
+ wizards.PersonWizard.session_set_value(
+ request, "selec-person_creation", "pk", pk, reset=True
+ )
+ return redirect(
+ reverse("person_creation", kwargs={"step": "identity-person_creation"})
+ )
+
+
person_deletion_wizard = wizards.PersonDeletionWizard.as_view(
[
("selec-person_deletion", forms.PersonFormMultiSelection),