diff --git a/aleksis/core/forms.py b/aleksis/core/forms.py index 13d6011de02793649bd8e83250871eaf6e4b31ec..5bcb8233968f1468aa0962100415ae484f23bd1b 100644 --- a/aleksis/core/forms.py +++ b/aleksis/core/forms.py @@ -3,6 +3,7 @@ from typing import Any, Callable, Dict, Sequence from django import forms from django.conf import settings +from django.contrib.auth import get_user_model from django.contrib.auth.models import Permission from django.contrib.sites.models import Site from django.core.exceptions import ValidationError @@ -11,7 +12,6 @@ from django.http import HttpRequest from django.utils.translation import gettext_lazy as _ from allauth.account.forms import SignupForm -from allauth.account.utils import get_user_model from dj_cleavejs import CleaveWidget from django_select2.forms import ModelSelect2MultipleWidget, ModelSelect2Widget, Select2Widget from dynamic_preferences.forms import PreferenceForm diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py index 0354e90073741904c7f2529200b75de46736dc8c..4994369797a56bf8e58f641b737d1afa928d0347 100644 --- a/aleksis/core/urls.py +++ b/aleksis/core/urls.py @@ -62,6 +62,7 @@ urlpatterns = [ path("person/<int:id_>/", views.person, name="person_by_id"), path("person/<int:pk>/edit/", views.EditPersonView.as_view(), name="edit_person_by_id"), path("person/<int:id_>/delete/", views.delete_person, name="delete_person_by_id"), + path("person/<int:id_>/invite/", views.invite_person, name="invite_person_by_id"), path("groups", views.groups, name="groups"), path("groups/additional_fields", views.additional_fields, name="additional_fields"), path("groups/child_groups/", views.groups_child_groups, name="groups_child_groups"), diff --git a/aleksis/core/views.py b/aleksis/core/views.py index dee66344d3b98b14541b2793741a3c6caaf8b5bd..bba9558c4d98e3bbbdb140171f9172a123777f48 100644 --- a/aleksis/core/views.py +++ b/aleksis/core/views.py @@ -1404,3 +1404,16 @@ class AccountRegisterView(SignupView): kwargs = super(AccountRegisterView, self).get_form_kwargs() kwargs["request"] = self.request return kwargs + + +def invite_person_by_id(request: HttpRequest, id_: int) -> HttpResponse: + context = {} + + person = Person.objects.get(id=id_) + + invite = PersonInvitation.objects.create( + inviter=request.user, + person=person, + email=person.email, + ) + invite.send_invitation()