From ae2297b0bd813162c324df2afdff15b2e5f53279 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 5 Apr 2018 07:19:39 -0400 Subject: [PATCH] Update the tag widget for Django 1.11. Signed-off-by: Roberto Rosario --- .../static/appearance/js/mayan_app.js | 6 ++--- .../tags/forms/widgets/tag_select_option.html | 2 ++ mayan/apps/tags/widgets.py | 27 +++++++------------ 3 files changed, 15 insertions(+), 20 deletions(-) create mode 100644 mayan/apps/tags/templates/tags/forms/widgets/tag_select_option.html diff --git a/mayan/apps/appearance/static/appearance/js/mayan_app.js b/mayan/apps/appearance/static/appearance/js/mayan_app.js index 7748ed6558..148d0e01c8 100644 --- a/mayan/apps/appearance/static/appearance/js/mayan_app.js +++ b/mayan/apps/appearance/static/appearance/js/mayan_app.js @@ -59,16 +59,16 @@ App.MultiObjectFormProcess = function ($form, options) { App.tagSelectionTemplate = function (tag, container) { var $tag = $( - ' ' + tag.text + '' + ' ' + tag.text + '' ); - container[0].style.background = tag.element.style.color; + container[0].style.background = tag.element.dataset.color; return $tag; } App.tagResultTemplate = function (tag) { if (!tag.element) { return ''; } var $tag = $( - ' ' + tag.text + '' + ' ' + tag.text + '' ); return $tag; } diff --git a/mayan/apps/tags/templates/tags/forms/widgets/tag_select_option.html b/mayan/apps/tags/templates/tags/forms/widgets/tag_select_option.html new file mode 100644 index 0000000000..8dabad9809 --- /dev/null +++ b/mayan/apps/tags/templates/tags/forms/widgets/tag_select_option.html @@ -0,0 +1,2 @@ +{% include 'django/forms/widgets/select_option.html' %} + diff --git a/mayan/apps/tags/widgets.py b/mayan/apps/tags/widgets.py index 4999c713c9..9b1e55fe4e 100644 --- a/mayan/apps/tags/widgets.py +++ b/mayan/apps/tags/widgets.py @@ -11,29 +11,22 @@ from .permissions import permission_tag_view class TagFormWidget(forms.SelectMultiple): + option_template_name = 'tags/forms/widgets/tag_select_option.html' + def __init__(self, *args, **kwargs): self.queryset = kwargs.pop('queryset') return super(TagFormWidget, self).__init__(*args, **kwargs) - def render_option(self, selected_choices, option_value, option_label): - if option_value is None: - option_value = '' - option_value = force_text(option_value) - if option_value in selected_choices: - selected_html = mark_safe(' selected="selected"') - if not self.allow_multiple_selected: - # Only allow for a single selection. - selected_choices.remove(option_value) - else: - selected_html = '' - return format_html( - '', - self.queryset.get(pk=option_value).color, - option_value, - selected_html, - force_text(option_label) + def create_option(self, name, value, label, selected, index, subindex=None, attrs=None): + result = super(TagFormWidget, self).create_option( + name=name, value=value, label=label, selected=selected, + index=index, subindex=subindex, attrs=attrs ) + result['attrs']['data-color'] = self.queryset.get(pk=value).color + + return result + def widget_document_tags(document, user): """