# -*- encoding : utf-8 -*- class Admin::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 @h2 = "Lister les newsletters éxistantes" @newsletter= Newsletter.find(:all, :order => "created_at DESC") end def new @h2 = "Creer une newsletter" @newsletter = Newsletter.new end def create @h2 = "Creer une newsletter" @newsletter = Newsletter.new(params.require(:newsletter).permit!) if @newsletter.save redirect_to :action => :index else render :action => :new end end def edit @h2 = "Editer une newsletter" @newsletter = Newsletter.find(params[:id]) end def update @h2 = "Editer une newsletter" @newsletter = Newsletter.find(params[:id]) if @newsletter.update_attributes(params.require(:newsletter).permit!) flash[:notice]= "La newsletter à été mise à jour" redirect_to :action => :index else render :action => :edit end end def show @newsletter = Newsletter.find(params[:id]) @options = {} render :layout => "mail" end def destroy @newsletter = Newsletter.find(params[:id]) @newsletter.destroy flash[:notice]= "La newsletter à été supprimé avec succès" redirect_to :action => :index end def send_test @newsletter = Newsletter.find(params[:id]) NewsletterMails.newsletter(@newsletter, params[:email]).deliver flash[:notice]= "La newsletter a bien été envoyée à l'email de test" redirect_to :action => :index end def send_helper(newsletter, email, options = nil) begin NewsletterMails.newsletter(newsletter, email, options).deliver if email and email != "" rescue @errors << "#{p.email}" end end def send_newsletter @errors = [] if params[:recipients_confirmed] @newsletter = Newsletter.find(params[:id]) params[:recipients_confirmed].each do |email| if Inscrit.find_by_email(email) send_helper(@newsletter, email, unsuscrib_public_inscrit_url(Inscrit.find_by_email(email).verify_key)) else send_helper(@newsletter, email) end end flash[:notice]= "La newsletter a bien été envoyée à toutes les adresses mail séléctionnée" redirect_to :action => :index end end def select_recipients @newsletter = Newsletter.find(params[:id]) if params[:recipients] @recipients = [] if params[:recipients][:inscrits] Inscrit.all(:conditions => {:enabled => true}).each do |a| @recipients << a.email end end if params[:recipients][:entreprises] Entreprise.all().each do |a| @recipients << a.email end end @recipients = @recipients.uniq.sort end end end