Skip to content

Wagtail hooks

hypha.apply.users.wagtail_hooks

notify_after_create_user

notify_after_create_user(request, user)
Source code in hypha/apply/users/wagtail_hooks.py
@hooks.register("after_create_user")
def notify_after_create_user(request, user):
    messenger(
        MESSAGES.STAFF_ACCOUNT_CREATED,
        request=request,
        user=request.user,
        source=user,
    )

    site = Site.find_for_request(request)
    send_activation_email(user, site)

notify_after_edit_user

notify_after_edit_user(request, user)
Source code in hypha/apply/users/wagtail_hooks.py
@hooks.register("after_edit_user")
def notify_after_edit_user(request, user):
    roles = list(user.groups.values_list("name", flat=True))
    if user.is_superuser:
        roles.append(SUPERADMIN)
    if roles:
        roles = ", ".join(roles)
        messenger(
            MESSAGES.STAFF_ACCOUNT_EDITED,
            request=request,
            user=request.user,
            source=user,
            roles=roles,
        )

anonymize_delete_user_submissions

anonymize_delete_user_submissions(request, user)
Source code in hypha/apply/users/wagtail_hooks.py
@hooks.register("before_delete_user")
def anonymize_delete_user_submissions(request, user):
    if (
        settings.SUBMISSION_ANONYMIZATION_ENABLED
        and request.method == "POST"
        and request.POST.get("handle_submissions") == "anonymize"
    ):
        AnonymizedSubmission = apps.get_model("funds", "AnonymizedSubmission")

        submissions_to_anonymize = list(
            user.applicationsubmission_set.exclude_draft().values(
                "form_data",
                "form_fields",
                "page_id",
                "round_id",
                "status",
                "submit_time",
                "screening_statuses",
            )
        )

        for submission_dict in submissions_to_anonymize:
            AnonymizedSubmission.from_dict(submission_dict)

bulk_anonymize_delete_user_submissions

bulk_anonymize_delete_user_submissions(request, action_type, objects, action_class_instance)
Source code in hypha/apply/users/wagtail_hooks.py
@hooks.register("before_bulk_action")
def bulk_anonymize_delete_user_submissions(
    request, action_type, objects, action_class_instance
):
    # Handling for bulk deletion of users when anonymization is selected
    if (
        settings.SUBMISSION_ANONYMIZATION_ENABLED
        and action_type == "delete"
        and request.method == "POST"
        and request.POST.get("handle_submissions") == "anonymize"
        and all(isinstance(x, User) for x in objects)
    ):
        ApplicationSubmission = apps.get_model("funds", "ApplicationSubmission")

        AnonymizedSubmission = apps.get_model("funds", "AnonymizedSubmission")

        submissions_to_anonymize = list(
            ApplicationSubmission.objects.filter(user__in=objects)
            .exclude_draft()
            .values(
                "form_data",
                "form_fields",
                "page_id",
                "round_id",
                "status",
                "submit_time",
                "screening_statuses",
            )
        )

        for submission_dict in submissions_to_anonymize:
            AnonymizedSubmission.from_dict(submission_dict)