From 7d10218f84e14645abb5c339b6aec2f7ecaa3246 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Sch=C3=A4fer?= <felix@thegcat.net>
Date: Thu, 9 Feb 2023 10:41:24 +0100
Subject: [PATCH] Matrix ID Parameter for the PDF editor #12

---
 CHANGELOG.md                                  |  4 ++
 .../locale/de/LC_MESSAGES/django.po           | 24 +++++++-----
 .../locale/de_Informal/LC_MESSAGES/django.po  | 32 ++++++++--------
 pretix_matrix_inviter/locale/django.pot       | 24 +++++++-----
 .../locale/fr/LC_MESSAGES/django.po           | 37 ++++++++++---------
 pretix_matrix_inviter/signals.py              | 20 ++++++++++
 6 files changed, 88 insertions(+), 53 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 53be920..c861129 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [Unreleased]
+### Added
+- Matrix ID Parameter for the PDF editor #12
+
 ## [1.6.0] - 2023-02-09
 ### Changed
 - Apply updated pretix plugin cookiecutter
diff --git a/pretix_matrix_inviter/locale/de/LC_MESSAGES/django.po b/pretix_matrix_inviter/locale/de/LC_MESSAGES/django.po
index 9352852..90c4aa8 100644
--- a/pretix_matrix_inviter/locale/de/LC_MESSAGES/django.po
+++ b/pretix_matrix_inviter/locale/de/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-09 09:22+0100\n"
+"POT-Creation-Date: 2023-02-09 10:33+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Felix Schäfer\n"
 "Language-Team: \n"
@@ -12,12 +12,12 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 3.2.2\n"
 
-#: pretix_matrix_inviter/apps.py:16 pretix_matrix_inviter/signals.py:137
+#: pretix_matrix_inviter/apps.py:16 pretix_matrix_inviter/signals.py:139
 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
 msgid "Matrix inviter"
 msgstr "Matrix Inviter"
 
-#: pretix_matrix_inviter/apps.py:19
+#: pretix_matrix_inviter/apps.py:18
 msgid "Invite participants to a Matrix Room or Space."
 msgstr "Teilnehmende zu einem Matrix-Raum oder -Space einladen."
 
@@ -111,40 +111,44 @@ msgstr ""
 msgid "\"{name}\" (<code>{room_id}</code>)"
 msgstr "„{name}“ (<code>{room_id}</code>)"
 
-#: pretix_matrix_inviter/signals.py:29
+#: pretix_matrix_inviter/signals.py:31
 msgid "You will be invited to the event's Matrix Space."
 msgstr "Sie werden in den Matrix-Space dieser Veranstaltung eingeladen."
 
-#: pretix_matrix_inviter/signals.py:54
+#: pretix_matrix_inviter/signals.py:56 pretix_matrix_inviter/signals.py:188
 msgid "Matrix ID"
 msgstr "Matrix-ID"
 
-#: pretix_matrix_inviter/signals.py:60
+#: pretix_matrix_inviter/signals.py:62
 msgid "Enter a Matrix ID of the form @username:homeserver.tld"
 msgstr "Eine Matrix-ID der Form @benutzername:heimserver.tld eingeben"
 
-#: pretix_matrix_inviter/signals.py:158
+#: pretix_matrix_inviter/signals.py:160
 #, python-brace-format
 msgid "{matrix_id} has been invited to {matrix_room}."
 msgstr "{matrix_id} wurde in den Raum {matrix_room} eingeladen."
 
-#: pretix_matrix_inviter/signals.py:161
+#: pretix_matrix_inviter/signals.py:163
 #, python-brace-format
 msgid "{matrix_id} has been removed from {matrix_room}."
 msgstr "{matrix_id} wurde aus dem Raum {matrix_room} entfernt."
 
-#: pretix_matrix_inviter/signals.py:164
+#: pretix_matrix_inviter/signals.py:166
 #, python-brace-format
 msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}"
 msgstr ""
 "{matrix_id} konnte nicht in den Raum {matrix_room} eingeladen werden: {error}"
 
-#: pretix_matrix_inviter/signals.py:167
+#: pretix_matrix_inviter/signals.py:169
 #, python-brace-format
 msgid "There was an error removing {matrix_id} from {matrix_room}: {error}"
 msgstr ""
 "{matrix_id} konnte nicht aus dem Raum {matrix_room} entfernt werden: {error}"
 
+#: pretix_matrix_inviter/signals.py:189
+msgid "@username:homeserver.tld"
+msgstr "@benutzername:heimserver.tld"
+
 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:4
 msgid "Matrix inviter settings"
 msgstr "Einstellungen für Matrix Inviter"
diff --git a/pretix_matrix_inviter/locale/de_Informal/LC_MESSAGES/django.po b/pretix_matrix_inviter/locale/de_Informal/LC_MESSAGES/django.po
index 48bfbba..4baad95 100644
--- a/pretix_matrix_inviter/locale/de_Informal/LC_MESSAGES/django.po
+++ b/pretix_matrix_inviter/locale/de_Informal/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-09 09:12+0100\n"
+"POT-Creation-Date: 2023-02-09 10:33+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Felix Schäfer\n"
 "Language-Team: \n"
