Move add_to_class functions to their own module
* The new module is called methods.py and found on each app. * Add keyword arguments to add_to_class instances. * Remove catch all exception handling for the check in and check out views. * Improve checkouts tests code reducing redundant code. Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -21,13 +21,17 @@ from .events import (
|
||||
)
|
||||
from .handlers import check_new_version_creation
|
||||
from .links import (
|
||||
link_checkin_document, link_checkout_document, link_checkout_info,
|
||||
link_checkout_list
|
||||
link_check_in_document, link_check_out_document, link_check_out_info,
|
||||
link_check_out_list
|
||||
)
|
||||
from .literals import CHECK_EXPIRED_CHECK_OUTS_INTERVAL
|
||||
from .methods import (
|
||||
method_check_in, method_get_check_out_info, method_get_check_out_state,
|
||||
method_is_checked_out
|
||||
)
|
||||
from .permissions import (
|
||||
permission_document_checkin, permission_document_checkin_override,
|
||||
permission_document_checkout, permission_document_checkout_detail_view
|
||||
permission_document_check_in, permission_document_check_in_override,
|
||||
permission_document_check_out, permission_document_check_out_detail_view
|
||||
)
|
||||
from .queues import * # NOQA
|
||||
from .tasks import task_check_expired_check_outs # NOQA
|
||||
@@ -52,29 +56,15 @@ class CheckoutsApp(MayanAppConfig):
|
||||
app_label='documents', model_name='DocumentVersion'
|
||||
)
|
||||
|
||||
DocumentCheckout = self.get_model('DocumentCheckout')
|
||||
|
||||
Document.add_to_class(name='check_in', value=method_check_in)
|
||||
Document.add_to_class(
|
||||
'check_in',
|
||||
lambda document, user=None: DocumentCheckout.objects.check_in_document(document, user)
|
||||
name='get_check_out_info', value=method_get_check_out_info
|
||||
)
|
||||
Document.add_to_class(
|
||||
'checkout_info',
|
||||
lambda document: DocumentCheckout.objects.document_checkout_info(
|
||||
document
|
||||
)
|
||||
name='get_check_out_state', value=method_get_check_out_state
|
||||
)
|
||||
Document.add_to_class(
|
||||
'checkout_state',
|
||||
lambda document: DocumentCheckout.objects.document_checkout_state(
|
||||
document
|
||||
)
|
||||
)
|
||||
Document.add_to_class(
|
||||
'is_checked_out',
|
||||
lambda document: DocumentCheckout.objects.is_document_checked_out(
|
||||
document
|
||||
)
|
||||
name='is_checked_out', value=method_is_checked_out
|
||||
)
|
||||
|
||||
ModelEventType.register(
|
||||
@@ -86,10 +76,10 @@ class CheckoutsApp(MayanAppConfig):
|
||||
|
||||
ModelPermission.register(
|
||||
model=Document, permissions=(
|
||||
permission_document_checkout,
|
||||
permission_document_checkin,
|
||||
permission_document_checkin_override,
|
||||
permission_document_checkout_detail_view
|
||||
permission_document_check_out,
|
||||
permission_document_check_in,
|
||||
permission_document_check_in_override,
|
||||
permission_document_check_out_detail_view
|
||||
)
|
||||
)
|
||||
|
||||
@@ -123,13 +113,13 @@ class CheckoutsApp(MayanAppConfig):
|
||||
widget=DashboardWidgetTotalCheckouts, order=-1
|
||||
)
|
||||
|
||||
menu_facet.bind_links(links=(link_checkout_info,), sources=(Document,))
|
||||
menu_main.bind_links(links=(link_checkout_list,), position=98)
|
||||
menu_facet.bind_links(links=(link_check_out_info,), sources=(Document,))
|
||||
menu_main.bind_links(links=(link_check_out_list,), position=98)
|
||||
menu_sidebar.bind_links(
|
||||
links=(link_checkout_document, link_checkin_document),
|
||||
links=(link_check_out_document, link_check_in_document),
|
||||
sources=(
|
||||
'checkouts:checkout_info', 'checkouts:checkout_document',
|
||||
'checkouts:checkin_document'
|
||||
'checkouts:check_out_info', 'checkouts:check_out_document',
|
||||
'checkouts:check_in_document'
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user