diff --git a/aleksis/apps/ticdesk/filters.py b/aleksis/apps/ticdesk/filters.py index 869ddbcbed5f93285e831c2d9a853ffc8c446849..df1b788e068534abf2c5582a02ea8401b68e5f2d 100644 --- a/aleksis/apps/ticdesk/filters.py +++ b/aleksis/apps/ticdesk/filters.py @@ -16,13 +16,19 @@ class EventRegistrationFilter(FilterSet): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.form.layout = Layout(Row("person", "event"), Row("accept_sepa", "date_registred"),) + self.form.layout = Layout( + Row("person", "event"), + Row("accept_sepa", "date_registred"), + ) class TeckidsMemberFilter(FilterSet): name = MultipleCharFilter( - ["person__first_name__icontains", "person__last_name__icontains",], + [ + "person__first_name__icontains", + "person__last_name__icontains", + ], label=_("Search by name"), ) @@ -39,10 +45,18 @@ class TeckidsMemberFilter(FilterSet): class VoucherFilter(FilterSet): - event = MultipleCharFilter(["event__short_name__icontains",], label=_("Search by event"),) + event = MultipleCharFilter( + [ + "event__short_name__icontains", + ], + label=_("Search by event"), + ) name = MultipleCharFilter( - ["person__first_name__icontains", "person__last_name__icontains",], + [ + "person__first_name__icontains", + "person__last_name__icontains", + ], label=_("Search by name"), ) diff --git a/aleksis/apps/ticdesk/forms.py b/aleksis/apps/ticdesk/forms.py index d5772b6ae3bfbcaefdc71c8a07fa8f7e877f426b..c741fbdbfa3c2dd6b8b0eaddf3448f107b1496d9 100644 --- a/aleksis/apps/ticdesk/forms.py +++ b/aleksis/apps/ticdesk/forms.py @@ -87,7 +87,10 @@ class EventAdditionalSurveyForm(forms.Form): (re.sub(r"[^A-Za-z0-9]|^(?=\d)", "_", choice), choice) for choice in choices ] field_attr = forms.ChoiceField( - label=label, help_text=help_text, choices=choices_map, required=False, + label=label, + help_text=help_text, + choices=choices_map, + required=False, ) else: field_attr = forms.CharField(label=label, help_text=help_text, required=False) @@ -115,9 +118,17 @@ class EventFeedbackForm(ExtensibleForm): fields = [] layout = Layout( - Fieldset(_("Comments"), Row("comment_private", "comment_public", "comment_public_info"),), - Fieldset(_("Photos"), Row("photos", "photos_licence"),), - Fieldset(_("Feedback aspects"),), + Fieldset( + _("Comments"), + Row("comment_private", "comment_public", "comment_public_info"), + ), + Fieldset( + _("Photos"), + Row("photos", "photos_licence"), + ), + Fieldset( + _("Feedback aspects"), + ), ) comment_private = forms.CharField( @@ -169,7 +180,10 @@ class EventFeedbackForm(ExtensibleForm): self._event = event for aspect in event.feedback_aspects.all(): - field = forms.IntegerField(widget=Stars, required=False,) + field = forms.IntegerField( + widget=Stars, + required=False, + ) self.fields[aspect.aspect] = field node = Fieldset(f"{aspect.aspect}", f"{aspect.aspect}") self.add_node_to_layout(node) @@ -234,7 +248,8 @@ class GenerateListForm(forms.Form): ) landscape = forms.BooleanField( - label=_("Landscape"), help_text=_("Select if output should be in landscape."), + label=_("Landscape"), + help_text=_("Select if output should be in landscape."), ) @@ -242,18 +257,44 @@ class RegisterEventForm(forms.ModelForm): """Form to register for an event.""" layout = Layout( - Fieldset(_("Address data"), Row("street", "housenumber"), Row("postal_code", "place"),), - Fieldset(_("Contact details"), Row("mobile_number", "email"),), - Fieldset(_("Personal data"), Row("date_of_birth", "sex"),), - Fieldset(_("School details"), Row("school", "school_place", "school_class"),), - Fieldset(_("Guardians personal data"), Row("guardian_first_name", "guardian_last_name"),), - Fieldset(_("Guardians contact details"), Row("guardian_email", "guardian_mobile_number"),), Fieldset( - _("General event information"), Row("event", "person"), Row("comment", "channel"), + _("Address data"), + Row("street", "housenumber"), + Row("postal_code", "place"), + ), + Fieldset( + _("Contact details"), + Row("mobile_number", "email"), + ), + Fieldset( + _("Personal data"), + Row("date_of_birth", "sex"), + ), + Fieldset( + _("School details"), + Row("school", "school_place", "school_class"), + ), + Fieldset( + _("Guardians personal data"), + Row("guardian_first_name", "guardian_last_name"), + ), + Fieldset( + _("Guardians contact details"), + Row("guardian_email", "guardian_mobile_number"), ), - Fieldset(_("Financial data"), "voucher_code", Row("iban", "donation", "accept_sepa"),), Fieldset( - _("Declaration of consent"), Row("accept_terms", "accept_data", "accept_general_terms"), + _("General event information"), + Row("event", "person"), + Row("comment", "channel"), + ), + Fieldset( + _("Financial data"), + "voucher_code", + Row("iban", "donation", "accept_sepa"), + ), + Fieldset( + _("Declaration of consent"), + Row("accept_terms", "accept_data", "accept_general_terms"), ), ) @@ -333,7 +374,9 @@ class RegisterEventForm(forms.ModelForm): ), ) - guardian_email = forms.EmailField(label=_("Guardians email address"),) + guardian_email = forms.EmailField( + label=_("Guardians email address"), + ) voucher_code = forms.CharField( label=_("Voucher code"), @@ -341,13 +384,21 @@ class RegisterEventForm(forms.ModelForm): required=False, ) - street = forms.CharField(label=_("Street"),) + street = forms.CharField( + label=_("Street"), + ) - housenumber = forms.CharField(label=_("Housenumber"),) + housenumber = forms.CharField( + label=_("Housenumber"), + ) - postal_code = forms.CharField(label=_("Postal code"),) + postal_code = forms.CharField( + label=_("Postal code"), + ) - place = forms.CharField(label=_("Place"),) + place = forms.CharField( + label=_("Place"), + ) mobile_number = forms.CharField( label=_("Mobile number"), @@ -360,7 +411,9 @@ class RegisterEventForm(forms.ModelForm): validators=[is_phonenumber], ) - date_of_birth = forms.DateField(label=_("Date of birth"),) + date_of_birth = forms.DateField( + label=_("Date of birth"), + ) sex = forms.ChoiceField( label=_("Sex"), @@ -373,7 +426,9 @@ class RegisterEventForm(forms.ModelForm): initial=None, ) - email = forms.EmailField(label=_("Email address"),) + email = forms.EmailField( + label=_("Email address"), + ) school = forms.CharField( label=_("School"), @@ -386,7 +441,8 @@ class RegisterEventForm(forms.ModelForm): ) school_class = forms.CharField( - label=_("School class"), help_text=_("Please enter the class you are going to (e.g. 8a)."), + label=_("School class"), + help_text=_("Please enter the class you are going to (e.g. 8a)."), ) def __init__(self, *args, **kwargs): @@ -409,7 +465,10 @@ class EditTeckidsMemberForm(forms.ModelForm): Row("employee_number", "title"), Row("member_since", "member_until"), ), - Fieldset(_("Financial information"), Row("dues", "dues_sepa"),), + Fieldset( + _("Financial information"), + Row("dues", "dues_sepa"), + ), ) class Meta: @@ -432,11 +491,18 @@ class EditEventRegistrationForm(forms.ModelForm): layout = Layout( Fieldset( - _("General event information"), Row("event", "person"), Row("comment", "channel"), + _("General event information"), + Row("event", "person"), + Row("comment", "channel"), + ), + Fieldset( + _("Financial data"), + "voucher_code", + Row("iban", "donation", "accept_sepa"), ), - Fieldset(_("Financial data"), "voucher_code", Row("iban", "donation", "accept_sepa"),), Fieldset( - _("Declaration of consent"), Row("accept_terms", "accept_data", "accept_general_terms"), + _("Declaration of consent"), + Row("accept_terms", "accept_data", "accept_general_terms"), ), ) @@ -498,6 +564,7 @@ class EditFeedbackAspectForm(forms.ModelForm): model = FeedbackAspect exclude = [] + date_of_birth = forms.DateField(label=_("Date of birth")) extend_register_form = Fieldset(date_of_birth) AccountRegisterForm.add_node_to_layout(extend_register_form) diff --git a/aleksis/apps/ticdesk/menus.py b/aleksis/apps/ticdesk/menus.py index cd8ac2697e13655ec6ff552a4a16f490b63654a1..1a91c7d05d2f33800434a2dfcb2cb3244c36b481 100644 --- a/aleksis/apps/ticdesk/menus.py +++ b/aleksis/apps/ticdesk/menus.py @@ -2,14 +2,21 @@ from django.utils.translation import gettext_lazy as _ MENUS = { "NAV_MENU_CORE": [ - {"name": _("Events"), "url": "events", "icon": "event",}, + { + "name": _("Events"), + "url": "events", + "icon": "event", + }, { "name": _("Vouchers"), "url": "#", "icon": "confirmation_number", "root": True, "validators": [ - ("aleksis.core.util.predicates.permission_validator", "ticdesk.view_vouchers_rule",) + ( + "aleksis.core.util.predicates.permission_validator", + "ticdesk.view_vouchers_rule", + ) ], "submenu": [ { @@ -42,7 +49,10 @@ MENUS = { "icon": "event_note", "root": True, "validators": [ - ("aleksis.core.util.predicates.permission_validator", "ticdesk.change_events_rule",) + ( + "aleksis.core.util.predicates.permission_validator", + "ticdesk.change_events_rule", + ) ], "submenu": [ { @@ -114,8 +124,16 @@ MENUS = { ) ], "submenu": [ - {"name": _("List members"), "icon": "list", "url": "members",}, - {"name": _("New member"), "icon": "add", "url": "create_member",}, + { + "name": _("List members"), + "icon": "list", + "url": "members", + }, + { + "name": _("New member"), + "icon": "add", + "url": "create_member", + }, ], }, ], diff --git a/aleksis/apps/ticdesk/models.py b/aleksis/apps/ticdesk/models.py index a545ba6701f1d45895564fd6101fefc7ad848029..52a21f726c77659c6a40b55afa8d3668c0090f5e 100644 --- a/aleksis/apps/ticdesk/models.py +++ b/aleksis/apps/ticdesk/models.py @@ -16,7 +16,9 @@ class TeckidsMember(ExtensibleModel): dues = models.PositiveIntegerField(verbose_name=_("Membership dues in €"), default=60) dues_sepa = models.DateField( - verbose_name=_("Membership dues SEPA direct debit mandate"), blank=True, null=True, + verbose_name=_("Membership dues SEPA direct debit mandate"), + blank=True, + null=True, ) person = models.ForeignKey(Person, on_delete=models.CASCADE) @@ -162,7 +164,10 @@ class Voucher(ExtensibleModel): null=True, ) person = models.ForeignKey( - Person, related_name="vouchers", verbose_name=_("Person"), on_delete=models.CASCADE, + Person, + related_name="vouchers", + verbose_name=_("Person"), + on_delete=models.CASCADE, ) discount = models.IntegerField(default=100) @@ -206,13 +211,19 @@ class EventRegistration(ExtensibleModel): comment = models.TextField(verbose_name=_("Comment / remarks"), blank=True, default="") channel = models.CharField(verbose_name=_("Channel"), max_length=255, blank=True, default="") voucher = models.ForeignKey( - Voucher, on_delete=models.CASCADE, verbose_name=_("Voucher"), blank=True, null=True, + Voucher, + on_delete=models.CASCADE, + verbose_name=_("Voucher"), + blank=True, + null=True, ) donation = models.PositiveIntegerField(verbose_name=_("Donation"), blank=True, null=True) accept_sepa = models.BooleanField(verbose_name=_("SEPA direct debit")) iban = IBANField( - verbose_name=_("IBAN (for SEPA direct debit)"), enforce_database_constraint=True, null=True, + verbose_name=_("IBAN (for SEPA direct debit)"), + enforce_database_constraint=True, + null=True, ) accept_terms = models.BooleanField(verbose_name=_("Delcaration of consent by parents")) diff --git a/aleksis/apps/ticdesk/tables.py b/aleksis/apps/ticdesk/tables.py index 47cac3239ad1b7ef74b3398637f18b8e9ce5c5af..0feba983189484b72a5c3a65901c33278a3f0da7 100644 --- a/aleksis/apps/ticdesk/tables.py +++ b/aleksis/apps/ticdesk/tables.py @@ -14,7 +14,10 @@ class EventsTable(tables.Table): date_registration = tables.Column(verbose_name=_("Registration until")) short_name = tables.LinkColumn( - "register_event_by_id", args=[A("id")], verbose_name=_("Register"), text=_("Register"), + "register_event_by_id", + args=[A("id")], + verbose_name=_("Register"), + text=_("Register"), ) @@ -26,7 +29,10 @@ class ParticipatedEventsTable(tables.Table): date_event = tables.Column(verbose_name=_("Date")) short_name = tables.LinkColumn( - "feedback_event_by_id", args=[A("id")], verbose_name=_("Feedback"), text=_("Feedback"), + "feedback_event_by_id", + args=[A("id")], + verbose_name=_("Feedback"), + text=_("Feedback"), ) @@ -53,7 +59,10 @@ class VouchersTable(tables.Table): code = tables.Column(verbose_name=_("Code")) person = tables.Column(verbose_name=_("Person")) deleted = tables.LinkColumn( - "delete_voucher_by_id", args=[A("id")], verbose_name=_("Delete"), text=_("Delete"), + "delete_voucher_by_id", + args=[A("id")], + verbose_name=_("Delete"), + text=_("Delete"), ) edit = tables.LinkColumn( "edit_voucher_by_id", args=[A("id")], verbose_name=_("Edit"), text=_("Edit") @@ -71,7 +80,10 @@ class EventRegistrationsTable(tables.Table): event = tables.Column() date_registred = tables.Column() view = tables.LinkColumn( - "registration_by_id", args=[A("id")], verbose_name=_("View registration"), text=_("View"), + "registration_by_id", + args=[A("id")], + verbose_name=_("View registration"), + text=_("View"), ) @@ -84,7 +96,10 @@ class TeckidsMemberTable(tables.Table): member_since = tables.Column() member_until = tables.Column() edit = tables.LinkColumn( - "edit_member_by_id", args=[A("id")], verbose_name=_("Edit member"), text=_("Edit"), + "edit_member_by_id", + args=[A("id")], + verbose_name=_("Edit member"), + text=_("Edit"), ) @@ -95,5 +110,8 @@ class FeedbackAspectsTable(tables.Table): aspect = tables.Column() edit = tables.LinkColumn( - "edit_feedback_aspect_by_id", args=[A("id")], verbose_name=_("Edit"), text=_("Edit"), + "edit_feedback_aspect_by_id", + args=[A("id")], + verbose_name=_("Edit"), + text=_("Edit"), ) diff --git a/aleksis/apps/ticdesk/urls.py b/aleksis/apps/ticdesk/urls.py index 0cc63ecdf4b7a9429f14b466405bf63d8ecb8797..6b4c478f6f33432f321dbb19252f1c1a74893031 100644 --- a/aleksis/apps/ticdesk/urls.py +++ b/aleksis/apps/ticdesk/urls.py @@ -32,7 +32,9 @@ urlpatterns = [ path("members/<int:id_>/edit", views.edit_member, name="edit_member_by_id"), path("event/feedback_aspects/list", views.feedback_aspects, name="feedback_aspects"), path( - "event/feedback_aspects/create", views.edit_feedback_aspect, name="create_feedback_aspect", + "event/feedback_aspects/create", + views.edit_feedback_aspect, + name="create_feedback_aspect", ), path( "event/feedback_aspects/<int:id_>/edit", diff --git a/aleksis/apps/ticdesk/views.py b/aleksis/apps/ticdesk/views.py index 21d1d4bd1471d978a019456db6eb7b0d208fbf6d..576ddebc719d4e9e862aba3053e8f751c10e3fe3 100644 --- a/aleksis/apps/ticdesk/views.py +++ b/aleksis/apps/ticdesk/views.py @@ -188,7 +188,10 @@ def register_event(request, id_): from_email=lazy_preference("mail", "address"), recipient_list=["orga@teckids.org"], headers={ - "reply_to": [request.person.email, request.person.guardians.first().email,], + "reply_to": [ + request.person.email, + request.person.guardians.first().email, + ], }, context=context, ) @@ -247,7 +250,11 @@ def feedback_event(request, id_): template_name="event_feedback", from_email=lazy_preference("mail", "address"), recipient_list=["verein@teckids.org"], - headers={"reply_to": [request.person.email,],}, + headers={ + "reply_to": [ + request.person.email, + ], + }, context=context, ) @@ -476,7 +483,8 @@ def members(request: HttpRequest) -> HttpResponse: @permission_required( - "ticdesk.manage_teckids_member", fn=objectgetter_optional(TeckidsMember, None, False), + "ticdesk.manage_teckids_member", + fn=objectgetter_optional(TeckidsMember, None, False), ) def edit_member(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse: """View to edit or create a member.""" @@ -507,7 +515,8 @@ def edit_member(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse @permission_required( - "ticdesk.delete_registrations", fn=objectgetter_optional(EventRegistration, None, False), + "ticdesk.delete_registrations", + fn=objectgetter_optional(EventRegistration, None, False), ) def delete_registration(request: HttpRequest, id_) -> HttpResponse: context = {} @@ -527,7 +536,8 @@ def delete_registration(request: HttpRequest, id_) -> HttpResponse: @permission_required( - "ticdesk.manage_registrations", fn=objectgetter_optional(EventRegistration, None, False), + "ticdesk.manage_registrations", + fn=objectgetter_optional(EventRegistration, None, False), ) def edit_registration(request: HttpRequest, id_) -> HttpResponse: context = {} @@ -583,7 +593,8 @@ def feedback_aspects(request: HttpRequest) -> HttpResponse: @permission_required( - "ticdesk.change_feedback_aspect", fn=objectgetter_optional(FeedbackAspect, None, False), + "ticdesk.change_feedback_aspect", + fn=objectgetter_optional(FeedbackAspect, None, False), ) def edit_feedback_aspect(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse: """View to edit or create an feedback_aspect."""