Add widget support to SourceColumn

Allow passing a widget class to SourceColumn. This makes
using lambdas to render model column unnecesary and are
mostly removed too.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2018-12-22 05:35:31 -04:00
parent 360e756093
commit 64e1c6bb67
59 changed files with 450 additions and 402 deletions
+6 -20
View File
@@ -53,30 +53,16 @@ class MailerApp(MayanAppConfig):
MailerBackend.initialize()
SourceColumn(attribute='datetime', source=LogEntry)
SourceColumn(attribute='message', source=LogEntry)
SourceColumn(attribute='label', is_identifier=True, source=UserMailer)
SourceColumn(
source=LogEntry, label=_('Date and time'), attribute='datetime'
attribute='default', source=UserMailer, widget=TwoStateWidget
)
SourceColumn(
source=LogEntry, label=_('Message'), attribute='message'
)
SourceColumn(
source=UserMailer, label=_('Label'), attribute='label'
)
SourceColumn(
source=UserMailer, label=_('Default?'),
func=lambda context: TwoStateWidget(
state=context['object'].default
).render()
)
SourceColumn(
source=UserMailer, label=_('Enabled?'),
func=lambda context: TwoStateWidget(
state=context['object'].enabled
).render()
)
SourceColumn(
source=UserMailer, label=_('Label'), attribute='backend_label'
attribute='enabled', source=UserMailer, widget=TwoStateWidget
)
SourceColumn(attribute='backend_label', source=UserMailer)
ModelPermission.register(
model=Document, permissions=(
+2 -1
View File
@@ -20,7 +20,7 @@ logger = logging.getLogger(__name__)
class LogEntry(models.Model):
datetime = models.DateTimeField(
auto_now_add=True, editable=False, verbose_name=_('Date time')
auto_now_add=True, editable=False, verbose_name=_('Date and time')
)
message = models.TextField(
blank=True, editable=False, verbose_name=_('Message')
@@ -76,6 +76,7 @@ class UserMailer(models.Model):
property.
"""
return self.get_backend().label
backend_label.short_description = _('Backend label')
def dumps(self, data):
"""