Class: Decidim::TimeTracker::TimeEvent
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Decidim::TimeTracker::TimeEvent
- Defined in:
- app/models/decidim/time_tracker/time_event.rb
Overview
The data store for a time entry in the Decidim::TimeTracker component.
Class Method Summary collapse
-
.last_for(user) ⇒ Object
rubocop:disable Rails/FindBy.
Instance Method Summary collapse
-
#seconds_elapsed ⇒ Object
number of seconds since the counting started zero if activity is stopped.
- #start_time ⇒ Object
- #stop! ⇒ Object
- #stop_time ⇒ Object
- #stopped? ⇒ Boolean
Class Method Details
.last_for(user) ⇒ Object
rubocop:disable Rails/FindBy
25 26 27 28 29 30 31 |
# File 'app/models/decidim/time_tracker/time_event.rb', line 25 def self.last_for(user) if user.is_a?(Assignation) where(assignation: user).first else where(user: user).first end end |
Instance Method Details
#seconds_elapsed ⇒ Object
number of seconds since the counting started zero if activity is stopped
36 37 38 39 40 41 |
# File 'app/models/decidim/time_tracker/time_event.rb', line 36 def seconds_elapsed return 0 if stopped? return 0 if start.blank? @seconds_elapsed ||= Time.current.to_i - start.to_i end |
#start_time ⇒ Object
47 48 49 |
# File 'app/models/decidim/time_tracker/time_event.rb', line 47 def start_time Time.zone.at start end |
#stop! ⇒ Object
55 56 57 58 59 |
# File 'app/models/decidim/time_tracker/time_event.rb', line 55 def stop! self.stop = Time.current.to_i self.total_seconds = stop - start save! end |
#stop_time ⇒ Object
51 52 53 |
# File 'app/models/decidim/time_tracker/time_event.rb', line 51 def stop_time Time.zone.at stop end |
#stopped? ⇒ Boolean
43 44 45 |
# File 'app/models/decidim/time_tracker/time_event.rb', line 43 def stopped? stop.to_i >= start end |