Improve TemplateWidget JavaScript

Move widget initialization from form to field.

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-11-12 01:31:22 -04:00
parent ba7284a9ae
commit ec7c3ef41f
4 changed files with 8 additions and 8 deletions

View File

@@ -20,3 +20,5 @@ class TemplateField(forms.CharField):
'Use Django\'s default templating language '
'(https://docs.djangoproject.com/en/%(django_version)s/ref/templates/builtins/)'
) % {'django_version': mayan.__django_version__}
self.widget.attrs['model'] = self.model
self.widget.attrs['data-model-variable'] = self.model_variable

View File

@@ -23,7 +23,3 @@ class DocumentTemplateSandboxForm(forms.Form):
model_variable=self.model_variable, required=False
)
self.order_fields(field_order=('template', 'result'))
self.fields['template'].widget.attrs['model'] = self.model
self.fields['template'].widget.attrs[
'data-model-variable'
] = self.model_variable

View File

@@ -1,10 +1,10 @@
'use strict';
jQuery(document).ready(function() {
var fieldNameID = '#id_template_model_property';
var fieldNameID = '[data-template-fields="model_property"]';
$(fieldNameID).change(function(event) {
var $idModelProperty = $(this);
var $idTemplate = $('#id_template_template');
var $idTemplate = $('[data-template-fields="template"]');
var templateCursorPosition = $idTemplate.prop('selectionStart');
var templateValue = $idTemplate.val();
var modelVariable = $idTemplate.data('model-variable');

View File

@@ -16,9 +16,11 @@ class TemplateWidget(NamedMultiWidget):
def __init__(self, attrs=None, **kwargs):
widgets = OrderedDict()
widgets['model_property'] = forms.widgets.Select()
widgets['model_property'] = forms.widgets.Select(
attrs={'data-template-fields': 'model_property'}
)
widgets['template'] = forms.widgets.Textarea(
attrs={'rows': 5}
attrs={'rows': 5, 'data-template-fields': 'template'}
)
super(TemplateWidget, self).__init__(
widgets=widgets, attrs=attrs, **kwargs