Class: Decidim::TimeTracker::Admin::CreateTimeTracker

Inherits:
Rectify::Command
  • Object
show all
Defined in:
app/commands/decidim/time_tracker/admin/create_time_tracker.rb

Overview

A command with all the business logic when creating a task

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(component) ⇒ CreateTimeTracker

Returns a new instance of CreateTimeTracker.



8
9
10
11
12
# File 'app/commands/decidim/time_tracker/admin/create_time_tracker.rb', line 8

def initialize(component)
  @questionnaire = Decidim::Forms::Questionnaire.new
  @assignee_questionnaire = Decidim::Forms::Questionnaire.new
  @time_tracker = Decidim::TimeTracker::TimeTracker.new(component: component, questionnaire: @questionnaire)
end

Instance Attribute Details

#assignee_questionnaireObject (readonly)

Returns the value of attribute assignee_questionnaire.



27
28
29
# File 'app/commands/decidim/time_tracker/admin/create_time_tracker.rb', line 27

def assignee_questionnaire
  @assignee_questionnaire
end

#questionnaireObject (readonly)

Returns the value of attribute questionnaire.



27
28
29
# File 'app/commands/decidim/time_tracker/admin/create_time_tracker.rb', line 27

def questionnaire
  @questionnaire
end

#time_trackerObject (readonly)

Returns the value of attribute time_tracker.



27
28
29
# File 'app/commands/decidim/time_tracker/admin/create_time_tracker.rb', line 27

def time_tracker
  @time_tracker
end

Instance Method Details

#callObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/commands/decidim/time_tracker/admin/create_time_tracker.rb', line 14

def call
  begin
    @time_tracker.save!
    populate_questionnaire(Decidim::TimeTracker.default_activity_questionnaire, @questionnaire)
    populate_questionnaire(Decidim::TimeTracker.default_assignee_questionnaire, @assignee_questionnaire)
    create_assignee_data
  rescue StandardError
    return broadcast(:invalid)
  end

  broadcast(:ok)
end