Refactor "receive row" and "declare credit" tools per buefy theme
This commit is contained in:
parent
ae76ceea04
commit
10e34b83ed
10 changed files with 313 additions and 89 deletions
|
@ -343,8 +343,9 @@ class Form(object):
|
|||
model_instance=None, model_class=None, appstruct=UNSPECIFIED, nodes={}, enums={}, labels={},
|
||||
assume_local_times=False, renderers=None,
|
||||
hidden={}, widgets={}, defaults={}, validators={}, required={}, helptext={}, focus_spec=None,
|
||||
action_url=None, cancel_url=None, use_buefy=None, component='tailbone-form'):
|
||||
|
||||
action_url=None, cancel_url=None, use_buefy=None, component='tailbone-form',
|
||||
vuejs_field_converters={},
|
||||
):
|
||||
self.fields = None
|
||||
if fields is not None:
|
||||
self.set_fields(fields)
|
||||
|
@ -380,6 +381,7 @@ class Form(object):
|
|||
self.cancel_url = cancel_url
|
||||
self.use_buefy = use_buefy
|
||||
self.component = component
|
||||
self.vuejs_field_converters = vuejs_field_converters or {}
|
||||
|
||||
@property
|
||||
def component_studly(self):
|
||||
|
@ -702,6 +704,9 @@ class Form(object):
|
|||
"""
|
||||
return self.helptext[key]
|
||||
|
||||
def set_vuejs_field_converter(self, field, converter):
|
||||
self.vuejs_field_converters[field] = converter
|
||||
|
||||
def render(self, template=None, **kwargs):
|
||||
if not template:
|
||||
if self.readonly and not self.use_buefy:
|
||||
|
@ -788,6 +793,11 @@ class Form(object):
|
|||
model value for the given field. This JS will be written as part of
|
||||
the overall response, to be interpreted on the client side.
|
||||
"""
|
||||
if field.name in self.vuejs_field_converters:
|
||||
convert = self.vuejs_field_converters[field.name]
|
||||
value = convert(field.cstruct)
|
||||
return json.dumps(value)
|
||||
|
||||
if isinstance(field.schema.typ, deform.FileData):
|
||||
# TODO: we used to always/only return 'null' here but hopefully
|
||||
# this also works, to show existing filename when present
|
||||
|
@ -807,6 +817,16 @@ class Form(object):
|
|||
except Exception as error:
|
||||
raise TailboneJSONFieldError(field.name, error)
|
||||
|
||||
def get_error_messages(self, field):
|
||||
if field.error:
|
||||
return field.error.messages()
|
||||
|
||||
error = self.make_deform_form().error
|
||||
if error:
|
||||
if isinstance(error, colander.Invalid):
|
||||
if error.node.name == field.name:
|
||||
return error.messages()
|
||||
|
||||
def messages_json(self, messages):
|
||||
dump = json.dumps(messages)
|
||||
dump = dump.replace("'", ''')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue