From fe80f5fb788a1b7b4a001fa86b0edaf2016f8492 Mon Sep 17 00:00:00 2001 From: Mira Date: Thu, 26 Sep 2024 19:29:33 +0200 Subject: [PATCH] Utils for internal plugin (#4483) * Add full_code property to OrderPosition * Add inline "json_script" as supported data source for select2 * Use shorter OrderPosition.code --- src/pretix/base/models/orders.py | 8 ++++++++ src/pretix/static/pretixcontrol/js/ui/main.js | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index fadf1c972..1885923b2 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -2835,6 +2835,14 @@ class OrderPosition(AbstractPosition): (self.order.event.settings.change_allow_user_addons and ItemAddOn.objects.filter(base_item_id__in=[op.item_id for op in positions]).exists()) ) + @property + def code(self): + """ + A ticket code which is unique among all events of a single organizer, + built by the order code and the position number. + """ + return '{order_code}-{position}'.format(order_code=self.order.code, position=self.positionid) + class Transaction(models.Model): """ diff --git a/src/pretix/static/pretixcontrol/js/ui/main.js b/src/pretix/static/pretixcontrol/js/ui/main.js index a58dac812..ddccaf635 100644 --- a/src/pretix/static/pretixcontrol/js/ui/main.js +++ b/src/pretix/static/pretixcontrol/js/ui/main.js @@ -552,6 +552,16 @@ var form_handlers = function (el) { language: $("body").attr("data-select2-locale"), }); + el.find('[data-model-select2=json_script]').each(function() { + const selectedValue = this.value; + this.replaceChildren(); + $(this).select2({ + theme: "bootstrap", + language: $("body").attr("data-select2-locale"), + data: JSON.parse($(this.getAttribute('data-select2-src')).text()), + }).val(selectedValue).trigger('change'); + }); + el.find('input[data-typeahead-url]').each(function () { var $inp = $(this); if ($inp.data("ttTypeahead") || $inp.hasClass("tt-hint")) {