Merge pull request #567 from openSUSE/348

Adds dependent restricted association to some models
This commit is contained in:
Christian Bruckmayer 2014-12-18 15:00:18 +01:00
commit cc80fb10cb
19 changed files with 65 additions and 66 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
##

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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}

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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' }

View file

@ -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'

View file

@ -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'

View file

@ -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'

View file

@ -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'