accescible_app/app/controllers/admin/newsletters_controller.rb
Nicolas Bally d4484275e8 initial
2011-06-25 12:08:06 +02:00

141 lines
2.6 KiB
Ruby

# -*- encoding : utf-8 -*-
class Admin::NewslettersController < ApplicationController
before_filter :authenticate_admin!
layout "admin"
navigation :newsletters
def index
@newsletters = Newsletter.order('subject ASC')
if request.xhr?
render :layout => false
end
end
def new
@newsletter = Newsletter.new()
end
def create
@newsletter = Newsletter.new(params[:newsletter])
puts params[:newsletter][:subject]
if @newsletter.save
flash[:notice] = "La newsletter à bien été créé."
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[:newsletter])
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.subject, @newsletter.content).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])
if !params[:search]
params[:search] = {}
params[:search][:classe_in] = ['']
params[:search][:foyer_city_in] = ['']
end
params[:search].delete(:foyer_delegue_is_true) if params[:search][:foyer_delegue_is_true] and params[:search][:foyer_delegue_is_true] == 0
@search = Studient.search(params[:search])
@studients = @search.all
respond_to do |format|
format.html
format.js
end
end
def send_newsletter
@newsletter = Newsletter.find(params[:id])
@i = 0
if params[:confirmed_emails]
params[:confirmed_emails].uniq.each do |email|
puts "mail envoyé à "+email.to_s
General.send_newsletter(email,@newsletter.subject, @newsletter.content).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