@@ -97,15 +97,10 @@ class MissionsController < ApplicationController |
||
| 97 | 97 |
def step_submission |
| 98 | 98 |
mission = Mission.friendly.find(params[:id]) |
| 99 | 99 |
agent = mission.mission_agents.friendly.find(params[:agent]) |
| 100 |
- submission = StepSubmission.new |
|
| 101 |
- agent.agent_steps.first.step_validations.each do |validation| |
|
| 102 |
- if validation.validation_type == 'ValidationText' |
|
| 103 |
- submission.submission_contents << SubmissionContent.new |
|
| 104 |
- submission.submission_contents.last.build_submission('SubmissionText')
|
|
| 105 |
- end |
|
| 106 |
- end |
|
| 100 |
+ step = agent.agent_steps.find_by_step(params[:step]) |
|
| 101 |
+ submission = step.create_submission(step_submission_params, params[:step_submission][:submission_contents_attributes].values) |
|
| 107 | 102 |
respond_to do |format| |
| 108 |
- if submission.update(step_submission_params) |
|
| 103 |
+ if submission.save |
|
| 109 | 104 |
format.html { redirect_to mission_agent_details_path(mission, agent), notice: (t 'mission.step_submission_confirmation') }
|
| 110 | 105 |
format.json { head :no_content }
|
| 111 | 106 |
else |
@@ -127,7 +122,7 @@ class MissionsController < ApplicationController |
||
| 127 | 122 |
end |
| 128 | 123 |
|
| 129 | 124 |
def step_submission_params |
| 130 |
- params.require(:step_submission).permit(:agent_step_id, :validated, :validated_by_id, :date_validated, :created_at, :updated_at, :language, :cover_img, :slug, :end_date, :submission_contents_attributes => [:submission_content_id, :submission_type, :created_at, :updated_at]) |
|
| 125 |
+ params.require(:step_submission).permit(:agent_step_id, :validated, :validated_by_id, :date_validated, :created_at, :updated_at, :language, :cover_img, :slug, :end_date, :submission_contents_attributes => [:submission_content_id, :submission_type, :created_at, :updated_at, :submission_attributes => [:content, :submission_content_id]]) |
|
| 131 | 126 |
end |
| 132 | 127 |
|
| 133 | 128 |
end |
@@ -2,4 +2,20 @@ class AgentStep < ActiveRecord::Base |
||
| 2 | 2 |
belongs_to :mission_agent |
| 3 | 3 |
has_many :step_validations |
| 4 | 4 |
has_many :step_submissions |
| 5 |
+ |
|
| 6 |
+ def create_submission(step_submission, contents) |
|
| 7 |
+ submission = StepSubmission.new(step_submission) |
|
| 8 |
+ submission.agent_step = self |
|
| 9 |
+ validation_number = 0 |
|
| 10 |
+ self.step_validations.each do |validation| |
|
| 11 |
+ if validation.validation_type == 'ValidationText' |
|
| 12 |
+ submission.submission_contents << SubmissionContent.new |
|
| 13 |
+ submission_text = contents[validation_number][:submission_text] |
|
| 14 |
+ submission.submission_contents.last.build_submission('SubmissionText', submission_text)
|
|
| 15 |
+ end |
|
| 16 |
+ end |
|
| 17 |
+ validation_number = validation_number + 1 |
|
| 18 |
+ return submission |
|
| 19 |
+ end |
|
| 20 |
+ |
|
| 5 | 21 |
end |
@@ -3,9 +3,9 @@ class SubmissionContent < ActiveRecord::Base |
||
| 3 | 3 |
belongs_to :submission, polymorphic: true |
| 4 | 4 |
accepts_nested_attributes_for :submission, allow_destroy:true |
| 5 | 5 |
|
| 6 |
- def build_submission(klass) |
|
| 6 |
+ def build_submission(klass, object) |
|
| 7 | 7 |
if klass = 'SubmissionText' |
| 8 |
- submission = SubmissionText.new |
|
| 8 |
+ submission = SubmissionText.new(object) |
|
| 9 | 9 |
self.submission_type = klass |
| 10 | 10 |
end |
| 11 | 11 |
self.submission = submission |
@@ -20,7 +20,7 @@ |
||
| 20 | 20 |
|
| 21 | 21 |
<%= f.fields_for :submission_contents, SubmissionContent.new, show_empty: true do |f| %> |
| 22 | 22 |
<%= f.alert_message "Please fix the errors below." %> |
| 23 |
- <%= f.fields_for :submission, SubmissionText.new, show_empty: true do |f| %> |
|
| 23 |
+ <%= f.fields_for SubmissionText.new, as: :submission, show_empty: true do |f| %> |
|
| 24 | 24 |
<%= f.text_field :content %> |
| 25 | 25 |
<% end %> |
| 26 | 26 |
<% end %> |
@@ -76,7 +76,7 @@ |
||
| 76 | 76 |
<% # Steps %> |
| 77 | 77 |
<% @agent.agent_steps.order('step ASC').each do |step| %>
|
| 78 | 78 |
<% step_submission = StepSubmission.new %> |
| 79 |
- <%= bootstrap_nested_form_for(step_submission) do |f| %> |
|
| 79 |
+ <%= bootstrap_nested_form_for(StepSubmission.new, url: step_submission_path(step: step.step, mission: @mission.slug, agent: @agent.slug)) do |f| %> |
|
| 80 | 80 |
<%= content_tag(:div, class: 'panel panel-default') do %> |
| 81 | 81 |
<%= content_tag(:div, class: 'panel-heading') do %> |
| 82 | 82 |
<%= content_tag(:h3, class: 'panel-title') do %> |
@@ -35,7 +35,7 @@ Avalanche2::Application.routes.draw do |
||
| 35 | 35 |
get 'agent/:id' => 'agents#show', as: :show_agent |
| 36 | 36 |
|
| 37 | 37 |
# Steps |
| 38 |
- post 'missions/:id/agents/:agent/step_submission' => 'missions#step_submission', as: :step_submissions |
|
| 38 |
+ post 'missions/:id/agents/:agent/steps/:step/step_submission' => 'missions#step_submission', as: :step_submission |
|
| 39 | 39 |
|
| 40 | 40 |
# Admin Panel |
| 41 | 41 |
get "admin/dashboard" => "admin_panel#dashboard", :as => :admin_dashboard |