diff --git a/app/controllers/admin/campaigns_controller.rb b/app/controllers/admin/campaigns_controller.rb index de09a520..2f39958a 100644 --- a/app/controllers/admin/campaigns_controller.rb +++ b/app/controllers/admin/campaigns_controller.rb @@ -12,11 +12,11 @@ module Admin @campaign.attributes = params[:campaign] if @conference.save - redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title), - notice: 'Campaign successfully created.') + flash[:notice] = 'Campaign successfully created.' + redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title)) else - flash[:error] = 'Campaign creation failed. ' + @campaign.errors.full_messages.to_sentence - render action: 'new' + flash[:error] = 'Campaign creation failed. ' + @campaign.errors.full_messages.to_sentence + render action: 'new' end end @@ -26,23 +26,22 @@ module Admin def update if @campaign.update_attributes(params[:campaign]) - redirect_to(admin_conference_campaigns_path( - conference_id: @conference.short_title), - notice: "Campaign '#{@campaign.name}' successfully updated.") + flash[:notice] = "Campaign '#{@campaign.name}' successfully updated." + redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title)) else - flash[:error] = 'Campaign update failed. ' + @campaign.errors.full_messages.to_sentence - render action: 'edit' + flash[:error] = "Campaign update failed. #{@campaign.errors.full_messages.to_sentence}" + render action: 'edit' end end def destroy if @campaign.destroy - redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title), - notice: "Campaign '#{@campaign.name}' successfully deleted.") + flash[:notice] = "Campaign '#{@campaign.name}' successfully deleted." + redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title)) else - redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title), - alert: "Delete of Campaign for #{@conference.short_title} failed." \ - "#{@campaign.errors.full_messages.join('. ')}.") + flash[:error] = "Delete of Campaign for #{@conference.short_title} failed." \ + "#{@campaign.errors.full_messages.join('. ')}." + redirect_to(admin_conference_campaigns_path(conference_id: @conference.short_title)) end end end diff --git a/app/controllers/admin/difficulty_levels_controller.rb b/app/controllers/admin/difficulty_levels_controller.rb index 70957f79..8ee5edc1 100644 --- a/app/controllers/admin/difficulty_levels_controller.rb +++ b/app/controllers/admin/difficulty_levels_controller.rb @@ -16,8 +16,8 @@ module Admin def create @difficulty_level = @conference.difficulty_levels.new(difficulty_level_params) if @difficulty_level.save - redirect_to(admin_conference_difficulty_levels_path(conference_id: @conference.short_title), - notice: 'Difficulty level successfully created.') + flash[:notice] = 'Difficulty level successfully created.' + redirect_to(admin_conference_difficulty_levels_path(conference_id: @conference.short_title)) else flash[:error] = "Creating difficulty level failed: #{@difficulty_level.errors.full_messages.join('. ')}." render :new @@ -26,9 +26,8 @@ module Admin def update if @difficulty_level.update_attributes(difficulty_level_params) - redirect_to(admin_conference_difficulty_levels_path( - conference_id: @conference.short_title), - notice: 'Difficulty level successfully updated.') + flash[:notice] = 'Difficulty level successfully updated.' + redirect_to(admin_conference_difficulty_levels_path(conference_id: @conference.short_title)) else flash[:error] = "Update difficulty level failed: #{@difficulty_level.errors.full_messages.join('. ')}." render :edit @@ -37,12 +36,12 @@ module Admin def destroy if @difficulty_level.destroy - redirect_to(admin_conference_difficulty_levels_path(conference_id: @conference.short_title), - notice: 'Difficulty level successfully deleted.') + flash[:notice] = 'Difficulty level successfully deleted.' + redirect_to(admin_conference_difficulty_levels_path(conference_id: @conference.short_title)) else - redirect_to(admin_conference_difficulty_levels_path(conference_id: @conference.short_title), - error: 'Deleting difficulty level type failed! ' \ - "#{@difficulty_level.errors.full_messages.join('. ')}.") + flash[:error] = 'Deleting difficulty level type failed! ' \ + "#{@difficulty_level.errors.full_messages.join('. ')}." + redirect_to(admin_conference_difficulty_levels_path(conference_id: @conference.short_title)) end end diff --git a/app/controllers/admin/event_types_controller.rb b/app/controllers/admin/event_types_controller.rb index 85d1ff6b..8f2cf042 100644 --- a/app/controllers/admin/event_types_controller.rb +++ b/app/controllers/admin/event_types_controller.rb @@ -16,8 +16,8 @@ module Admin def create @event_type = @conference.event_types.new(event_type_params) if @event_type.save - redirect_to(admin_conference_event_types_path(conference_id: @conference.short_title), - notice: 'Event type successfully created.') + flash[:notice] = 'Event type successfully created.' + redirect_to(admin_conference_event_types_path(conference_id: @conference.short_title)) else flash[:error] = "Creating event type failed: #{@event_type.errors.full_messages.join('. ')}." render :new @@ -26,9 +26,8 @@ module Admin def update if @event_type.update_attributes(event_type_params) - redirect_to(admin_conference_event_types_path( - conference_id: @conference.short_title), - notice: 'Event type successfully updated.') + flash[:notice] = 'Event type successfully updated.' + redirect_to(admin_conference_event_types_path(conference_id: @conference.short_title)) else flash[:error] = "Update event type failed: #{@event_type.errors.full_messages.join('. ')}." render :edit @@ -37,12 +36,12 @@ module Admin def destroy if @event_type.destroy - redirect_to(admin_conference_event_types_path(conference_id: @conference.short_title), - notice: 'Event type successfully deleted.') + flash[:notice] = 'Event type successfully deleted.' + redirect_to(admin_conference_event_types_path(conference_id: @conference.short_title)) else - redirect_to(admin_conference_event_types_path(conference_id: @conference.short_title), - error: 'Destroying event type failed! ' \ - "#{@event_type.errors.full_messages.join('. ')}.") + flash[:error] = 'Destroying event type failed! ' \ + "#{@event_type.errors.full_messages.join('. ')}." + redirect_to(admin_conference_event_types_path(conference_id: @conference.short_title)) end end diff --git a/app/controllers/admin/rooms_controller.rb b/app/controllers/admin/rooms_controller.rb index fcf707cb..0b6b53c3 100644 --- a/app/controllers/admin/rooms_controller.rb +++ b/app/controllers/admin/rooms_controller.rb @@ -16,8 +16,8 @@ module Admin def create @room = @conference.rooms.new(room_params) if @room.save - redirect_to(admin_conference_rooms_path(conference_id: @conference.short_title), - notice: 'Room successfully created.') + flash[:notice] = 'Room successfully created.' + redirect_to(admin_conference_rooms_path(conference_id: @conference.short_title)) else flash[:error] = "Creating Room failed: #{@room.errors.full_messages.join('. ')}." render :new @@ -26,9 +26,8 @@ module Admin def update if @room.update_attributes(room_params) - redirect_to(admin_conference_rooms_path( - conference_id: @conference.short_title), - notice: 'Room successfully updated.') + flash[:notice] = 'Room successfully updated.' + redirect_to(admin_conference_rooms_path(conference_id: @conference.short_title)) else flash[:error] = "Update Room failed: #{@room.errors.full_messages.join('. ')}." render :edit @@ -37,12 +36,11 @@ module Admin def destroy if @room.destroy - redirect_to(admin_conference_rooms_path(conference_id: @conference.short_title), - notice: 'Room successfully deleted.') + flash[:notice] = 'Room successfully deleted.' + redirect_to(admin_conference_rooms_path(conference_id: @conference.short_title)) else - redirect_to(admin_conference_rooms_path(conference_id: @conference.short_title), - error: 'Destroying room failed! ' \ - "#{@room.errors.full_messages.join('. ')}.") + flash[:error] = "Destroying room failed! #{@room.errors.full_messages.join('. ')}." + redirect_to(admin_conference_rooms_path(conference_id: @conference.short_title)) end end diff --git a/app/controllers/admin/tracks_controller.rb b/app/controllers/admin/tracks_controller.rb index 13d6870f..438b3dd0 100644 --- a/app/controllers/admin/tracks_controller.rb +++ b/app/controllers/admin/tracks_controller.rb @@ -19,8 +19,8 @@ module Admin def create @track = @conference.tracks.new(track_params) if @track.save - redirect_to(admin_conference_tracks_path(conference_id: @conference.short_title), - notice: 'Track successfully created.') + flash[:notice] = 'Track successfully created.' + redirect_to(admin_conference_tracks_path(conference_id: @conference.short_title)) else flash[:error] = "Creating Track failed: #{@track.errors.full_messages.join('. ')}." render :new @@ -31,8 +31,8 @@ module Admin def update if @track.update_attributes(track_params) - redirect_to(admin_conference_tracks_path(conference_id: @conference.short_title), - notice: 'Track successfully updated.') + flash[:notice] = 'Track successfully updated.' + redirect_to(admin_conference_tracks_path(conference_id: @conference.short_title)) else flash[:error] = "Track update failed: #{@track.errors.full_messages.join('. ')}." render :edit @@ -41,12 +41,11 @@ module Admin def destroy if @track.destroy - redirect_to(admin_conference_tracks_path(conference_id: @conference.short_title), - notice: 'Track successfully deleted.') + flash[:notice] = 'Track successfully deleted.' + redirect_to(admin_conference_tracks_path(conference_id: @conference.short_title)) else - redirect_to(admin_conference_tracks_path(conference_id: @conference.short_title), - error: 'Track couldn\'t be deleted.' \ - "#{@track.errors.full_messages.join('. ')}.") + flash[:error] = "Track couldn't be deleted. #{@track.errors.full_messages.join('. ')}." + redirect_to(admin_conference_tracks_path(conference_id: @conference.short_title)) end end diff --git a/app/models/campaign.rb b/app/models/campaign.rb index 77ff94f2..469f3433 100644 --- a/app/models/campaign.rb +++ b/app/models/campaign.rb @@ -4,7 +4,7 @@ class Campaign < ActiveRecord::Base validates :name, :utm_campaign, presence: true - has_many :targets + has_many :targets, dependent: :nullify belongs_to :conference ## diff --git a/app/models/conference.rb b/app/models/conference.rb index 5af417d7..5c1ae0c2 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -31,7 +31,7 @@ class Conference < ActiveRecord::Base has_one :call_for_paper, dependent: :destroy has_one :venue, dependent: :destroy has_many :social_events, dependent: :destroy - has_many :ticket_purchases + has_many :ticket_purchases, dependent: :destroy has_many :supporters, through: :ticket_purchases, source: :user has_many :tickets, dependent: :destroy has_many :dietary_choices, dependent: :destroy diff --git a/app/models/difficulty_level.rb b/app/models/difficulty_level.rb index b230c07f..36ec38c8 100644 --- a/app/models/difficulty_level.rb +++ b/app/models/difficulty_level.rb @@ -2,7 +2,7 @@ class DifficultyLevel < ActiveRecord::Base attr_accessible :title, :description, :color, :conference_id belongs_to :conference - has_many :events + has_many :events, dependent: :nullify validates :title, presence: true end diff --git a/app/models/event.rb b/app/models/event.rb index c24506c1..81b4103e 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -29,7 +29,7 @@ class Event < ActiveRecord::Base before_create :generate_guid validate :abstract_limit - validate :before_end_of_conference + validate :before_end_of_conference, on: :create validate :name_and_biography_exists validates :title, presence: true validates :abstract, presence: true diff --git a/app/models/event_type.rb b/app/models/event_type.rb index a2204985..2430b76e 100644 --- a/app/models/event_type.rb +++ b/app/models/event_type.rb @@ -3,6 +3,7 @@ class EventType < ActiveRecord::Base :conference_id belongs_to :conference + has_many :events, dependent: :restrict_with_error validates :title, presence: true validates :length, numericality: {greater_than: 0} diff --git a/app/models/room.rb b/app/models/room.rb index cf59e39b..93f57a4b 100644 --- a/app/models/room.rb +++ b/app/models/room.rb @@ -2,7 +2,7 @@ class Room < ActiveRecord::Base attr_accessible :name, :size, :conference_id belongs_to :conference - has_many :events + has_many :events, dependent: :nullify before_create :generate_guid diff --git a/app/models/ticket.rb b/app/models/ticket.rb index 45558a5b..54c54667 100644 --- a/app/models/ticket.rb +++ b/app/models/ticket.rb @@ -1,6 +1,6 @@ class Ticket < ActiveRecord::Base belongs_to :conference - has_many :ticket_purchases + has_many :ticket_purchases, dependent: :destroy has_many :buyers, -> { distinct }, through: :ticket_purchases, source: :user attr_accessible :conference, :title, :url, :description, :conference_id, :price_cents, :price_currency, :price diff --git a/app/models/track.rb b/app/models/track.rb index bd48e58d..7f8cfbcb 100644 --- a/app/models/track.rb +++ b/app/models/track.rb @@ -1,7 +1,7 @@ class Track < ActiveRecord::Base attr_accessible :name, :description, :color, :conference_id belongs_to :conference - has_many :events + has_many :events, dependent: :nullify before_create :generate_guid validates :name, presence: true diff --git a/app/models/user.rb b/app/models/user.rb index b205ae4c..6214d07a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -38,7 +38,7 @@ class User < ActiveRecord::Base has_many :event_users, dependent: :destroy has_many :events, -> { uniq }, through: :event_users has_many :registrations, dependent: :destroy - has_many :ticket_purchases + has_many :ticket_purchases, dependent: :destroy has_many :tickets, through: :ticket_purchases, source: :ticket has_many :votes, dependent: :destroy has_many :voted_events, through: :votes, source: :events diff --git a/app/views/admin/campaigns/_form.html.haml b/app/views/admin/campaigns/_form.html.haml index c65f49f1..507cb540 100644 --- a/app/views/admin/campaigns/_form.html.haml +++ b/app/views/admin/campaigns/_form.html.haml @@ -19,6 +19,6 @@ = f.input :utm_term, label: 'Term', hint: 'Campaign keywords. E.g. marketing+conference+opensource' = f.input :utm_content, label: 'Content', hint: 'Used to track the different types of content that point to the same URL (A/B Test).' = f.inputs name: 'Targets' do - = f.input :targets + = f.input :targets, collection: @conference.targets %p.text-right = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } diff --git a/app/views/admin/difficulty_levels/index.html.haml b/app/views/admin/difficulty_levels/index.html.haml index f2668a71..1b02d446 100644 --- a/app/views/admin/difficulty_levels/index.html.haml +++ b/app/views/admin/difficulty_levels/index.html.haml @@ -27,7 +27,8 @@ = link_to 'Edit', edit_admin_conference_difficulty_level_path(@conference.short_title, difficulty_level.id), method: :get, class: 'btn btn-primary' = link_to 'Delete', admin_conference_difficulty_level_path(@conference.short_title, difficulty_level.id), - method: :delete, class: 'btn btn-danger', data: { confirm: "Do you really want to delete #{difficulty_level.title}?" } + method: :delete, class: 'btn btn-danger', + data: { confirm: "Do you really want to delete #{difficulty_level.title}? Attention: This difficulty level will be removed from all Events that have it set" } .row .col-md-12.text-right = link_to 'Add Difficulty Level', new_admin_conference_difficulty_level_path(@conference.short_title), class: 'btn btn-primary' diff --git a/app/views/admin/rooms/index.html.haml b/app/views/admin/rooms/index.html.haml index f9007a79..52f00f18 100644 --- a/app/views/admin/rooms/index.html.haml +++ b/app/views/admin/rooms/index.html.haml @@ -24,7 +24,8 @@ = link_to 'Edit', edit_admin_conference_room_path(@conference.short_title, room.id), method: :get, class: 'btn btn-primary' = link_to 'Delete', admin_conference_room_path(@conference.short_title, room.id), - method: :delete, class: 'btn btn-danger', data: { confirm: "Do you really want to delete #{room.name}?" } + method: :delete, class: 'btn btn-danger', + data: { confirm: "Do you really want to delete #{room.name}? Attention: This room will be removed from all Events that have it set"} .row .col-md-12.text-right = link_to 'Add Room', new_admin_conference_room_path(@conference.short_title), class: 'btn btn-primary' diff --git a/app/views/admin/tickets/index.html.haml b/app/views/admin/tickets/index.html.haml index 54b29754..acf6915f 100644 --- a/app/views/admin/tickets/index.html.haml +++ b/app/views/admin/tickets/index.html.haml @@ -31,7 +31,8 @@ = link_to 'Edit', edit_admin_conference_ticket_path(@conference.short_title, ticket.id), method: :get, class: 'btn btn-primary' = link_to 'Delete', admin_conference_ticket_path(@conference.short_title, ticket.id), - method: :delete, class: 'btn btn-danger', data: { confirm: "Do you really want to delete the Ticket for #{ticket.title}?" } + method: :delete, class: 'btn btn-danger', + data: { confirm: "Do you really want to delete the Ticket for #{ticket.title}? Attention: All ticket purchases will be also deleted!" } .row .col-md-12 = link_to 'Add Ticket', new_admin_conference_ticket_path, class: 'btn btn-success pull-right' diff --git a/app/views/admin/tracks/index.html.haml b/app/views/admin/tracks/index.html.haml index 986ea522..8ba3a41b 100644 --- a/app/views/admin/tracks/index.html.haml +++ b/app/views/admin/tracks/index.html.haml @@ -29,7 +29,8 @@ = link_to 'Edit', edit_admin_conference_track_path(@conference.short_title, track.id), method: :get, class: 'btn btn-primary' = link_to 'Delete', admin_conference_track_path(@conference.short_title, track.id), - method: :delete, class: 'btn btn-danger', data: { confirm: "Do you really want to delete #{track.name}?" } + method: :delete, class: 'btn btn-danger', + data: { confirm: "Do you really want to delete #{track.name}? Attention: This track will be removed from all Events that have it set" } .row .col-md-12.text-right = link_to 'New Track', new_admin_conference_track_path(@conference.short_title), class: 'btn btn-success'