Skip to content
Extraits de code Groupes Projets
orgas_controller.rb 2,04 ko
Newer Older
  • Learn to ignore specific revisions
  • echarp's avatar
    echarp a validé
    # Groups life cycle
    class OrgasController < ApplicationController
    
      before_action :set_orga, except: [:index, :new, :create]
    
    echarp's avatar
    echarp a validé
      before_action :authenticate_user!, only: [:edit, :update, :destroy],
                                         unless: :check_secret
    
    echarp's avatar
    echarp a validé
    
      def index
        @search = Orga.search params[:q]
        @search.sorts = 'name' if @search.sorts.empty?
        @orgas = @search.result.page params[:page]
      end
    
    
      # GET /orgas/new
      def new
        @orga = Orga.new
      end
    
      # POST /orgas
      # POST /orgas.json
      def create
        @orga = Orga.new orga_params
        respond_to do |format|
    
    echarp's avatar
    echarp a validé
          if @orga.save
    
            format.html { redirect_to :root, notice: t('.ok') }
            # 201 means :created
            format.json { render action: 'show', status: 201, location: @orga }
          else
            format.html { render action: 'new' }
            # 422 means :unprocessable_entity
            format.json { render json: @orga.errors, status: 422 }
          end
        end
      end
    
    
    echarp's avatar
    echarp a validé
      def show
        @search = Orga.search params[:q]
    
        @events_future = Event.moderated.future.tag @orga.name
        @events_past = Event.moderated.past.tag @orga.name
      end
    
    
      # PATCH/PUT /orgas/1
      # PATCH/PUT /orgas/1.json
      def update
        respond_to do |format|
    
    echarp's avatar
    echarp a validé
          if @orga.update orga_params
    
            format.html { redirect_to @orga, notice: t('.ok') }
            format.json { head :no_content }
          else
            format.html { render action: 'edit' }
            # 422 means :unprocessable_entity
            format.json { render json: @orga.errors, status: 422 }
          end
        end
      end
    
    
    echarp's avatar
    echarp a validé
      private
    
      # Use callbacks to share common setup or constraints between actions.
      def set_orga
        @orga = Orga.find params[:id]
      end
    
    
      # Never trust parameters from the scary internet, only allow the white list
      # through
      def orga_params
        params.require(:orga)
          .permit :lock_version, :kind_id, :name, :city, :department, :region_id,
                  :url, :feed, :contact, :submitter
      end
    
    echarp's avatar
    echarp a validé
    
      # Check that you can only edit an existing event if you know its secret
      def check_secret
        !@orga.secret || @orga.secret == params[:secret]
      end
    
    echarp's avatar
    echarp a validé
    end