diff --git a/HISTORY.rst b/HISTORY.rst index f5dfaec863..f892866b19 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -16,6 +16,7 @@ - TemplateField shows the available variable in the help text automatically. - Use TemplateField for the web link template. +- Use TemplateField for smart links. 3.3.4 (2019-12-09) ================== diff --git a/mayan/apps/linking/forms.py b/mayan/apps/linking/forms.py index 78ce42d758..12ee5dfb71 100644 --- a/mayan/apps/linking/forms.py +++ b/mayan/apps/linking/forms.py @@ -6,6 +6,7 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.common.classes import ModelField, ModelProperty from mayan.apps.documents.models import Document +from mayan.apps.templating.fields import TemplateField from .models import SmartLink, SmartLinkCondition @@ -13,13 +14,10 @@ from .models import SmartLink, SmartLinkCondition class SmartLinkForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(SmartLinkForm, self).__init__(*args, **kwargs) - self.fields['dynamic_label'].help_text = ' '.join( - [ - force_text(self.fields['dynamic_label'].help_text), - ModelProperty.get_help_text_for( - model=Document, show_name=True - ).replace('\n', '
') - ] + self.fields['dynamic_label'] = TemplateField( + initial_help_text=self.fields['dynamic_label'].help_text, + label=self.fields['dynamic_label'].label, model=Document, + model_variable='document', required=False ) class Meta: @@ -35,13 +33,10 @@ class SmartLinkConditionForm(forms.ModelForm): model=Document, ), label=_('Foreign document field') ) - self.fields['expression'].help_text = ' '.join( - [ - force_text(self.fields['expression'].help_text), - ModelProperty.get_help_text_for( - model=Document, show_name=True - ).replace('\n', '
') - ] + self.fields['expression'] = TemplateField( + initial_help_text=self.fields['expression'].help_text, + label=self.fields['expression'].label, model=Document, + model_variable='document', required=False ) class Meta: diff --git a/mayan/apps/linking/models.py b/mayan/apps/linking/models.py index dc95cad648..5067a89c68 100644 --- a/mayan/apps/linking/models.py +++ b/mayan/apps/linking/models.py @@ -28,10 +28,8 @@ class SmartLink(models.Model): ) dynamic_label = models.CharField( blank=True, max_length=96, help_text=_( - 'Enter a template to render. ' - 'Use Django\'s default templating language ' - '(https://docs.djangoproject.com/en/1.11/ref/templates/builtins/). ' - 'The {{ document }} context variable is available.' + 'Use this field to show a unique label depending on the ' + 'document from which the smart link is being accessed.' ), verbose_name=_('Dynamic label') ) enabled = models.BooleanField(default=True, verbose_name=_('Enabled')) @@ -155,7 +153,7 @@ class SmartLink(models.Model): class ResolvedSmartLink(SmartLink): """ Proxy model to represent an already resolved smart link. Used for easier - colums registration. + columns registration. """ class Meta: proxy = True @@ -186,10 +184,8 @@ class SmartLinkCondition(models.Model): operator = models.CharField(choices=OPERATOR_CHOICES, max_length=16) expression = models.TextField( help_text=_( - 'Enter a template to render. ' - 'Use Django\'s default templating language ' - '(https://docs.djangoproject.com/en/1.11/ref/templates/builtins/). ' - 'The {{ document }} context variable is available.' + 'The expression using document properties to be evaluated ' + 'against the foreign document field.' ), verbose_name=_('Expression') ) negated = models.BooleanField(