From 10ec8bfd446ae0b2e31cf04ba9f3c4444567856d Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Mon, 11 Dec 2017 15:30:50 +0100 Subject: [PATCH] Add support for descriptive texts over m2m checkboxes This allows the assignment of "hover mouse to show"-descriptions for m2m fields with multiple checkboxes. --- pgweb/util/helpers.py | 6 ++++++ templates/base/form.html | 14 +++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pgweb/util/helpers.py b/pgweb/util/helpers.py index b24885bf..f553e79b 100644 --- a/pgweb/util/helpers.py +++ b/pgweb/util/helpers.py @@ -58,10 +58,16 @@ def simple_form(instancetype, itemid, request, formclass, formtemplate='base/for else: markdownfields = None + if hasattr(form, 'described_checkboxes'): + described_checkboxes = form.described_checkboxes + else: + described_checkboxes = None + return render_to_response(formtemplate, { 'form': form, 'formitemtype': instance._meta.verbose_name, 'markdownfields': markdownfields, + 'described_checkboxes': described_checkboxes, 'form_intro': hasattr(form, 'form_intro') and form.form_intro or None, 'toggle_fields': hasattr(form, 'toggle_fields') and form.toggle_fields or None, 'jquery': hasattr(form, 'jquery') and form.jquery or None, diff --git a/templates/base/form.html b/templates/base/form.html index 87f1c6e4..6ec2315e 100644 --- a/templates/base/form.html +++ b/templates/base/form.html @@ -44,7 +44,7 @@ {% block extrahead %} {{ block.super }} -{%if toggle_fields or jquery %} +{%if toggle_fields or described_checkboxes or jquery %} {%endif%} {%if markdownfields%} @@ -56,6 +56,18 @@ {%for mdf in markdownfields %} attach_showdown_preview('id_{{mdf}}', 0); {%endfor%} + {%for cbf, descs in described_checkboxes.items%} +{%comment%}more than a little ugly, but django uses a sequence and not the id for the labels{%endcomment%} + var descs={ +{%for k,v in descs %} + '{{k}}': '{{v|escapejs}}', +{%endfor%} + }; + $('ul#id_{{cbf}} li').each(function (i,e) { + var id = $(e).find('input[type=checkbox]')[0].value; + e.title=descs[id]; + }); + {%endfor%} } {%if toggle_fields %} -- 2.39.5