Skip to content

Commit

Permalink
Merge pull request #1116 from sparc-request/revert-1110-revert-1093-j…
Browse files Browse the repository at this point in the history
…tm_add_form_func_to_org

SJ - Redo Jtm add form func to org
  • Loading branch information
Stuart-Johnson committed Oct 4, 2017
2 parents 50fd276 + f3f67f6 commit 3a1cdfb
Show file tree
Hide file tree
Showing 84 changed files with 563 additions and 550 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ $ ->
values[field.name] = field.value
serviceId = $('#service_id').val()
$.ajax
url: "/services/#{serviceId}/additional_details/questionnaire/preview"
url: "/additional_details/questionnaire/preview"
type: 'POST'
data: values
success: ->
Expand Down
2 changes: 1 addition & 1 deletion app/assets/javascripts/bootstrap-select.js
Original file line number Diff line number Diff line change
Expand Up @@ -675,7 +675,7 @@
this.$button.children('.filter-option').html(title);

if (this.options.counter) {
var badge = "<span class='badge bootstrap-select-badge'>"+this.$lis.length+"</span>"
var badge = "<span class='badge bootstrap-select-badge'>"+this.$lis.filter("[data-original-index]").length+"</span>"
this.$button.children('.filter-option').append(badge)
}

Expand Down
1 change: 1 addition & 0 deletions app/assets/javascripts/catalog_manager/catalog.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,7 @@ $ ->

$(document).on('change', 'input[id*="_process_ssrs"]', ->
$('#available_statuses_wrapper').toggle()
$('#questionnaires').toggle()
)

