Introduce Booths and Call for Booths to OSEM
This commit is contained in:
parent
4d895ae3bc
commit
3172cfcbb2
22 changed files with 443 additions and 1 deletions
16
app/models/booth.rb
Normal file
16
app/models/booth.rb
Normal 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
|
||||
10
app/models/booth_request.rb
Normal file
10
app/models/booth_request.rb
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
class BoothRequest < ActiveRecord::Base
|
||||
belongs_to :booth
|
||||
belongs_to :user
|
||||
|
||||
validates :booth,
|
||||
:user,
|
||||
:role,
|
||||
presence: true
|
||||
|
||||
end
|
||||
22
app/models/call_for_booth.rb
Normal file
22
app/models/call_for_booth.rb
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue