Use TemplateField for smart links

Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-12-10 22:33:20 -04:00
parent 0b4c8242ee
commit 9d5c4c017d
3 changed files with 15 additions and 23 deletions

View File

@@ -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)
==================

View File

@@ -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', '<br>')
]
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', '<br>')
]
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:

View File

@@ -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(