mmsc_app/app/controllers/admin/m_events_controller.rb
2020-07-23 00:04:14 +02:00

138 lines
3.1 KiB
Ruby

# -*- encoding : utf-8 -*-
class Admin::MEventsController < ApplicationController
layout "admin"
before_action :auth_admin
before_action :admin_space
def admin_space
@admin_space = "stocks"
end
def index
@m_events = MEvent.all
if params[:search][:circuit_id].to_s != ""
@m_events = @m_events.where(:circuit_id => params[:search][:circuit_id])
end
if params[:search][:organisateur_id].to_s != ""
@m_events = @m_events.where(:organisateur_id => params[:search][:organisateur_id])
end
if params[:search][:circuit_region_id].to_s != ""
@m_events = @m_events.where(:circuit_id => Circuit.where(:circuit_region_id => params[:search][:circuit_region_id]).ids)
end
date_regex = /^(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/](19|20)\d\d$/i
params[:start] = Date.today.beginning_of_year.strftime('%d/%m/%Y') if !params[:start]
if params[:start] and params[:start] =~ date_regex
#fsfds = sdfsfd
@start = Date.parse(params[:start]).beginning_of_day
params[:start]= @start.strftime('%d/%m/%Y')
else
@start = nil
end
if true
params[:stop] = Date.today.end_of_year.strftime('%d/%m/%Y') if !params[:stop]
if params[:stop].to_s != "" # and params[:stop] =~ date_regex
@stop = Date.parse(params[:stop]).end_of_day
params[:stop]= @stop.strftime('%d/%m/%Y')
else
@stop = nil
end
end
@m_events = @m_events.where("start_at >= ? or end_at >= ?", @start, @start) if @start
@m_events = @m_events.where("start_at <= ? or end_at <= ?", @stop.end_of_day, @stop.end_of_day) if @stop
@m_events = sort_by_sorting(@m_events, "id DESC")
respond_to do |format|
format.html{
params[:search][:per_page] = params[:search][:per_page] || 100
per_page = params[:search][:per_page]
page = (params[:page] and params[:page] != "") ? params[:page] : 1
@m_events = @m_events.page(page).per(per_page)
}
end
end
def show
@m_event = MEvent.find(params[:id])
end
def new
if params[:parent_id]
@m_event = MEvent.find(params[:parent_id]).dup
else
@m_event = MEvent.new(:m_event_type_title => "Roulage libre")
end
end
def edit
@m_event = MEvent.find(params[:id])
end
def create
@m_event = MEvent.new(params.require(:m_event).permit!)
if @m_event.save
else
render action: "new"
end
end
def update
@m_event = MEvent.find(params[:id])
if @m_event.update_attributes(params.require(:m_event).permit!)
else
render action: "edit"
end
end
def destroy
@m_event = MEvent.find(params[:id])
@m_event.destroy
end
def autocomplete
@m_events = MEvent.order("start_at").where("start_at <= ? and end_at >= ?", Date.parse(params[:date]), Date.parse(params[:date]))
respond_to do |format|
format.json { render json: @m_events.map{|me| {:id => me.id, :member_label => me.member_label}} }
end
end
end