ballalama3_app/app/controllers/admin/newsletters_controller.rb
Nicolas Bally 1a045e278a suite
2017-01-05 11:20:16 +01:00

137 lines
2.4 KiB
Ruby

# -*- encoding : utf-8 -*-
class Admin::NewslettersController < ApplicationController
before_filter :auth_admin
layout "admin"
def index
@newsletters = Newsletter.order('created_at DESC')
if request.xhr?
render :layout => false
end
end
def new
@newsletter = Newsletter.new()
end
def create
@newsletter = Newsletter.new(params.require(:newsletter).permit!)
puts params[:newsletter][:subject]
if @newsletter.save
flash[:notice] = "La newsletter à bien été créé."
@newsletters = Newsletter.order('created_at DESC')
respond_to do |format|
format.js
format.html{ redirect_to admin_newsletters_path}
end
else
respond_to do |format|
format.js { render :action => :new}
end
end
end
def edit
@newsletter = Newsletter.find(params[:id])
end
def update
@newsletter = Newsletter.find(params[:id])
if @newsletter.update_attributes(params.require(:newsletter).permit!)
flash[:notice] = "La newsletter à bien été modifié."
respond_to do |format|
format.html { redirect_to(admin_newsletters_path()) }
format.js
end
else
respond_to do |format|
format.html { render :action => :edit}
format.js { render :action => :edit}
end
end
end
def destroy
@newsletter = Newsletter.find(params[:id])
@newsletter.destroy
flash[:notice] = "La newsletter à bien été supprimé."
end
def send_test
@newsletter = Newsletter.find(params[:id])
@email = params[:email].to_s
General.send_newsletter(@email,@newsletter).deliver
redirect_to(admin_newsletters_path, :notice => "La newsletter a bien été envoyée à l'email de test")
end
def select_recipients
@newsletter = Newsletter.find(params[:id])
@studients = Registrant.where(:enabled => true).all
respond_to do |format|
format.html
format.js
end
end
def send_newsletter
@newsletter = Newsletter.find(params[:id])
@i = 0
if params[:confirmed_ids]
@registrants = Registrant.find( params[:confirmed_ids])
@registrants.each do |registrant|
General.send_newsletter(registrant,@newsletter).deliver
@i +=1
end
end
@newsletter.sended = true
@newsletter.send_at = Time.now
@newsletter.save
redirect_to(admin_newsletters_path, :notice => "La newsletter a la séléction d'emails ("+@i.to_s+" envois.)")
end
end