Prevent invalid newsletters from being sent

Why:

Newsletters without a valid user segment can't be sent since there is no
recipient user email list.

How:

* Hiding the send button at the form
* Preventing an invalid newsletter from being delivered at the controller
This commit is contained in:
Bertocq
2018-02-21 01:06:09 +01:00
parent 38f7a222f5
commit f34d6c1c1d
2 changed files with 11 additions and 5 deletions

View File

@@ -46,11 +46,16 @@ class Admin::NewslettersController < Admin::BaseController
def deliver
@newsletter = Newsletter.find(params[:id])
Mailer.newsletter(@newsletter).deliver_later
@newsletter.update(sent_at: Time.current)
if @newsletter.valid?
Mailer.newsletter(@newsletter).deliver_later
@newsletter.update(sent_at: Time.current)
flash[:notice] = t("admin.newsletters.send_success")
else
flash[:error] = t("admin.segment_recipient.invalid_recipients_segment")
end
redirect_to [:admin, @newsletter], notice: t("admin.newsletters.send_success")
redirect_to [:admin, @newsletter]
end
private