mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Add enabled to event_schedules
To show scheduled events that have been cancelled/withdrawn as 'cancelled', and consequently also show when an event is their replacement. admin/schedules#show does not show events that were scheduled and then cancelled/withdrawn, however a record in event_schedules exists for those events, but event_schedule.enabled = false
This commit is contained in:
parent
4409610a89
commit
4289f699ac
6 changed files with 35 additions and 2 deletions
|
|
@ -124,6 +124,15 @@ module Admin
|
||||||
|
|
||||||
def cancel
|
def cancel
|
||||||
update_state(:cancel, 'Event canceled!')
|
update_state(:cancel, 'Event canceled!')
|
||||||
|
selected_schedule = @event.program.selected_schedule
|
||||||
|
event_schedule = EventSchedule.unscoped.where(event: @event).find_by(schedule: selected_schedule) if selected_schedule
|
||||||
|
Rails.logger.debug "schedule: #{selected_schedule.inspect} and event_schedule #{event_schedule.inspect}"
|
||||||
|
if selected_schedule && event_schedule
|
||||||
|
event_schedule.enabled = false
|
||||||
|
event_schedule.save
|
||||||
|
else
|
||||||
|
@event.event_schedules.destroy_all
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def reject
|
def reject
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,15 @@ class ProposalsController < ApplicationController
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@event.withdraw
|
@event.withdraw
|
||||||
|
selected_schedule = @event.program.selected_schedule
|
||||||
|
event_schedule = @event.event_schedules.find_by(schedule: selected_schedule) if selected_schedule
|
||||||
|
Rails.logger.debug "schedule: #{selected_schedule.inspect} and event_schedule #{event_schedule.inspect}"
|
||||||
|
if selected_schedule && event_schedule
|
||||||
|
event_schedule.enabled = false
|
||||||
|
event_schedule.save
|
||||||
|
else
|
||||||
|
@event.event_schedules.destroy_all
|
||||||
|
end
|
||||||
rescue Transitions::InvalidTransition
|
rescue Transitions::InvalidTransition
|
||||||
redirect_to :back, error: "Event can't be withdrawn"
|
redirect_to :back, error: "Event can't be withdrawn"
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -197,6 +197,14 @@ class Event < ApplicationRecord
|
||||||
send(transition)
|
send(transition)
|
||||||
end
|
end
|
||||||
save
|
save
|
||||||
|
# If the event was previously scheduled, and then withdrawn or cancelled
|
||||||
|
# its event_schedule will have enabled set to false
|
||||||
|
# If the event is now confirmed again, we want it to be available for scheduling
|
||||||
|
Rails.logger.debug "transition is #{transition}"
|
||||||
|
if transition == :confirm
|
||||||
|
Rails.logger.debug "schedules #{EventSchedule.unscoped.where(event: self, enabled: false)}"
|
||||||
|
EventSchedule.unscoped.where(event: self, enabled: false).destroy_all
|
||||||
|
end
|
||||||
rescue Transitions::InvalidTransition => e
|
rescue Transitions::InvalidTransition => e
|
||||||
alert = "Update state failed. #{e.message}"
|
alert = "Update state failed. #{e.message}"
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
class EventSchedule < ApplicationRecord
|
class EventSchedule < ApplicationRecord
|
||||||
|
default_scope { where(enabled: true) }
|
||||||
belongs_to :schedule
|
belongs_to :schedule
|
||||||
belongs_to :event
|
belongs_to :event
|
||||||
belongs_to :room
|
belongs_to :room
|
||||||
|
|
@ -33,7 +34,7 @@ class EventSchedule < ApplicationRecord
|
||||||
# Returns event schedules that are scheduled in the same room and start_time as event
|
# Returns event schedules that are scheduled in the same room and start_time as event
|
||||||
#
|
#
|
||||||
def intersecting_event_schedules
|
def intersecting_event_schedules
|
||||||
room.event_schedules.where(start_time: start_time, schedule: schedule).where.not(id: id)
|
EventSchedule.unscoped.where(room: room, start_time: start_time, schedule: schedule).where.not(id: id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def replacement?
|
def replacement?
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddEnabledToEventSchedules < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :event_schedules, :enabled, :boolean, default: true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -217,6 +217,7 @@ ActiveRecord::Schema.define(version: 20171130172334) do
|
||||||
t.datetime "start_time"
|
t.datetime "start_time"
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
|
t.boolean "enabled", default: true
|
||||||
t.index ["event_id", "schedule_id"], name: "index_event_schedules_on_event_id_and_schedule_id", unique: true
|
t.index ["event_id", "schedule_id"], name: "index_event_schedules_on_event_id_and_schedule_id", unique: true
|
||||||
t.index ["event_id"], name: "index_event_schedules_on_event_id"
|
t.index ["event_id"], name: "index_event_schedules_on_event_id"
|
||||||
t.index ["room_id"], name: "index_event_schedules_on_room_id"
|
t.index ["room_id"], name: "index_event_schedules_on_room_id"
|
||||||
|
|
@ -494,7 +495,7 @@ ActiveRecord::Schema.define(version: 20171130172334) do
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.integer "payment_id"
|
t.integer "payment_id"
|
||||||
t.integer "week"
|
t.integer "week"
|
||||||
t.float "amount_paid", default: 0.0
|
t.float "amount_paid"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "ticket_scannings", force: :cascade do |t|
|
create_table "ticket_scannings", force: :cascade do |t|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue