Class: Decidim::TimeTracker::Assignation
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Decidim::TimeTracker::Assignation
- Includes:
- Loggable, Decidim::Traceable
- Defined in:
- app/models/decidim/time_tracker/assignation.rb
Overview
The data store for an assignation in the Decidim::TimeTracker component.
Class Method Summary collapse
-
.log_presenter_class_for(_log) ⇒ Object
rubocop:enable Lint/UselessAssignment.
-
.sorted_by_status(*statuses) ⇒ Object
rubocop:disable Lint/UselessAssignment.
Instance Method Summary collapse
- #assignee ⇒ Object
- #can_change_status? ⇒ Boolean
- #time_dedicated ⇒ Object
- #time_dedicated_to(activity) ⇒ Object
Class Method Details
.log_presenter_class_for(_log) ⇒ Object
rubocop:enable Lint/UselessAssignment
63 64 65 |
# File 'app/models/decidim/time_tracker/assignation.rb', line 63 def self.log_presenter_class_for(_log) Decidim::TimeTracker::AdminLog::AssignationPresenter end |
.sorted_by_status(*statuses) ⇒ Object
rubocop:disable Lint/UselessAssignment
54 55 56 57 58 59 60 |
# File 'app/models/decidim/time_tracker/assignation.rb', line 54 def self.sorted_by_status(*statuses) accepted = self.accepted.sort_by(&:time_dedicated).reverse pending = self.pending rejected = self.rejected statuses.map { |status| send(status) }.sum end |
Instance Method Details
#assignee ⇒ Object
37 38 39 |
# File 'app/models/decidim/time_tracker/assignation.rb', line 37 def assignee Assignee.for(user) end |
#can_change_status? ⇒ Boolean
49 50 51 |
# File 'app/models/decidim/time_tracker/assignation.rb', line 49 def can_change_status? time_events.empty? end |
#time_dedicated ⇒ Object
41 42 43 |
# File 'app/models/decidim/time_tracker/assignation.rb', line 41 def time_dedicated time_events.sum(&:total_seconds) end |
#time_dedicated_to(activity) ⇒ Object
45 46 47 |
# File 'app/models/decidim/time_tracker/assignation.rb', line 45 def time_dedicated_to(activity) time_events.where(activity: activity).sum(&:total_seconds) end |