diff --git a/snikket_web/admin.py b/snikket_web/admin.py index f8b84da..3a5cf76 100644 --- a/snikket_web/admin.py +++ b/snikket_web/admin.py @@ -148,8 +148,13 @@ class InvitePost(flask_wtf.FlaskForm): # type:ignore default=7*86400, ) - reusable = wtforms.BooleanField( - _l("Invite a group of people"), + type_ = wtforms.RadioField( + _l("Invitation type"), + choices=[ + ("account", _l("Individual")), + ("group", _l("Group")), + ], + default="account", ) action_create_invite = wtforms.SubmitField( @@ -228,7 +233,7 @@ async def create_invite() -> typing.Union[str, quart.Response]: (c.id_, c.name) for c in circles ] if form.validate_on_submit(): - if form.reusable.data: + if form.type_.data == "group": invite = await client.create_group_invite( group_ids=form.circles.data, ttl=form.lifetime.data, diff --git a/snikket_web/templates/admin_create_invite_form.html b/snikket_web/templates/admin_create_invite_form.html index 3a7a2bf..16d03ff 100644 --- a/snikket_web/templates/admin_create_invite_form.html +++ b/snikket_web/templates/admin_create_invite_form.html @@ -5,8 +5,8 @@

{% trans %}Create new invitation{% endtrans %}

{% trans %}Create a new invitation link to invite more users to your Snikket service by clicking the button below.{% endtrans %}

- {{ invite_form.reusable }} - {{ invite_form.reusable.label }} + {{ invite_form.type_.label }} + {{ invite_form.type_ }}
{{ invite_form.lifetime.label }} diff --git a/snikket_web/templates/admin_edit_invite.html b/snikket_web/templates/admin_edit_invite.html index ac3d362..c6936d9 100644 --- a/snikket_web/templates/admin_edit_invite.html +++ b/snikket_web/templates/admin_edit_invite.html @@ -14,7 +14,7 @@
{{ invite.expires | format_date }}
{% trans %}Link{% endtrans %}
{% call showuri(invite.landing_page) %}{% endcall %}
-
{% trans %}Reusability{% endtrans %}
+
{% trans %}Invitation type{% endtrans %}
{% if invite.reusable %}{% trans %}This invitation link can be used arbitrarily often, until it expires, is revoked or a service-wide user limit is reached.{% endtrans %}{% else %}{% trans %}This invitation link can only be used once and is then depleted.{% endtrans %}{% endif %}
{%- set ngroups = invite.group_ids | length -%} {%- if ngroups > 1 -%} diff --git a/snikket_web/templates/admin_invites.html b/snikket_web/templates/admin_invites.html index ed9509d..1dad14b 100644 --- a/snikket_web/templates/admin_invites.html +++ b/snikket_web/templates/admin_invites.html @@ -1,5 +1,5 @@ {% extends "admin_app.html" %} -{% from "library.j2" import action_button, icon, clipboard_button, form_button, custom_form_button, extract_circle_name %} +{% from "library.j2" import action_button, icon, clipboard_button, form_button, custom_form_button, extract_circle_name, invite_type_name %} {% block head_lead %} {{ super() }} {% include "copy-snippet.html" %} @@ -19,7 +19,7 @@ {% trans %}Valid until{% endtrans %} - {% trans %}Reusable{% endtrans %} + {% trans %}Type{% endtrans %} {% trans %}Circle{% endtrans %} {% trans %}Actions{% endtrans %} @@ -28,8 +28,7 @@ {% for invite in invites %} {{ (invite.expires - now) | format_timedelta(add_direction=True) }} - {% if invite.reusable %}{% trans %}Yes{% endtrans %}{% else %}{% trans - %}No{% endtrans %}{% endif %} + {% call invite_type_name(invite) %}{% endcall %} {#- -#}