Skip to content
Snippets Groups Projects
Commit dc2c873b authored by Felix Schäfer's avatar Felix Schäfer :construction_worker:
Browse files

Show some info on the settings page

parent 3bca31b8
No related branches found
No related tags found
1 merge request!5Allow using room aliases
Pipeline #64493 passed
...@@ -3,6 +3,8 @@ from django.utils.translation import ugettext_lazy as _ ...@@ -3,6 +3,8 @@ from django.utils.translation import ugettext_lazy as _
from i18nfield.forms import I18nFormField, I18nTextInput from i18nfield.forms import I18nFormField, I18nTextInput
from pretix.base.forms import SettingsForm from pretix.base.forms import SettingsForm
from .helpers import matrix_room_info_for_event
class MatrixInviterForm(SettingsForm): class MatrixInviterForm(SettingsForm):
matrix_inviter_items = forms.MultipleChoiceField( matrix_inviter_items = forms.MultipleChoiceField(
...@@ -21,11 +23,6 @@ class MatrixInviterForm(SettingsForm): ...@@ -21,11 +23,6 @@ class MatrixInviterForm(SettingsForm):
label=_("Matrix server"), label=_("Matrix server"),
strip=True, strip=True,
) )
matrix_inviter_matrix_room = forms.RegexField(
label=_("Matrix room"),
regex="(!|#)[^:]+:.+",
strip=True,
)
matrix_inviter_hint = I18nFormField( matrix_inviter_hint = I18nFormField(
widget=I18nTextInput, widget=I18nTextInput,
label=_("Help text for the Matrix ID field"), label=_("Help text for the Matrix ID field"),
...@@ -42,3 +39,24 @@ class MatrixInviterForm(SettingsForm): ...@@ -42,3 +39,24 @@ class MatrixInviterForm(SettingsForm):
self.fields["matrix_inviter_items"].choices = [ self.fields["matrix_inviter_items"].choices = [
(i.pk, i.name) for i in self.obj.items.all() (i.pk, i.name) for i in self.obj.items.all()
] ]
room_info = matrix_room_info_for_event(self.obj)
if self.obj.settings.matrix_inviter_matrix_room.startswith("!"):
if room_info["canonical_alias"]:
room_help_text = _('"{name}" (<code>{canonical_alias}</code>)')
else:
room_help_text = _('"{name}"')
else:
if room_info["canonical_alias"]:
room_help_text = _(
'"{name}" (<code>{room_id}</code>, main alias: <code>{canonical_alias}</code>)'
)
else:
room_help_text = _('"{name}" (<code>{room_id}</code>)')
self.fields["matrix_inviter_matrix_room"] = forms.RegexField(
label=_("Matrix room"),
regex="(!|#)[^:]+:.+",
strip=True,
help_text=(room_help_text.format_map(room_info)),
)
...@@ -2,6 +2,30 @@ import requests ...@@ -2,6 +2,30 @@ import requests
from urllib.parse import quote as url_quote from urllib.parse import quote as url_quote
def matrix_room_info_for_event(event):
return event.cache.get_or_set(
"matrix_room_info",
matrix_room_info(
event.settings.matrix_inviter_matrix_server,
event.settings.matrix_inviter_authorization_token,
event.settings.matrix_inviter_matrix_room,
),
120,
)
def matrix_room_info(server, token, room_id_or_alias):
room_id = matrix_room_id(server, room_id_or_alias)
canonical_alias = matrix_room_canonical_alias_from_id(server, token, room_id)
name = matrix_room_name_from_id(server, token, room_id)
return {
"room_id": room_id,
"canonical_alias": canonical_alias,
"name": name,
}
def matrix_room_id(server, room_id_or_alias): def matrix_room_id(server, room_id_or_alias):
if room_id_or_alias.startswith("!"): if room_id_or_alias.startswith("!"):
return room_id_or_alias return room_id_or_alias
...@@ -18,3 +42,31 @@ def matrix_room_id_from_alias(server, alias): ...@@ -18,3 +42,31 @@ def matrix_room_id_from_alias(server, alias):
) )
return r.json().get("room_id") return r.json().get("room_id")
def matrix_room_canonical_alias_from_id(server, token, room_id):
r = requests.get(
"https://{}/_matrix/client/v3/rooms/{}/state/m.room.canonical_alias".format(
url_quote(server),
url_quote(room_id),
),
headers={
"Authorization": "Bearer {}".format(token),
},
)
return r.json().get("alias")
def matrix_room_name_from_id(server, token, room_id):
r = requests.get(
"https://{}/_matrix/client/v3/rooms/{}/state/m.room.name".format(
url_quote(server),
url_quote(room_id),
),
headers={
"Authorization": "Bearer {}".format(token),
},
)
return r.json().get("name")
...@@ -2,7 +2,7 @@ msgid "" ...@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-04 19:41+0100\n" "POT-Creation-Date: 2022-02-08 00:36+0100\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Felix Schäfer\n" "Last-Translator: Felix Schäfer\n"
"Language-Team: \n" "Language-Team: \n"
...@@ -21,49 +21,75 @@ msgid "" ...@@ -21,49 +21,75 @@ msgid ""
"Space." "Space."
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:12 #: pretix_matrix_inviter/forms.py:14
msgid "Ask Matrix ID for" msgid "Ask Matrix ID for"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:17 #: pretix_matrix_inviter/forms.py:19
msgid "Authorization token" msgid "Authorization token"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:21 #: pretix_matrix_inviter/forms.py:23
msgid "Matrix server" msgid "Matrix server"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:25 #: pretix_matrix_inviter/forms.py:28
msgid "Matrix room" msgid "Help text for the Matrix ID field"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:31 #: pretix_matrix_inviter/forms.py:33
msgid "Help text for the Matrix ID field" msgid "Invitiation message"
msgstr ""
#: pretix_matrix_inviter/forms.py:46
#, python-brace-format
msgid "\"{name}\" (<code>{canonical_alias}</code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:48
#, python-brace-format
msgid "\"{name}\""
msgstr ""
#: pretix_matrix_inviter/forms.py:52
#, python-brace-format
msgid ""
"\"{name}\" (<code>{room_id}</code>, main alias: <code>{canonical_alias}</"
"code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:55
#, python-brace-format
msgid "\"{name}\" (<code>{room_id}</code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:58
msgid "Matrix room"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:22 #: pretix_matrix_inviter/signals.py:22
msgid "You will be invited to the event's Matrix Space." msgid "You will be invited to the event's Matrix Space."
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:42 #: pretix_matrix_inviter/signals.py:47
msgid "Matrix ID" msgid "Matrix ID"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:47 #: pretix_matrix_inviter/signals.py:52
msgid "Enter a Matrix ID of the form @username:homeserver.tld" msgid "Enter a Matrix ID of the form @username:homeserver.tld"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:82 #: pretix_matrix_inviter/signals.py:94
#: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
msgid "Matrix inviter" msgid "Matrix inviter"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:103 #: pretix_matrix_inviter/signals.py:115
#, python-brace-format #, python-brace-format
msgid "{matrix_id} has been invited to {matrix_room}." msgid "{matrix_id} has been invited to {matrix_room}."
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:106 #: pretix_matrix_inviter/signals.py:118
#, python-brace-format #, python-brace-format
msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}" msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}"
msgstr "" msgstr ""
......
...@@ -2,7 +2,7 @@ msgid "" ...@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-04 19:41+0100\n" "POT-Creation-Date: 2022-02-08 00:36+0100\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Felix Schäfer\n" "Last-Translator: Felix Schäfer\n"
"Language-Team: \n" "Language-Team: \n"
...@@ -21,49 +21,75 @@ msgid "" ...@@ -21,49 +21,75 @@ msgid ""
"Space." "Space."
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:12 #: pretix_matrix_inviter/forms.py:14
msgid "Ask Matrix ID for" msgid "Ask Matrix ID for"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:17 #: pretix_matrix_inviter/forms.py:19
msgid "Authorization token" msgid "Authorization token"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:21 #: pretix_matrix_inviter/forms.py:23
msgid "Matrix server" msgid "Matrix server"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:25 #: pretix_matrix_inviter/forms.py:28
msgid "Matrix room" msgid "Help text for the Matrix ID field"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:31 #: pretix_matrix_inviter/forms.py:33
msgid "Help text for the Matrix ID field" msgid "Invitiation message"
msgstr ""
#: pretix_matrix_inviter/forms.py:46
#, python-brace-format
msgid "\"{name}\" (<code>{canonical_alias}</code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:48
#, python-brace-format
msgid "\"{name}\""
msgstr ""
#: pretix_matrix_inviter/forms.py:52
#, python-brace-format
msgid ""
"\"{name}\" (<code>{room_id}</code>, main alias: <code>{canonical_alias}</"
"code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:55
#, python-brace-format
msgid "\"{name}\" (<code>{room_id}</code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:58
msgid "Matrix room"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:22 #: pretix_matrix_inviter/signals.py:22
msgid "You will be invited to the event's Matrix Space." msgid "You will be invited to the event's Matrix Space."
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:42 #: pretix_matrix_inviter/signals.py:47
msgid "Matrix ID" msgid "Matrix ID"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:47 #: pretix_matrix_inviter/signals.py:52
msgid "Enter a Matrix ID of the form @username:homeserver.tld" msgid "Enter a Matrix ID of the form @username:homeserver.tld"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:82 #: pretix_matrix_inviter/signals.py:94
#: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
msgid "Matrix inviter" msgid "Matrix inviter"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:103 #: pretix_matrix_inviter/signals.py:115
#, python-brace-format #, python-brace-format
msgid "{matrix_id} has been invited to {matrix_room}." msgid "{matrix_id} has been invited to {matrix_room}."
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:106 #: pretix_matrix_inviter/signals.py:118
#, python-brace-format #, python-brace-format
msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}" msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}"
msgstr "" msgstr ""
......
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-04 19:41+0100\n" "POT-Creation-Date: 2022-02-08 00:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -27,49 +27,75 @@ msgid "" ...@@ -27,49 +27,75 @@ msgid ""
"Space." "Space."
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:12 #: pretix_matrix_inviter/forms.py:14
msgid "Ask Matrix ID for" msgid "Ask Matrix ID for"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:17 #: pretix_matrix_inviter/forms.py:19
msgid "Authorization token" msgid "Authorization token"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:21 #: pretix_matrix_inviter/forms.py:23
msgid "Matrix server" msgid "Matrix server"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:25 #: pretix_matrix_inviter/forms.py:28
msgid "Matrix room" msgid "Help text for the Matrix ID field"
msgstr "" msgstr ""
#: pretix_matrix_inviter/forms.py:31 #: pretix_matrix_inviter/forms.py:33
msgid "Help text for the Matrix ID field" msgid "Invitiation message"
msgstr ""
#: pretix_matrix_inviter/forms.py:46
#, python-brace-format
msgid "\"{name}\" (<code>{canonical_alias}</code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:48
#, python-brace-format
msgid "\"{name}\""
msgstr ""
#: pretix_matrix_inviter/forms.py:52
#, python-brace-format
msgid ""
"\"{name}\" (<code>{room_id}</code>, main alias: <code>{canonical_alias}</"
"code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:55
#, python-brace-format
msgid "\"{name}\" (<code>{room_id}</code>)"
msgstr ""
#: pretix_matrix_inviter/forms.py:58
msgid "Matrix room"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:22 #: pretix_matrix_inviter/signals.py:22
msgid "You will be invited to the event's Matrix Space." msgid "You will be invited to the event's Matrix Space."
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:42 #: pretix_matrix_inviter/signals.py:47
msgid "Matrix ID" msgid "Matrix ID"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:47 #: pretix_matrix_inviter/signals.py:52
msgid "Enter a Matrix ID of the form @username:homeserver.tld" msgid "Enter a Matrix ID of the form @username:homeserver.tld"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:82 #: pretix_matrix_inviter/signals.py:94
#: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6 #: pretix_matrix_inviter/templates/pretix_matrix_inviter/settings.html:6
msgid "Matrix inviter" msgid "Matrix inviter"
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:103 #: pretix_matrix_inviter/signals.py:115
#, python-brace-format #, python-brace-format
msgid "{matrix_id} has been invited to {matrix_room}." msgid "{matrix_id} has been invited to {matrix_room}."
msgstr "" msgstr ""
#: pretix_matrix_inviter/signals.py:106 #: pretix_matrix_inviter/signals.py:118
#, python-brace-format #, python-brace-format
msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}" msgid "There was an error inviting {matrix_id} to {matrix_room}: {error}"
msgstr "" msgstr ""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment