From 051b52bd4b3b15499bed1eee9a7ac0870623ef38 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Mon, 13 Feb 2017 17:37:16 -0600 Subject: [PATCH] Tweak form handling for sending a new message, for more customization --- tailbone/templates/master/create.mako | 8 +++-- tailbone/templates/messages/create.mako | 48 +++++++++++++++---------- tailbone/views/master.py | 7 ++-- tailbone/views/messages.py | 5 +++ 4 files changed, 46 insertions(+), 22 deletions(-) diff --git a/tailbone/templates/master/create.mako b/tailbone/templates/master/create.mako index 4ea7cadb..76bee07c 100644 --- a/tailbone/templates/master/create.mako +++ b/tailbone/templates/master/create.mako @@ -3,8 +3,12 @@ <%def name="title()">New ${model_title} -<%def name="head_tags()"> - ${parent.head_tags()} +<%def name="extra_javascript()"> + ${parent.extra_javascript()} + ${self.disable_button_js()} + + +<%def name="disable_button_js()"> + ${self.validate_message_js()} + + +<%def name="validate_message_js()"> + <%def name="extra_styles()"> diff --git a/tailbone/views/master.py b/tailbone/views/master.py index 5990ddee..6338f07d 100644 --- a/tailbone/views/master.py +++ b/tailbone/views/master.py @@ -132,11 +132,14 @@ class MasterView(View): # let save_create_form() return alternate object if necessary obj = self.save_create_form(form) or form.fieldset.model self.after_create(obj) - self.request.session.flash("{} has been created: {}".format( - self.get_model_title(), self.get_instance_title(obj))) + self.flash_after_create(obj) return self.redirect_after_create(obj) return self.render_to_response('create', {'form': form}) + def flash_after_create(self, obj): + self.request.session.flash("{} has been created: {}".format( + self.get_model_title(), self.get_instance_title(obj))) + def save_create_form(self, form): self.before_create(form) form.save() diff --git a/tailbone/views/messages.py b/tailbone/views/messages.py index 79ae7a70..2b3d556d 100644 --- a/tailbone/views/messages.py +++ b/tailbone/views/messages.py @@ -209,6 +209,7 @@ class MessagesView(MasterView): if self.creating: form.id = 'new-message' form.cancel_url = self.request.get_referrer(default=self.request.route_url('messages.inbox')) + form.create_label = "Send Message" return form def configure_fieldset(self, fs): @@ -288,6 +289,10 @@ class MessagesView(MasterView): message = form.fieldset.model message.sender = self.request.user + def flash_after_create(self, obj): + self.request.session.flash("Message has been sent: {}".format( + self.get_instance_title(obj))) + def filter_reply_recipient(self, user): return user.active