Files
mayan-edms/mayan/apps/task_manager/views.py
Roberto Rosario 95a1df8072 Backport common mixin and generics improvements
* Rename get_object_list to get_source_queryset.
* Add uniqueness validation to SingleObjectCreateView.
* Remove MultipleInstanceActionMixin.
* Backport MultipleObjectMixin improvements.
* Remove ObjectListPermissionFilterMixin.
* Add and improve tests.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
2019-05-06 02:07:35 -04:00

73 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 mayan.apps.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_source_queryset(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_source_queryset(self):
try:
return self.get_task_list()
except Exception as exception:
messages.error(
message=_(
'Unable to retrieve task list; %s'
) % exception, request=self.request
)
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()