Refactor "edit printer settings" view for Label Profile

for sake of Buefy, but it was definitely using some old form patterns...
This commit is contained in:
Lance Edgar 2019-05-23 17:58:46 -05:00
parent a37b0229a0
commit 5907973d42
3 changed files with 86 additions and 73 deletions

View file

@ -37,6 +37,7 @@ from sqlalchemy.ext.associationproxy import AssociationProxy, ASSOCIATION_PROXY
from rattail.time import localtime
from rattail.util import prettify, pretty_boolean, pretty_hours, pretty_quantity
from rattail.core import UNSPECIFIED
import colander
import deform
@ -338,7 +339,7 @@ class Form(object):
auto_disable_cancel = True
def __init__(self, fields=None, schema=None, request=None, mobile=False, readonly=False, readonly_fields=[],
model_instance=None, model_class=None, nodes={}, enums={}, labels={}, renderers=None,
model_instance=None, model_class=None, appstruct=UNSPECIFIED, nodes={}, enums={}, labels={}, renderers=None,
hidden={}, widgets={}, defaults={}, validators={}, required={}, helptext={}, focus_spec=None,
action_url=None, cancel_url=None, use_buefy=None):
@ -358,6 +359,7 @@ class Form(object):
self.model_class = type(self.model_instance)
if self.model_class and self.fields is None:
self.set_fields(self.make_fields())
self.appstruct = appstruct
self.nodes = nodes or {}
self.enums = enums or {}
self.labels = labels or {}
@ -706,7 +708,12 @@ class Form(object):
# get initial form values from model instance
kwargs = {}
if self.model_instance:
# TODO: ugh, this is necessary to avoid some logic
# which assumes a ColanderAlchemy schema i think?
if self.appstruct is not UNSPECIFIED:
if self.appstruct:
kwargs['appstruct'] = self.appstruct
elif self.model_instance:
if self.model_class:
kwargs['appstruct'] = schema.dictify(self.model_instance)
else: