hooks to create view
This commit is contained in:
parent
b678d45224
commit
ad7ceefddf
@ -53,7 +53,7 @@ def update_view(model_view, template):
|
||||
return inner
|
||||
|
||||
|
||||
def create_view(model_view, template):
|
||||
def create_view(model_view, template, post_add=None, post_create=None):
|
||||
def inner():
|
||||
if request.method == "GET":
|
||||
return render_template(template)
|
||||
@ -64,7 +64,12 @@ def create_view(model_view, template):
|
||||
serialized_form['uuid'] = str(uuid4())
|
||||
instance = model_view.model(**serialized_form)
|
||||
db.session.add(instance)
|
||||
if post_add is not None:
|
||||
post_add(instance)
|
||||
|
||||
db.session.commit()
|
||||
if post_create is not None:
|
||||
post_create(instance)
|
||||
flash("Created {}".format(model_view.model_name))
|
||||
return redirect(_next or request.referrer or url_for('home'))
|
||||
|
||||
@ -102,11 +107,11 @@ class ModelView(object):
|
||||
self.model_name = model.__name__.lower()
|
||||
self.model_name_pl = p.plural(self.model_name)
|
||||
|
||||
def register_create(self, list_template):
|
||||
def register_create(self, list_template, **kwargs):
|
||||
url = '/{}/create'.format(self.model_name_pl)
|
||||
self.app.add_url_rule(url, methods=["GET", "POST"],
|
||||
endpoint='create_{}'.format(self.model_name),
|
||||
view_func=create_view(self, list_template))
|
||||
view_func=create_view(self, list_template, **kwargs))
|
||||
|
||||
def register_list(self, list_template):
|
||||
url = '/{}'.format(self.model_name_pl)
|
||||
|
Loading…
Reference in New Issue
Block a user