diff options
| author | Cefin <kevon@tuta.io> | 2021-11-22 11:50:47 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:58:49 +0200 | 
| commit | 5bcb673673f4909edab72baaf3457772f3a62abe (patch) | |
| tree | 10be31612f5624e0ce781dc7543e3704661ef9d6 | |
| parent | 76f33567b2f49f993b28eb4f8881219b46f4d5c8 (diff) | |
| download | Ishtar-5bcb673673f4909edab72baaf3457772f3a62abe.tar.bz2 Ishtar-5bcb673673f4909edab72baaf3457772f3a62abe.zip | |
rapid action on person create new user #5216
| -rw-r--r-- | ishtar_common/models.py | 19 | ||||
| -rw-r--r-- | ishtar_common/urls.py | 1 | ||||
| -rw-r--r-- | ishtar_common/views.py | 11 | 
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), | 
