135 lines
3.8 KiB
Ruby
Executable File
135 lines
3.8 KiB
Ruby
Executable File
# -*- encoding : utf-8 -*-
|
|
|
|
class NewslettersController < ApplicationController
|
|
layout "admin"
|
|
|
|
|
|
|
|
|
|
# require_permission 'newsletter.show'
|
|
# require_permission 'newsletter.add', :only => [:newsletter_new, :newsletter_create]
|
|
# require_permission 'newsletter.edit', :only => [:newsletter_edit, :newsletter_update]
|
|
# require_permission 'newsletter.delete', :only => [:newsletter_del]
|
|
# require_permission 'newsletter.send', :only => [:send_test, :send_newsletter, :select_recipients]
|
|
|
|
def index
|
|
redirect_to :action => :newsletter_list
|
|
end
|
|
|
|
def newsletter_new
|
|
@h2 = "Creer une newsletter"
|
|
@newsletter = Newsletter.new
|
|
end
|
|
|
|
def newsletter_create
|
|
@h2 = "Creer une newsletter"
|
|
|
|
@newsletter = Newsletter.new(params[:newsletter])
|
|
|
|
if @newsletter.save
|
|
to_my_log("Ajout de la newsletter "+@newsletter.id.to_s)
|
|
flash[:notice]= t('rest.create_message')
|
|
redirect_to :action => :newsletter_list
|
|
else
|
|
render :action => :newsletter_new
|
|
end
|
|
end
|
|
|
|
def newsletter_edit
|
|
@h2 = "Editer une newsletter"
|
|
@newsletter = Newsletter.find(params[:id])
|
|
end
|
|
|
|
def newsletter_update
|
|
@h2 = "Editer une newsletter"
|
|
@newsletter = Newsletter.find(params[:id])
|
|
if @newsletter.update_attributes(params[:newsletter])
|
|
flash[:notice]= "La newsletter à été mise à jour"
|
|
to_my_log("Modification de la newsletter "+@newsletter.id.to_s)
|
|
redirect_to :action => :newsletter_list
|
|
else
|
|
render :action => :newsletter_edit
|
|
end
|
|
end
|
|
|
|
def newsletter_list
|
|
@h2 = "Lister les newsletters éxistantes"
|
|
@newsletter= Newsletter.find(:all, :order => "created_at DESC")
|
|
end
|
|
|
|
def newsletter_del
|
|
@newsletter = Newsletter.find(params[:id])
|
|
@newsletter.destroy
|
|
to_my_log("Suppression de la newsletter "+@newsletter.id.to_s)
|
|
flash[:notice]= "La newsletter à été supprimé avec succès"
|
|
redirect_to :action => :newsletter_list
|
|
|
|
end
|
|
|
|
|
|
def send_test
|
|
|
|
@newsletter = Newsletter.find(params[:id])
|
|
Newsmailer.deliver_newsletter(@newsletter, params[:email])
|
|
|
|
to_my_log("Envoi de la newsletter "+@newsletter.id.to_s+" en test")
|
|
|
|
|
|
flash[:notice]= "La newsletter a bien été envoyée à l'email de test"
|
|
redirect_to :action => :newsletter_list
|
|
end
|
|
|
|
|
|
|
|
def send_newsletter
|
|
|
|
@newsletter = Newsletter.find(params[:id])
|
|
if params[:confirmed_groups]
|
|
PeopleNewsgroup.all(:conditions => {:newsgroup_id => params[:confirmed_groups]}).each do |pn|
|
|
p =pn.person
|
|
Newsmailer.deliver_newsletter(@newsletter, p.email) if p.email and p.email != "" and p.newsletter
|
|
end
|
|
elsif params[:confirmed_sheets]
|
|
|
|
|
|
|
|
@sheets = Sheet.find(:all, :conditions => {:id => params[:confirmed_sheets]})
|
|
|
|
@persons = Person.find(:all, :conditions => {:sheet_id => params[:confirmed_sheets], :newsletter => true})
|
|
|
|
@persons.each do |p|
|
|
Newsmailer.deliver_newsletter(@newsletter, p.email) if p.email and p.email != ""
|
|
end
|
|
|
|
@sheets.each do |s|
|
|
Newsmailer.deliver_newsletter(@newsletter, s.other_mail) if s.other_mail and s.other_mail != ""
|
|
end
|
|
|
|
|
|
end
|
|
|
|
to_my_log("Envoi de la newsletter "+@newsletter.id.to_s+" à une selection d'adresses mail")
|
|
flash[:notice]= "La newsletter a bien été envoyée à toutes les adresses mail séléctionnée"
|
|
redirect_to :action => :newsletter_list
|
|
|
|
end
|
|
|
|
def select_recipients
|
|
@newsletter = Newsletter.find(params[:id])
|
|
if params[:sheet_filter]
|
|
@sheets = Sheet.search_by_params(params[:sheet_filter])
|
|
|
|
end
|
|
|
|
respond_to do |format|
|
|
format.html # index.html.erb
|
|
format.js { render(:update){|page| page.replace_html 'sheets_selecteds', :partial => "sheets_selecteds", :object => @sheets} }
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|