Introduce Booths and Call for Booths to OSEM

This commit is contained in:
nasia 2017-05-17 13:31:27 +03:00
parent 4d895ae3bc
commit 3172cfcbb2
22 changed files with 443 additions and 1 deletions

16
app/models/booth.rb Normal file
View file

@ -0,0 +1,16 @@
class Booth < ActiveRecord::Base
belongs_to :conference
has_many :booth_requests
has_many :users, through: :booth_requests
validates :title,
uniqueness: { case_sensitive: fasle},
presence: true
validates :description,
:reasoning,
:state,
:logo_link
:conference_id,
presence: true
end

View file

@ -0,0 +1,10 @@
class BoothRequest < ActiveRecord::Base
belongs_to :booth
belongs_to :user
validates :booth,
:user,
:role,
presence: true
end

View file

@ -0,0 +1,22 @@
class CallForBooth < ActiveRecord::Base
belongs_to :conference
validates :start_date, :end_date, :booth_limit, presence: true
validate :before_end_of_conference
validate :start_date_before_end_date
private
def before_end_of_conference
errors
.add(:start_date, "can't be after the conference end date (#{conference.end_date})") if conference && conference.end_date && start_date && (start_date > conference.end_date)
errors
.add(:end_date, "can't be after the conference end date (#{conference.end_date})") if conference && conference.end_date && end_date && (end_date > conference.end_date)
end
def start_date_before_end_date
errors
.add(:start_date, "can't be after the end date") if start_date && end_date && start_date > end_date
end
end

View file

@ -16,6 +16,7 @@ class Conference < ActiveRecord::Base
has_one :splashpage, dependent: :destroy
has_one :contact, dependent: :destroy
has_one :registration_period, dependent: :destroy
has_one :call_for_booths, dependent: :destroy
has_one :email_settings, dependent: :destroy
has_one :program, dependent: :destroy
has_one :venue, dependent: :destroy
@ -24,6 +25,7 @@ class Conference < ActiveRecord::Base
has_many :supporters, through: :ticket_purchases, source: :user
has_many :tickets, dependent: :destroy
has_many :resources, dependent: :destroy
has_many :booths, dependent: :destroy
has_many :lodgings, dependent: :destroy
has_many :registrations, dependent: :destroy

View file

@ -50,11 +50,13 @@ class User < ActiveRecord::Base
has_many :votes, dependent: :destroy
has_many :voted_events, through: :votes, source: :events
has_many :subscriptions, dependent: :destroy
has_many :booth_requests
has_many :booths, through: :users_booths
accepts_nested_attributes_for :roles
scope :admin, -> { where(is_admin: true) }
scope :active, -> { where(is_disabled: false) }
validates :email, presence: true
validates :username,