From 27ec00065ad3082497a330fb771371f42f34ebd7 Mon Sep 17 00:00:00 2001 From: Victoria Earl Date: Wed, 15 May 2024 23:12:07 -0400 Subject: [PATCH] Fix form bugs with staff shirts In some cases, SHIRT_OPTS and STAFF_SHIRT_OPTS would be erroneously considered different from each other due to sorting. Additionally, in cases where the staff shirt and shirt opts were the same but all staff get a shirt, the form would hide the shirt size option. This fixes both issues. --- uber/config.py | 1 + uber/templates/forms/attendee/badge_extras.html | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/uber/config.py b/uber/config.py index d8ad4f356..83a5c14ba 100644 --- a/uber/config.py +++ b/uber/config.py @@ -1528,6 +1528,7 @@ def _unrepr(d): c.PREREG_SHIRT_OPTS = sorted(c.PREREG_SHIRT_OPTS if c.PREREG_SHIRT_OPTS else c.SHIRT_OPTS)[1:] c.PREREG_SHIRTS = {key: val for key, val in c.PREREG_SHIRT_OPTS} c.STAFF_SHIRT_OPTS = sorted(c.STAFF_SHIRT_OPTS if len(c.STAFF_SHIRT_OPTS) > 1 else c.SHIRT_OPTS) +c.SHIRT_OPTS = sorted(c.SHIRT_OPTS) c.MERCH_SHIRT_OPTS = [(c.SIZE_UNKNOWN, 'select a size')] + sorted(list(c.SHIRT_OPTS)) c.MERCH_STAFF_SHIRT_OPTS = [(c.SIZE_UNKNOWN, 'select a size')] + sorted(list(c.STAFF_SHIRT_OPTS)) shirt_label_lookup = {val: key for key, val in c.SHIRT_OPTS} diff --git a/uber/templates/forms/attendee/badge_extras.html b/uber/templates/forms/attendee/badge_extras.html index 48e6b6e44..3d1c650a0 100644 --- a/uber/templates/forms/attendee/badge_extras.html +++ b/uber/templates/forms/attendee/badge_extras.html @@ -48,9 +48,11 @@ attendee.available_amount_extra_opts, disabled_opts=c.SOLD_OUT_MERCH_TIERS, target_field_id=id_upgrade_prepend ~ "amount_extra") }} - {{ form_macros.toggle_fields_js(badge_extras.amount_extra, [badge_extras.shirt], off_values=["0"], toggle_required=True, - closest_hide_selector='.row' if not attendee.gets_staff_shirt or c.SHIRT_OPTS == c.STAFF_SHIRT_OPTS else '.form-floating', - source_field_id=id_upgrade_prepend ~ "amount_extra") }} + {% if not attendee.gets_staff_shirt or c.SHIRT_OPTS != c.STAFF_SHIRT_OPTS %} + {{ form_macros.toggle_fields_js(badge_extras.amount_extra, [badge_extras.shirt], off_values=["0"], toggle_required=True, + closest_hide_selector='.row' if not attendee.gets_staff_shirt else '.form-floating', + source_field_id=id_upgrade_prepend ~ "amount_extra") }} + {% endif %} {% else %}