Files
mayan-edms/mayan/apps/task_manager/apps.py
Roberto Rosario 64e1c6bb67 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>
2018-12-22 05:35:31 -04:00

85 lines
2.7 KiB
Python

from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from mayan.apps.common import (
MayanAppConfig, menu_object, menu_secondary, menu_tools
)
from mayan.apps.common.widgets import TwoStateWidget
from mayan.apps.navigation import SourceColumn
from .classes import CeleryQueue, Task
from .links import (
link_queue_list, link_queue_active_task_list,
link_queue_scheduled_task_list, link_queue_reserved_task_list,
link_task_manager
)
class TaskManagerApp(MayanAppConfig):
app_namespace = 'task_manager'
app_url = 'task_manager'
has_tests = True
name = 'mayan.apps.task_manager'
verbose_name = _('Task manager')
def ready(self):
super(TaskManagerApp, self).ready()
SourceColumn(
source=CeleryQueue, label=_('Label'), attribute='label'
)
SourceColumn(
source=CeleryQueue, label=_('Name'), attribute='name'
)
SourceColumn(
attribute='is_default_queue', label=_('Default queue?'),
source=CeleryQueue, widget=TwoStateWidget
)
SourceColumn(
attribute='is_transient', label=_('Is transient?'),
source=CeleryQueue, widget=TwoStateWidget
)
SourceColumn(
source=Task, label=_('Type'), attribute='task_type'
)
SourceColumn(
source=Task, label=_('Start time'), attribute='get_time_started'
)
SourceColumn(
source=Task, label=_('Host'),
func=lambda context: context['object'].kwargs['hostname']
)
#SourceColumn(
# source=Task, label=_('Acknowledged'),
# func=lambda context: TwoStateWidget(
# state=context['object'].kwargs['acknowledged']
# ).render()
#)
SourceColumn(
source=Task, label=_('Arguments'),
func=lambda context: context['object'].kwargs['args']
)
SourceColumn(
source=Task, label=_('Keyword arguments'),
func=lambda context: context['object'].kwargs['kwargs']
)
SourceColumn(
source=Task, label=_('Worker process ID'),
func=lambda context: context['object'].kwargs['worker_pid']
)
menu_object.bind_links(
links=(
link_queue_active_task_list, link_queue_scheduled_task_list,
link_queue_reserved_task_list,
), sources=(CeleryQueue,)
)
menu_secondary.bind_links(
links=(link_queue_list,),
sources=(CeleryQueue, Task, 'task_manager:queue_list')
)
menu_tools.bind_links(links=(link_task_manager,))