@@ -12,11 +12,12 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 3.0.1\n"
 
-#: pretix_matrix_inviter/apps.py:16
-msgid "Matrix Inviter"
+#: pretix_matrix_inviter/apps.py:16 pretix_matrix_inviter/signals.py:139
+#: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
+msgid "Matrix inviter"
 msgstr ""
 
-#: pretix_matrix_inviter/apps.py:19
+#: pretix_matrix_inviter/apps.py:18
 msgid "Invite participants to a Matrix Room or Space."
 msgstr ""
 
@@ -97,43 +98,42 @@ msgstr ""
 msgid "\"{name}\" (<code>{room_id}</code>)"
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:29
+#: pretix_matrix_inviter/signals.py:31
 msgid "You will be invited to the event's Matrix Space."
 msgstr "Du wirst in den Matrix-Space dieser Veranstaltung eingeladen."
 
-#: pretix_matrix_inviter/signals.py:54
+#: pretix_matrix_inviter/signals.py:56 pretix_matrix_inviter/signals.py:188
 msgid "Matrix ID"
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:60
+#: pretix_matrix_inviter/signals.py:62
 msgid "Enter a Matrix ID of the form @username:homeserver.tld"
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:137
-#: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
-msgid "Matrix inviter"
-msgstr ""
-
-#: pretix_matrix_inviter/signals.py:158
+#: pretix_matrix_inviter/signals.py:160
 #, python-brace-format
 msgid "{matrix_id} has been invited to {matrix_room}."
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:161
+#: pretix_matrix_inviter/signals.py:163
 #, python-brace-format
 msgid "{matrix_id} has been removed from {matrix_room}."
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:164
+#: pretix_matrix_inviter/signals.py:166
 #, python-brace-format
 msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}"
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:167
+#: pretix_matrix_inviter/signals.py:169
 #, python-brace-format
 msgid "There was an error removing {matrix_id} from {matrix_room}: {error}"
 msgstr ""
 
+#: pretix_matrix_inviter/signals.py:189
+msgid "@username:homeserver.tld"
+msgstr ""
+
 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:4
 msgid "Matrix inviter settings"
 msgstr ""
diff --git a/pretix_matrix_inviter/locale/django.pot b/pretix_matrix_inviter/locale/django.pot
index eb4ef03..01a3c2e 100644
--- a/pretix_matrix_inviter/locale/django.pot
+++ b/pretix_matrix_inviter/locale/django.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-09 09:22+0100\n"
+"POT-Creation-Date: 2023-02-09 10:33+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,12 +17,12 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: pretix_matrix_inviter/apps.py:16 pretix_matrix_inviter/signals.py:137
+#: pretix_matrix_inviter/apps.py:16 pretix_matrix_inviter/signals.py:139
 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
 msgid "Matrix inviter"
 msgstr ""
 
-#: pretix_matrix_inviter/apps.py:19
+#: pretix_matrix_inviter/apps.py:18
 msgid "Invite participants to a Matrix Room or Space."
 msgstr ""
 
@@ -103,38 +103,42 @@ msgstr ""
 msgid "\"{name}\" (<code>{room_id}</code>)"
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:29
+#: pretix_matrix_inviter/signals.py:31
 msgid "You will be invited to the event's Matrix Space."
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:54
+#: pretix_matrix_inviter/signals.py:56 pretix_matrix_inviter/signals.py:188
 msgid "Matrix ID"
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:60
+#: pretix_matrix_inviter/signals.py:62
 msgid "Enter a Matrix ID of the form @username:homeserver.tld"
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:158
+#: pretix_matrix_inviter/signals.py:160
 #, python-brace-format
 msgid "{matrix_id} has been invited to {matrix_room}."
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:161
+#: pretix_matrix_inviter/signals.py:163
 #, python-brace-format
 msgid "{matrix_id} has been removed from {matrix_room}."
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:164
+#: pretix_matrix_inviter/signals.py:166
 #, python-brace-format
 msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}"
 msgstr ""
 
-#: pretix_matrix_inviter/signals.py:167
+#: pretix_matrix_inviter/signals.py:169
 #, python-brace-format
 msgid "There was an error removing {matrix_id} from {matrix_room}: {error}"
 msgstr ""
 
+#: pretix_matrix_inviter/signals.py:189
+msgid "@username:homeserver.tld"
+msgstr ""
+
 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:4
 msgid "Matrix inviter settings"
 msgstr ""
diff --git a/pretix_matrix_inviter/locale/fr/LC_MESSAGES/django.po b/pretix_matrix_inviter/locale/fr/LC_MESSAGES/django.po
index 5ebb9b1..ad61c5b 100644
--- a/pretix_matrix_inviter/locale/fr/LC_MESSAGES/django.po
+++ b/pretix_matrix_inviter/locale/fr/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-02-09 09:12+0100\n"
-"PO-Revision-Date: 2023-02-09 09:18+0100\n"
+"POT-Creation-Date: 2023-02-09 10:33+0100\n"
+"PO-Revision-Date: 2023-02-09 10:35+0100\n"
 "Last-Translator: \n"
 "Language-Team: \n"
 "Language: fr\n"