$(document).on('change', 'input[id*="_tag_list_clinical_work_fulfillment"]', ->
Expand Down
3 changes: 1 addition & 2 deletions app/assets/javascripts/dashboard/create_submission.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@ $ ->
# from the multiselect. So processedFormValues is rawFormValues without
# these extra blank options.
processedFormValues = (i for i in rawFormValues when i.value != "" or (j for j in rawFormValues when j.name == i.name and j.value != "").length == 0)
serviceId = (i.value for i in rawFormValues when i.name == "submission[service_id]")[0]

$.ajax
url: "/services/#{serviceId}/additional_details/submissions"
url: "/additional_details/submissions"
type: 'POST'
data: processedFormValues
9 changes: 4 additions & 5 deletions app/assets/javascripts/dashboard/delete_submission.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@
$ ->
$(document).on 'click', '.delete-submission', ->
id = $(this).data('id')
serviceId = $(this).data('service-id')
lineItemId = $(this).data('line-item-id')
ssrId = $(this).data('ssr-id')
protocolId = $(this).data('protocol-id')
swal {
title: I18n['swal']['swal_confirm']['title']
Expand All @@ -33,16 +32,16 @@ $ ->
confirmButtonText: 'Delete'
closeOnConfirm: true
}, ->
if lineItemId != undefined && protocolId != undefined
if ssrId != undefined && protocolId != undefined
$.ajax
type: 'DELETE'
url: "/services/#{serviceId}/additional_details/submissions/#{id}?protocol_id=#{protocolId}&line_item_id=#{lineItemId}"
url: "/additional_details/submissions/#{id}?protocol_id=#{protocolId}&ssr_id=#{ssrId}"
success: ->
swal('Deleted', 'Submission Deleted', "success")
else
$.ajax
type: 'DELETE'
url: "/services/#{serviceId}/additional_details/submissions/#{id}"
url: "/additional_details/submissions/#{id}"
success: ->
swal('Deleted', 'Submission Deleted', "success")

Expand Down
9 changes: 5 additions & 4 deletions app/assets/javascripts/dashboard/protocols.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -142,17 +142,18 @@ $(document).ready ->

if $selected_options.length > 0
$selected_option = $selected_options.first()
service_id = $selected_option.data('service-id')
questionnaire_id = $selected_option.data('questionnaire-id')
protocol_id = $selected_option.data('protocol-id')
line_item_id = $selected_option.data('line-item-id')
ssr_id = $selected_option.data('ssr-id')
$this = $(this)

$.ajax
method: 'GET'
url: "/services/#{service_id}/additional_details/submissions/new.js"
url: "/additional_details/submissions/new.js"
data:
protocol_id: protocol_id
line_item_id: line_item_id
ssr_id: ssr_id
questionnaire_id: questionnaire_id
success: ->
$this.selectpicker('deselectAll')
$this.selectpicker('render')
Expand Down
3 changes: 1 addition & 2 deletions app/assets/javascripts/dashboard/update_submission.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,8 @@ $ ->
# from the multiselect. So processedFormValues is rawFormValues without
# these extra blank options.
processedFormValues = (i for i in rawFormValues when i.value != "" or (j for j in rawFormValues when j.name == i.name and j.value != "").length == 0)
serviceId = (i.value for i in rawFormValues when i.name == "submission[service_id]")[0]

$.ajax
url: "/services/#{serviceId}/additional_details/submissions/#{id}"
url: "/additional_details/submissions/#{id}"
type: 'PATCH'
data: processedFormValues
10 changes: 6 additions & 4 deletions app/controllers/additional_details/previews_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ class AdditionalDetails::PreviewsController < ApplicationController
before_action :authenticate_identity!

def create
@service = Service.find(params[:service_id])
@service = params[:questionable_type].classify.constantize.find(params[:questionable_id])
@questionnaire = Questionnaire.new(questionnaire_params)
@submission = Submission.new
@submission.questionnaire_responses.build
respond_to do |format|
format.js
if @questionnaire.valid?
respond_to do |format|
format.js
end
end
end

Expand All @@ -36,4 +38,4 @@ def create
def questionnaire_params
params.require(:questionnaire).permit!
end
end
end
22 changes: 13 additions & 9 deletions app/controllers/additional_details/questionnaires_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@

class AdditionalDetails::QuestionnairesController < ApplicationController
before_action :authenticate_identity!
before_action :find_service
before_action :find_questionable
before_action :find_questionnaire, only: [:edit, :update, :destroy]
layout 'additional_details'

def index
@questionnaires = @service.questionnaires
@questionnaires = @questionable.questionnaires
end

def new
Expand All @@ -37,26 +37,30 @@ def edit
end

def create
@questionnaire = @service.questionnaires.new(questionnaire_params)

@questionnaire = @questionable.questionnaires.new(questionnaire_params)
if @questionnaire.save
redirect_to service_additional_details_questionnaires_path(@service)
redirect_to additional_details_questionnaires_path(questionable_id: @questionable.id, questionable_type: @questionable.class.base_class.name)
else
render :new
end
end

def update
@questionnaires = @questionable.questionnaires
if @questionnaire.update(questionnaire_params)
redirect_to service_additional_details_questionnaires_path(@service)
respond_to do |format|
format.html{ redirect_to additional_details_questionnaires_path(questionable_id: @questionable.id, questionable_type: @questionable.class.base_class.name) }
format.js{ render :update }
end
else
render :edit
end
end

def destroy
@questionnaire.destroy
redirect_to service_additional_details_questionnaires_path(@service)
redirect_to additional_details_questionnaires_path(questionable_id: @questionable.id, questionable_type: @questionable.class.base_class.name)
end

private
Expand All @@ -65,8 +69,8 @@ def find_questionnaire
@questionnaire = Questionnaire.find(params[:id])
end

def find_service
@service = Service.find(params[:service_id])
def find_questionable
@questionable = params[:questionable_type].classify.constantize.find(params[:questionable_id])
end

def questionnaire_params
Expand Down
32 changes: 15 additions & 17 deletions app/controllers/additional_details/submissions_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,23 @@ class AdditionalDetails::SubmissionsController < ApplicationController
include AdditionalDetails::StatesHelper

def index
@service = Service.find(params[:service_id])
@submissions = @service.submissions
@questionnaire = Questionnaire.find(params[:questionnaire_id])
@questionable = @questionnaire.questionable
@submissions = @questionnaire.submissions
end

def show
@submission = Submission.find(params[:id])
@questionnaire_responses = @submission.questionnaire_responses
@questionnaire = Questionnaire.find(@submission.questionnaire_id)
@questionnaire = @submission.questionnaire
@items = @questionnaire.items
respond_to do |format|
format.js
end
end

def new
@service = Service.find(params[:service_id])
@questionnaire = @service.questionnaires.active.first
@questionnaire = Questionnaire.find(params[:questionnaire_id])
@submission = Submission.new
@submission.questionnaire_responses.build
respond_to do |format|
Expand All @@ -49,22 +49,20 @@ def new
end

def edit
@service = Service.find(params[:service_id])
@submission = Submission.find(params[:id])
@questionnaire = @service.questionnaires.active.first
@questionnaire = @submission.questionnaire
respond_to do |format|
format.js
end
end

def create
@service = Service.find(params[:service_id])
@questionnaire = @service.questionnaires.active.first
@submission = Submission.new(submission_params)
@questionnaire = @submission.questionnaire
@protocol = Protocol.find(submission_params[:protocol_id])
@submissions = @protocol.submissions
@line_item = LineItem.find(submission_params[:line_item_id])
@service_request = @line_item.service_request
@sub_service_request = @submission.sub_service_request
@service_request = @sub_service_request.service_request
@permission_to_edit = current_user.can_edit_protocol?(@protocol)
@user = current_user

Expand All @@ -78,9 +76,8 @@ def create
end

def update
@service = Service.find(params[:service_id])
@submission = Submission.find(params[:id])
@protocol = Protocol.find(@submission.protocol_id)
@protocol = @submission.protocol
@submissions = @protocol.submissions
if params[:sr_id]
@service_request = ServiceRequest.find(params[:sr_id])
Expand All @@ -97,17 +94,18 @@ def update
end

def destroy
@service = Service.find(params[:service_id])
@submission = Submission.find(params[:id])
@user = current_user
if params[:protocol_id]
@protocol = Protocol.find(params[:protocol_id])
@submissions = @protocol.submissions
@permission_to_edit = current_user.can_edit_protocol?(@protocol)
else
@submissions = @submission.questionnaire.submissions
end
if params[:line_item_id]
@line_item = LineItem.find(params[:line_item_id])
@service_request = ServiceRequest.find(@line_item.service_request_id)
if params[:ssr_id]
@sub_service_request = SubServiceRequest.find(params[:ssr_id])
@service_request = ServiceRequest.find(@sub_service_request.service_request_id)
end
respond_to do |format|
if @submission.destroy
Expand Down

This file was deleted.

39 changes: 24 additions & 15 deletions app/helpers/dashboard/sub_service_requests_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -208,27 +208,36 @@ def display_owner(ssr)
end

def display_ssr_submissions(ssr)
line_items = ssr.line_items.includes(service: :questionnaires).includes(:submission).to_a.select(&:has_incomplete_additional_details?)
has_incomplete_service = ssr.has_incomplete_additional_details_services?
has_incomplete_organization = ssr.has_incomplete_additional_details_organization?

if line_items.any?
if has_incomplete_service or has_incomplete_organization
protocol = ssr.protocol
submissions = ""

line_items.each do |li|
submissions += content_tag(
:option,
"#{li.service.name}",
data: {
service_id: li.service.id,
protocol_id: protocol.id,
line_item_id: li.id
}
)
submissions = {}
if has_incomplete_service
submissions[:Services] = []
ssr.line_items.includes(:service).map(&:service).each do |service|
next unless service.questionnaires.active.present?
submissions[:Services] << [service.name, service.name, data: {
questionnaire_id: service.questionnaires.active.first.id,
protocol_id: protocol.id,
ssr_id: ssr.id
}]
end
end
if has_incomplete_organization
submissions[:Organization] = []
submissions[:Organization] << [ssr.organization.name, ssr.organization.name, data: {
questionnaire_id: ssr.organization.questionnaires.active.first.id,
protocol_id: protocol.id,
ssr_id: ssr.id
}]
end
submission_list = grouped_options_for_select(submissions)

content_tag(
:select,
submissions.html_safe,
submission_list.html_safe,
title: t(:dashboard)[:service_requests][:additional_details][:selectpicker],
class: 'selectpicker complete-details',
data: {
Expand Down
6 changes: 0 additions & 6 deletions app/models/line_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ class LineItem < ApplicationRecord
has_many :procedures
has_many :admin_rates, dependent: :destroy
has_many :notes, as: :notable, dependent: :destroy

has_one :submission, dependent: :destroy
has_one :protocol, through: :service_request

attr_accessor :pricing_scheme
Expand Down Expand Up @@ -336,10 +334,6 @@ def display_service_abbreviation
service_abbreviation
end

def has_incomplete_additional_details?
service.questionnaires.active.present? && !submission.present?
end

private

def build_line_items_visits_if_pppv
Expand Down

0 comments on commit 3a1cdfb

Please sign in to comment.