Skip to content
Snippets Groups Projects
Select Git revision
  • 1e895b47c52467a1e9e38905a7c53289a3cd7d77
  • main default protected
  • fix/2023-10_gitlab-ci
  • renovate/configure
  • v1.8.0
  • v1.7.2
  • v1.7.1
  • v1.5.0
  • v1.4.1
  • v1.4.0
  • v1.3.0
  • v1.2.3
  • v1.2.2
  • v1.2.1
  • v1.2.0
  • v1.1.0
  • v1.0.0
17 results

signals.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    signals.py 1.83 KiB
    from django import forms
    from django.dispatch import receiver
    from django.urls import resolve, reverse
    from django.utils.translation import ugettext_lazy as _
    from pretix.base.settings import settings_hierarkey
    from pretix.control.signals import nav_event_settings
    from pretix.presale.signals import question_form_fields
    
    settings_hierarkey.add_default("matrix_inviter_items", [], list)
    settings_hierarkey.add_default("matrix_inviter_authorization_token", "", str)
    settings_hierarkey.add_default("matrix_inviter_matrix_server", "", str)
    settings_hierarkey.add_default("matrix_inviter_matrix_room", "", str)
    
    
    @receiver(question_form_fields, dispatch_uid="matrix_inviter_questions")
    def add_matrix_id_question(sender, position, **kwargs):
        if str(position.item.pk) not in sender.settings.get("matrix_inviter_items"):
            return {}
    
        return {
            "matrix_inviter_matrix_id": forms.RegexField(
                label=_("Matrix ID"),
                required=False,
                regex="@[a-z0-9._=/-]+:.+",
                strip=True,
                error_messages={
                    "invalid": _("Enter a Matrix ID of the form @username:homeserver.tld")
                },
                help_text=_("You will be invited to a Matrix room using this Matrix ID"),
            )
        }
    
    
    @receiver(nav_event_settings, dispatch_uid="matrix_inviter_nav_settings")
    def navbar_settings(sender, request=None, **kwargs):
        url = resolve(request.path_info)
        return [
            {
                "label": _("Matrix inviter"),
                "url": reverse(
                    "plugins:pretix_matrix_inviter:settings",
                    kwargs={
                        "event": request.event.slug,
                        "organizer": request.organizer.slug,
                    },
                ),
                "active": url.namespace == "plugins:pretix_matrix_inviter"
                and url.url_name == "settings",
            }
        ]