Source code for wtfs.forms.user_manual

from onegov.form import Form
from onegov.form.fields import UploadField
from onegov.form.validators import FileSizeLimit
from onegov.form.validators import WhitelistedMimeType
from onegov.wtfs import _


from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from onegov.wtfs.models import UserManual


[docs] class UserManualForm(Form):
[docs] pdf = UploadField( label=_('PDF'), validators=[ WhitelistedMimeType({'application/pdf'}), FileSizeLimit(50 * 1024 * 1024) ] )
[docs] def update_model(self, model: 'UserManual') -> None: action = getattr(self.pdf, 'action', '') if action == 'delete': del model.pdf if action == 'replace': if self.pdf.data: model.pdf = self.pdf.file.read() # type:ignore
[docs] def apply_model(self, model: 'UserManual') -> None: if model.exists: content_length = model.content_length assert content_length is not None self.pdf.data = { 'filename': model.filename, 'size': content_length, 'mimetype': model.content_type }