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(