Files
mayan-edms/mayan/apps/checkouts/forms.py
Roberto Rosario 456c322c19 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>
2019-04-11 18:03:53 -04:00

64 lines
2.0 KiB
Python

from __future__ import unicode_literals
from django import forms
from django.utils.translation import ugettext_lazy as _
from mayan.apps.common.forms import DetailForm
from .literals import STATE_LABELS
from .models import DocumentCheckout
from .widgets import SplitTimeDeltaWidget
class DocumentCheckoutForm(forms.ModelForm):
class Meta:
fields = ('expiration_datetime', 'block_new_version')
model = DocumentCheckout
widgets = {
'expiration_datetime': SplitTimeDeltaWidget()
}
class DocumentCheckoutDefailForm(DetailForm):
def __init__(self, *args, **kwargs):
instance = kwargs['instance']
extra_fields = (
{
'label': _('Document status'),
'field': lambda instance: STATE_LABELS[
instance.get_check_out_state()
]
},
)
if instance.is_checked_out():
checkout_info = instance.get_check_out_info()
extra_fields += (
{
'label': _('User'),
'field': lambda instance: checkout_info.user.get_full_name() or checkout_info.user
},
{
'label': _('Check out time'),
'field': lambda instance: checkout_info.checkout_datetime,
'widget': forms.widgets.DateTimeInput
},
{
'label': _('Check out expiration'),
'field': lambda instance: checkout_info.expiration_datetime,
'widget': forms.widgets.DateTimeInput
},
{
'label': _('New versions allowed?'),
'field': lambda instance: _('Yes') if not checkout_info.block_new_version else _('No')
},
)
kwargs['extra_fields'] = extra_fields
super(DocumentCheckoutDefailForm, self).__init__(*args, **kwargs)
class Meta:
fields = ()
model = DocumentCheckout