Add Form.show_cancel flag, for hiding that button

also use fields from schema by default, if fields not provided
This commit is contained in:
Lance Edgar 2018-02-05 14:24:49 -06:00
parent 22d9981c2e
commit 6cc509f5b4
2 changed files with 6 additions and 1 deletions

View file

@ -321,6 +321,7 @@ class Form(object):
Base class for all forms. Base class for all forms.
""" """
update_label = "Save" update_label = "Save"
show_cancel = True
def __init__(self, fields=None, schema=None, request=None, readonly=False, readonly_fields=[], def __init__(self, fields=None, schema=None, request=None, readonly=False, readonly_fields=[],
model_instance=None, model_class=None, nodes={}, enums={}, labels={}, renderers=None, model_instance=None, model_class=None, nodes={}, enums={}, labels={}, renderers=None,
@ -331,6 +332,8 @@ class Form(object):
if fields is not None: if fields is not None:
self.set_fields(fields) self.set_fields(fields)
self.schema = schema self.schema = schema
if self.fields is None and self.schema:
self.set_fields([f.name for f in self.schema])
self.request = request self.request = request
self.readonly = readonly self.readonly = readonly
self.readonly_fields = set(readonly_fields or []) self.readonly_fields = set(readonly_fields or [])

View file

@ -76,7 +76,9 @@ ${h.csrf_token(request)}
## % if form.creating and form.allow_successive_creates: ## % if form.creating and form.allow_successive_creates:
## ${h.submit('create_and_continue', form.successive_create_label)} ## ${h.submit('create_and_continue', form.successive_create_label)}
## % endif ## % endif
${h.link_to("Cancel", form.cancel_url, class_='button autodisable')} % if getattr(form, 'show_cancel', True):
${h.link_to("Cancel", form.cancel_url, class_='button autodisable')}
% endif
</div> </div>
% endif % endif