Controlador para las propuestas ciudadanas
Creación de nueva propuesta ciudadana
# File app/controllers/proposals_controller.rb, line 98 def create @proposal = current_user.proposals.new(params[:proposal]) # @proposal.organization_id = Organization.find_by_tag_name("_gobierno_vasco") if @proposal.organization_id.blank? if @proposal.save email = Notifier.create_new_proposal(@proposal) Notifier.deliver(email) respond_to do |format| format.html do if request.xhr? render :action => "create", :layout => false else if @proposal.approved? flash[:notice] = t('proposals.gracias') else flash[:notice] = t('proposals.gracias_revisaremos') end redirect_to proposals_path(:s => "f") end end format.json do render :json => {:sequence_finished => true, :success_message => @proposal.approved? ? t('proposals.gracias') : t('proposals.gracias_revisaremos'), :refresh_controller => true}.to_json end end else respond_to do |format| format.html {render :action => "new"} format.json {render :json => {:error_message => @proposal.errors.inject('') {|messages, err| messages += err[1] + ". "}, :needs_auth => false}.to_json} end end end
# File app/controllers/proposals_controller.rb, line 143 def department @department = Department.find(params[:id]) @feed_title = t('proposals.feed_title', :name => @department.name) organization_ids = [@department.id] + @department.organization_ids @proposals = Proposals.approved_and_published_proposals.find :all, :conditions => "organization_id in (#{organization_ids.join(',')})", :order => 'published_at DESC', :limit => 10 render :action => "index.rss", :layout => false end
# File app/controllers/proposals_controller.rb, line 134 def image uploader = ImageUploader.cache_from_io!(request.body, params.delete(:qqfile)) @image = { :success => true, :image_cache_name => uploader.cache_name } render :text => @image.to_json and return end
Listado de propuestas
# File app/controllers/proposals_controller.rb, line 32 def index get_proposals respond_to do |format| format.html do if request.xhr? render :partial => '/shared/list_items', :locals => {:items => @proposals, :type => 'proposals'}, :layout => false else render end end format.floki {render :template => "mob_app/proposals.json", :layout => false, :content_type => "application/json"} format.rss do @feed_title = t('proposals.feed_title', :name => @context ? @context.name : t('site_name')) render :layout => false end end end
Formulario de nueva propuesta ciudadana
# File app/controllers/proposals_controller.rb, line 89 def new @proposal = Proposal.new(:area_id => params[:area_id]) respond_to do |format| format.html format.floki { render :action => 'new.floki', :content_type => 'application/json', :layout => false} end end
Vista de una propuesta
# File app/controllers/proposals_controller.rb, line 58 def show begin @proposal = Proposal.approved.published.find(params[:id]) rescue ActiveRecord::RecordNotFound @proposal = Proposal.find_by_id(params[:id].to_i) if @proposal.present? && !(logged_in? && (is_admin? || @proposal.user_id == current_user.id)) raise ActiveRecord::RecordNotFound and return elsif @proposal.nil? @debate = Debate.published.find(params[:id]) redirect_to debate_path(@debate) and return end end @parent = @proposal @comments = @proposal.comments.approved.paginate :page => params[:page], :per_page => 25 @arguments = @proposal.arguments.published.paginate :page => params[:page], :per_page => 50 if params[:n_id].present? notification = current_user.notifications.find(params[:n_id]) notification.read_at = Time.zone.now if notification.read_at.nil? notification.save end respond_to do |format| format.html { render } format.floki { render } end end
# File app/controllers/proposals_controller.rb, line 51 def summary @proposals = Proposal.approved.published.find(:all, :order => "published_at DESC", :limit => 2) @debates = Debate.published.translated.find(:all, :order => "published_at DESC", :limit => 2) render :layout => !request.xhr? end