Class: EventSpeaker
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- EventSpeaker
- Includes:
- Toggleable
- Defined in:
- app/models/event_speaker.rb
Constant Summary collapse
- NAME_LIMIT =
100
- OCCUPATION_LIMIT =
250
- PRIORITY_LIMIT =
(1..999)
Class Method Summary collapse
- .creation_parameters ⇒ Object
- .entity_parameters ⇒ Object
- .page_for_administration ⇒ Object
- .page_for_visitors ⇒ Object
Instance Method Summary collapse
Class Method Details
.creation_parameters ⇒ Object
37 38 39 |
# File 'app/models/event_speaker.rb', line 37 def self.creation_parameters entity_parameters + %i(event_id) end |
.entity_parameters ⇒ Object
33 34 35 |
# File 'app/models/event_speaker.rb', line 33 def self.entity_parameters %i(image name occupation visible priority) end |
.page_for_administration ⇒ Object
25 26 27 |
# File 'app/models/event_speaker.rb', line 25 def self.page_for_administration ordered_by_priority end |
.page_for_visitors ⇒ Object
29 30 31 |
# File 'app/models/event_speaker.rb', line 29 def self.page_for_visitors visible.ordered_by_priority end |
Instance Method Details
#change_priority(delta) ⇒ Object
46 47 48 49 50 51 52 53 54 55 |
# File 'app/models/event_speaker.rb', line 46 def change_priority(delta) new_priority = priority + delta adjacent = EventSpeaker.siblings(event).find_by(priority: new_priority) if adjacent.is_a?(EventSpeaker) && (adjacent.id != id) adjacent.update!(priority: priority) end self.update(priority: new_priority) EventSpeaker.siblings(event).ordered_by_priority.map { |e| [e.id, e.priority] }.to_h end |
#locked? ⇒ Boolean
41 42 43 |
# File 'app/models/event_speaker.rb', line 41 def locked? event.locked? end |