From f6cfaff63e8aad8ec40a989bdd2d1a722c9076d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laur=C3=A9line=20Gu=C3=A9rin?= Date: Fri, 13 Jan 2023 16:39:09 +0100 Subject: [PATCH] wcs: display card variable in the link form (#72624) --- combo/manager/forms.py | 7 +++++++ combo/manager/static/js/combo.manager.js | 7 +++++++ .../templates/combo/page_linked_card.html | 18 ++++++++++++++++++ combo/manager/views.py | 1 + 4 files changed, 33 insertions(+) create mode 100644 combo/manager/templates/combo/page_linked_card.html diff --git a/combo/manager/forms.py b/combo/manager/forms.py index 950fc4ac..8beae557 100644 --- a/combo/manager/forms.py +++ b/combo/manager/forms.py @@ -23,6 +23,7 @@ from django.core.exceptions import ValidationError from django.forms import formset_factory from django.template import Template, TemplateSyntaxError from django.template.loader import TemplateDoesNotExist, get_template +from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ from combo import utils @@ -196,6 +197,12 @@ class PageEditLinkedCardForm(forms.ModelForm): card_models = get_wcs_options('/api/cards/@list') self.fields['carddef_reference'].choices = [('', '-----')] + card_models + self.help_texts = {} + for card_model in card_models: + sub_slug = card_model[0].split(':')[1].replace('-', '_') + self.help_texts[card_model[0]] = mark_safe( + _('The card identifier will be available in the variable %s_id.') % sub_slug + ) if self.instance.sub_slug: result = get_wcs_matching_card_model(self.instance.sub_slug) diff --git a/combo/manager/static/js/combo.manager.js b/combo/manager/static/js/combo.manager.js index 4112d543..447a6d94 100644 --- a/combo/manager/static/js/combo.manager.js +++ b/combo/manager/static/js/combo.manager.js @@ -456,6 +456,13 @@ $(function() { $('#id_form-' + form_num + '-value').val(''); total_form.val(form_num + 1); }) + + $(document).on('change', '#linked-card-form #id_carddef_reference', function () { + $('#linked-card-variable span').hide(); + if ($(this).val()) { + $('#linked-card-variable span[data-key="' + $(this).val() + '"]').show(); + } + }); }); diff --git a/combo/manager/templates/combo/page_linked_card.html b/combo/manager/templates/combo/page_linked_card.html new file mode 100644 index 00000000..13c6c472 --- /dev/null +++ b/combo/manager/templates/combo/page_linked_card.html @@ -0,0 +1,18 @@ +{% extends "combo/page_add.html" %} +{% load i18n %} + +{% block content %} +
+ {% csrf_token %} + {{ form.as_p }} +

+ {% for k, v in form.help_texts.items %} + {{ v }} + {% endfor %} +

+
+ + {% trans 'Cancel' %} +
+
+{% endblock %} diff --git a/combo/manager/views.py b/combo/manager/views.py index 084ebe9e..0231b6f0 100644 --- a/combo/manager/views.py +++ b/combo/manager/views.py @@ -343,6 +343,7 @@ page_edit_slug = PageEditSlugView.as_view() class PageEditLinkedCardView(PageEditView): form_class = PageEditLinkedCardForm comment = _('changed linked card') + template_name = 'combo/page_linked_card.html' page_edit_linked_card = PageEditLinkedCardView.as_view()