Make list mode code its own mixin
Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
@@ -34,8 +34,8 @@ from .literals import (
|
||||
)
|
||||
from .mixins import (
|
||||
DeleteExtraDataMixin, DynamicFormViewMixin, ExtraContextMixin,
|
||||
FormExtraKwargsMixin, MultipleObjectMixin, ObjectActionMixin,
|
||||
ObjectListPermissionFilterMixin, ObjectNameMixin,
|
||||
FormExtraKwargsMixin, ListModeMixin, MultipleObjectMixin,
|
||||
ObjectActionMixin, ObjectListPermissionFilterMixin, ObjectNameMixin,
|
||||
ObjectPermissionCheckMixin, RedirectionMixin, ViewPermissionCheckMixin
|
||||
)
|
||||
from .settings import setting_paginate_by
|
||||
@@ -503,7 +503,7 @@ class SingleObjectDynamicFormEditView(DynamicFormViewMixin, SingleObjectEditView
|
||||
pass
|
||||
|
||||
|
||||
class SingleObjectListView(PaginationMixin, ViewPermissionCheckMixin, ObjectListPermissionFilterMixin, ExtraContextMixin, RedirectionMixin, ListView):
|
||||
class SingleObjectListView(ListModeMixin, PaginationMixin, ViewPermissionCheckMixin, ObjectListPermissionFilterMixin, ExtraContextMixin, RedirectionMixin, ListView):
|
||||
template_name = 'appearance/generic_list.html'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -522,18 +522,8 @@ class SingleObjectListView(PaginationMixin, ViewPermissionCheckMixin, ObjectList
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(SingleObjectListView, self).get_context_data(**kwargs)
|
||||
|
||||
if context.get(TEXT_LIST_AS_ITEMS_VARIABLE_NAME):
|
||||
default_mode = TEXT_CHOICE_ITEMS
|
||||
else:
|
||||
default_mode = TEXT_CHOICE_LIST
|
||||
|
||||
list_mode = self.request.GET.get(
|
||||
TEXT_LIST_AS_ITEMS_PARAMETER, default_mode
|
||||
)
|
||||
|
||||
context.update(
|
||||
{
|
||||
TEXT_LIST_AS_ITEMS_VARIABLE_NAME: list_mode == TEXT_CHOICE_ITEMS,
|
||||
TEXT_SORT_FIELD_VARIABLE_NAME: self.get_sort_field(),
|
||||
TEXT_SORT_ORDER_VARIABLE_NAME: self.get_sort_order(),
|
||||
'icon_sort': self.get_sort_icon(),
|
||||
|
||||
@@ -14,11 +14,15 @@ from mayan.apps.permissions import Permission
|
||||
|
||||
from .exceptions import ActionError
|
||||
from .forms import DynamicForm
|
||||
from .literals import (
|
||||
TEXT_CHOICE_ITEMS, TEXT_CHOICE_LIST, TEXT_LIST_AS_ITEMS_PARAMETER,
|
||||
TEXT_LIST_AS_ITEMS_VARIABLE_NAME
|
||||
)
|
||||
|
||||
__all__ = (
|
||||
'DeleteExtraDataMixin', 'DynamicFormViewMixin', 'ExtraContextMixin',
|
||||
'FormExtraKwargsMixin', 'MultipleObjectMixin', 'ObjectActionMixin',
|
||||
'ObjectListPermissionFilterMixin', 'ObjectNameMixin',
|
||||
'FormExtraKwargsMixin', 'ListModeMixin', 'MultipleObjectMixin',
|
||||
'ObjectActionMixin', 'ObjectListPermissionFilterMixin', 'ObjectNameMixin',
|
||||
'ObjectPermissionCheckMixin', 'RedirectionMixin',
|
||||
'ViewPermissionCheckMixin'
|
||||
)
|
||||
@@ -75,6 +79,27 @@ class FormExtraKwargsMixin(object):
|
||||
return result
|
||||
|
||||
|
||||
class ListModeMixin(object):
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(ListModeMixin, self).get_context_data(**kwargs)
|
||||
|
||||
if context.get(TEXT_LIST_AS_ITEMS_VARIABLE_NAME):
|
||||
default_mode = TEXT_CHOICE_ITEMS
|
||||
else:
|
||||
default_mode = TEXT_CHOICE_LIST
|
||||
|
||||
list_mode = self.request.GET.get(
|
||||
TEXT_LIST_AS_ITEMS_PARAMETER, default_mode
|
||||
)
|
||||
|
||||
context.update(
|
||||
{
|
||||
TEXT_LIST_AS_ITEMS_VARIABLE_NAME: list_mode == TEXT_CHOICE_ITEMS
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
|
||||
class MultipleInstanceActionMixin(object):
|
||||
# TODO: Deprecated, replace views using this with
|
||||
# MultipleObjectFormActionView or MultipleObjectConfirmActionView
|
||||
|
||||
Reference in New Issue
Block a user