Files
mayan-edms/mayan/apps/task_manager/views.py
Roberto Rosario 51026cc55e Fix task manager queue list view.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2017-09-07 23:12:02 -04:00

72 lines
2.0 KiB
Python

from __future__ import absolute_import, unicode_literals
from django.contrib import messages
from django.utils.translation import ugettext_lazy as _
from common.generics import SingleObjectListView
from .classes import CeleryQueue
from .permissions import permission_task_view
class QueueListView(SingleObjectListView):
extra_context = {
'hide_object': True,
'title': _('Background task queues'),
}
view_permission = permission_task_view
def get_object_list(self):
return CeleryQueue.all()
class QueueActiveTaskListView(SingleObjectListView):
view_permission = permission_task_view
def get_extra_context(self):
return {
'hide_object': True,
'object': self.get_object(),
'title': _('Active tasks in queue: %s') % self.get_object()
}
def get_object(self):
return CeleryQueue.get(queue_name=self.kwargs['queue_name'])
def get_object_list(self):
try:
return self.get_task_list()
except Exception as exception:
messages.error(
self.request,
_('Unable to retrieve task list; %s') % exception
)
return ()
def get_task_list(self):
return self.get_object().get_active_tasks()
class QueueScheduledTaskListView(QueueActiveTaskListView):
def get_extra_context(self):
return {
'hide_object': True,
'object': self.get_object(),
'title': _('Scheduled tasks in queue: %s') % self.get_object()
}
def get_task_list(self):
return self.get_object().get_scheduled_tasks()
class QueueReservedTaskListView(QueueActiveTaskListView):
def get_extra_context(self):
return {
'hide_object': True,
'object': self.get_object(),
'title': _('Reserved tasks in queue: %s') % self.get_object()
}
def get_task_list(self):
return self.get_object().get_reserved_tasks()