@@ -18,11 +18,12 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Poedit 3.2.2\n"
 
-#: pretix_matrix_inviter/apps.py:16
-msgid "Matrix Inviter"
+#: pretix_matrix_inviter/apps.py:16 pretix_matrix_inviter/signals.py:139
+#: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
+msgid "Matrix inviter"
 msgstr "Inviteur Matrix"
 
-#: pretix_matrix_inviter/apps.py:19
+#: pretix_matrix_inviter/apps.py:18
 msgid "Invite participants to a Matrix Room or Space."
 msgstr "Invitez vos participant·es à un salon ou espace Matrix."
 
@@ -115,47 +116,46 @@ msgstr ""
 msgid "\"{name}\" (<code>{room_id}</code>)"
 msgstr "« {name} » (<code>{room_id}</code>)"
 
-#: pretix_matrix_inviter/signals.py:29
+#: pretix_matrix_inviter/signals.py:31
 msgid "You will be invited to the event's Matrix Space."
 msgstr "Vous serez invité dans l’espace Matrix de cette événement."
 
-#: pretix_matrix_inviter/signals.py:54
+#: pretix_matrix_inviter/signals.py:56 pretix_matrix_inviter/signals.py:188
 msgid "Matrix ID"
 msgstr "Identifiant Matrix"
 
-#: pretix_matrix_inviter/signals.py:60
+#: pretix_matrix_inviter/signals.py:62
 msgid "Enter a Matrix ID of the form @username:homeserver.tld"
 msgstr "Entrez un identifiant Matrix de la forme @utilisateur:serveur.tld"
 
-#: pretix_matrix_inviter/signals.py:137
-#: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
-msgid "Matrix inviter"
-msgstr "Inviteur Matrix"
-
-#: pretix_matrix_inviter/signals.py:158
+#: pretix_matrix_inviter/signals.py:160
 #, python-brace-format
 msgid "{matrix_id} has been invited to {matrix_room}."
 msgstr "{matrix_id} a été invité à joindre {matrix_room}."
 
-#: pretix_matrix_inviter/signals.py:161
+#: pretix_matrix_inviter/signals.py:163
 #, python-brace-format
 msgid "{matrix_id} has been removed from {matrix_room}."
 msgstr "{matrix_id} a été supprimé de {matrix_room}."
 
-#: pretix_matrix_inviter/signals.py:164
+#: pretix_matrix_inviter/signals.py:166
 #, python-brace-format
 msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}"
 msgstr ""
 "Il y a eu une erreur lors de l’invitation de {matrix_id} à joindre "
 "{matrix_room} : {error}"
 
-#: pretix_matrix_inviter/signals.py:167
+#: pretix_matrix_inviter/signals.py:169
 #, python-brace-format
 msgid "There was an error removing {matrix_id} from {matrix_room}: {error}"
 msgstr ""
 "Il y a eu une erreur lors de la suppression de {matrix_id} de "
 "{matrix_room} : {error}"
 
+#: pretix_matrix_inviter/signals.py:189
+msgid "@username:homeserver.tld"
+msgstr "@utilisateur:serveur.tld"
+
 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:4
 msgid "Matrix inviter settings"
 msgstr "Réglages inviteur Matrix"
@@ -168,5 +168,8 @@ msgstr ""
 msgid "Save"
 msgstr ""
 
+#~ msgid "Matrix Inviter"
+#~ msgstr "Inviteur Matrix"
+
 #~ msgid "Pretix Matrix Inviter"
 #~ msgstr "Inviteur Matrix pour pretix"
diff --git a/pretix_matrix_inviter/signals.py b/pretix_matrix_inviter/signals.py
index b441167..8d7f983 100644
--- a/pretix_matrix_inviter/signals.py
+++ b/pretix_matrix_inviter/signals.py
@@ -3,9 +3,11 @@ from django import forms
 from django.dispatch import receiver
 from django.urls import resolve, reverse
 from django.utils.translation import gettext_lazy, gettext_noop
+from functools import partial
 from i18nfield.strings import LazyI18nString
 from pretix.base.settings import settings_hierarkey
 from pretix.base.signals import (
+    layout_text_variables,
     logentry_display,
     order_canceled,
     order_expired,
@@ -170,3 +172,21 @@ def logentry_display(sender, logentry, **kwargs):
     data = json.loads(logentry.data)
 
     return locales[logentry.action_type].format_map(data)
+
+
+@receiver(layout_text_variables, dispatch_uid="matrix_inviter_layout_text_variables")
+def layout_text_variables(sender, *args, **kwargs):
+    def get_matrix_id(orderposition, order, event):
+        return str(
+            orderposition.meta_info_data.get("question_form_data", {}).get(
+                "matrix_inviter_matrix_id"
+            )
+        )
+
+    return {
+        "matrix_id": {
+            "label": gettext_lazy("Matrix ID"),
+            "editor_sample": gettext_lazy("@username:homeserver.tld"),
+            "evaluate": partial(get_matrix_id),
+        },
+    }
-- 
GitLab