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):
"""