Class: Spina::Admin::Conferences::PresentationType

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
app/models/spina/admin/conferences/presentation_type.rb

Overview

Presentation type records.

Validators

Presence

#name, #minutes. #duration.

Translations

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#conferenceConference?



29
# File 'app/models/spina/admin/conferences/presentation_type.rb', line 29

belongs_to :conference, -> { includes(:translations) }, inverse_of: :presentation_types, touch: true

#durationActiveSupport::Duration?



25
# File 'app/models/spina/admin/conferences/presentation_type.rb', line 25

attribute :duration, :interval

#nameString?



18
# File 'app/models/spina/admin/conferences/presentation_type.rb', line 18

translates :name, fallbacks: true

#presentationsActiveRecord::Relation

Returns Presentations associated with #sessions.



39
# File 'app/models/spina/admin/conferences/presentation_type.rb', line 39

has_many :presentations, -> { distinct.includes(:translations) }, through: :sessions

#sessionsActiveRecord::Relation

Note:

A presentation type cannot be destroyed if it has dependent sessions.

Returns directly associated sessions.

See Also:



34
# File 'app/models/spina/admin/conferences/presentation_type.rb', line 34

has_many :sessions, -> { includes(:translations) }, inverse_of: :presentation_type, dependent: :restrict_with_error

Instance Method Details

#minutesInteger?



45
46
47
48
49
# File 'app/models/spina/admin/conferences/presentation_type.rb', line 45

def minutes
  return if duration.blank?

  duration.to_i / ActiveSupport::Duration::PARTS_IN_SECONDS[:minutes]
end

#minutes=(minutes) ⇒ void

This method returns an undefined value.

Sets the duration of the conference.



54
55
56
# File 'app/models/spina/admin/conferences/presentation_type.rb', line 54

def minutes=(minutes)
  self.duration = minutes.to_i.minutes
end

#sortedActiveRecord::Relation



21
# File 'app/models/spina/admin/conferences/presentation_type.rb', line 21

scope :sorted, -> { i18n.order :name }