Class: Dorsale::Flyboy::Task
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Dorsale::Flyboy::Task
- Includes:
- Search
- Defined in:
- app/models/dorsale/flyboy/task.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(*args) ⇒ Task
constructor
A new instance of Task.
- #snooze ⇒ Object
- #snooze_default_reminder ⇒ Object
- #snooze_default_term ⇒ Object
- #term_not_passed_yet ⇒ Object
- #update_taskable_progress! ⇒ Object
- #validates_reminder_and_term ⇒ Object
Methods included from Search
Constructor Details
#initialize(*args) ⇒ Task
Returns a new instance of Task.
56 57 58 59 60 61 62 |
# File 'app/models/dorsale/flyboy/task.rb', line 56 def initialize(*args) super self.done = false if done.nil? self.reminder = Date.today + snooze_default_reminder if reminder.nil? self.term = Date.today + snooze_default_term if term.nil? self.progress = 0 if progress.nil? end |
Class Method Details
.to_csv(options = {}) ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'app/models/dorsale/flyboy/task.rb', line 93 def self.to_csv( = {}) CSV.generate() do |csv| csv << [ "Taskable", "Type", "Avancement taskable", "Tâche", "Avancement tâche", "Echéance" ] all.each do |task| csv << [ task.taskable.name, task.taskable.class.t, "#{task.taskable.try(:progress)} %", task.name, "#{task.progress} %", I18n.l(task.term), ] end end end |
Instance Method Details
#snooze ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'app/models/dorsale/flyboy/task.rb', line 71 def snooze if term_not_passed_yet if self.reminder + snooze_default_reminder > Date.today self.reminder += snooze_default_reminder self.term += snooze_default_term else self.reminder = Date.today + 1 end else self.reminder = Date.today + snooze_default_reminder self.term = Date.today + snooze_default_term end end |
#snooze_default_reminder ⇒ Object
85 86 87 |
# File 'app/models/dorsale/flyboy/task.rb', line 85 def snooze_default_reminder 7 end |
#snooze_default_term ⇒ Object
89 90 91 |
# File 'app/models/dorsale/flyboy/task.rb', line 89 def snooze_default_term 30 end |
#term_not_passed_yet ⇒ Object
117 118 119 |
# File 'app/models/dorsale/flyboy/task.rb', line 117 def term_not_passed_yet self.term > Date.today end |
#update_taskable_progress! ⇒ Object
67 68 69 |
# File 'app/models/dorsale/flyboy/task.rb', line 67 def update_taskable_progress! taskable.try(:update_progress!) end |
#validates_reminder_and_term ⇒ Object
49 50 51 52 53 54 |
# File 'app/models/dorsale/flyboy/task.rb', line 49 def validates_reminder_and_term if reminder && term && reminder > term # errors.add(:reminder, "La date de relance doit être antérieure ou égale à la date d'échéance") errors.add(:reminder, :less_than, count: term) end end |