Skip to content

Commit

Permalink
Merge pull request #1198 from sparc-request/wth-validate-calendar
Browse files Browse the repository at this point in the history
wth - (SPARCDashboard) Validate Calendar when Sending Protocol to Epic
  • Loading branch information
Stuart-Johnson committed Dec 15, 2017
2 parents 96f483f + 3b2a3f5 commit 8d91722
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 21 deletions.
Expand Up @@ -62,6 +62,8 @@ $(document).ready ->
$.ajax
type: 'PUT'
url: "/dashboard/sub_service_requests/#{sub_service_request_id}/push_to_epic"
error: (xhr, ajaxOptions, thrownError) ->
swal('Error', 'This protocol has failed to be sent to Epic because of failed validation. Please make sure the service calendar is intact before trying again.', 'error')

$(document).on 'click', '#resend-surveys-button', ->
$(this).prop('disabled', true)
Expand Down
16 changes: 11 additions & 5 deletions app/controllers/dashboard/sub_service_requests_controller.rb
Expand Up @@ -135,11 +135,17 @@ def refresh_service_calendar
end

def push_to_epic
begin
@sub_service_request.protocol.push_to_epic(EPIC_INTERFACE, "admin_push", current_user.id)
flash[:success] = 'Request Pushed to Epic!'
rescue
flash[:alert] = $!.message
sr = @sub_service_request.service_request
sr.validate_service_calendar
unless sr.errors[:base].length > 0
begin
@sub_service_request.protocol.push_to_epic(EPIC_INTERFACE, "admin_push", current_user.id)
flash[:success] = 'Request Pushed to Epic!'
rescue
flash[:alert] = $!.message
end
else
raise 'error'
end
end

Expand Down
Expand Up @@ -26,9 +26,10 @@
%tbody
%tr
- if Setting.find_by_key("use_epic").value
%td.text-center
%button.btn.btn-sm.btn-primary#send_to_epic_button{ data: { sub_service_request_id: sub_service_request.id, toggle: 'tooltip', placement: 'top', delay: '{"show":"500"}'}, title: t(:dashboard)[:sub_service_requests][:tabs][:request_details][:tooltips][:send_to_epic] }
= t(:dashboard)[:sub_service_requests][:tabs][:request_details][:options][:send_to_epic]
- if sub_service_request.protocol.selected_for_epic? && sub_service_request.organization.services(&:send_to_epic).any?
%td.text-center
%button.btn.btn-sm.btn-primary#send_to_epic_button{ data: { sub_service_request_id: sub_service_request.id, toggle: 'tooltip', placement: 'top', delay: '{"show":"500"}'}, title: t(:dashboard)[:sub_service_requests][:tabs][:request_details][:tooltips][:send_to_epic] }
= t(:dashboard)[:sub_service_requests][:tabs][:request_details][:options][:send_to_epic]
- if sub_service_request.ctrc?
%td.text-center
%button.btn.btn-sm.btn-warning#admin_approvals_button{ data: { sub_service_request_id: sub_service_request.id }}
Expand Down
2 changes: 1 addition & 1 deletion spec/factories/organization.rb
Expand Up @@ -31,7 +31,7 @@

trait :ctrc do
after(:create) do |organization, evaluator|
organization.tag_list = "ctrc_clinical_services"
organization.tag_list = "ctrc"

organization.save
end
Expand Down
Expand Up @@ -25,9 +25,12 @@

context "Export to excel" do
it "should display service_request_id and sub_service_request_id in href" do
protocol = stub_protocol
service_request = stub_service_request(protocol: protocol)
sub_service_request = stub_sub_service_request(service_request: service_request)
protocol = create(:protocol, :without_validations, selected_for_epic: true)
service_request = create(:service_request, :without_validations, protocol: protocol)
org = create(:organization)
create(:service, organization: org, send_to_epic: true)
sub_service_request = create(:sub_service_request, protocol: protocol, service_request: service_request, organization: org)

render_request_details(protocol: protocol, service_request: service_request, sub_service_request: sub_service_request)
expect(response).to have_tag('a', with: { href: "/service_requests/#{service_request.id}.xlsx?admin_offset=1&sub_service_request_id=#{sub_service_request.id}" }, text: "Export to Excel")
end
Expand All @@ -37,9 +40,11 @@
stub_config("use_epic", true)

it "should display 'Send to Epic' button" do
protocol = stub_protocol
service_request = stub_service_request(protocol: protocol)
sub_service_request = stub_sub_service_request(service_request: service_request)
protocol = create(:protocol, :without_validations, selected_for_epic: true)
service_request = create(:service_request, :without_validations, protocol: protocol)
org = create(:organization)
create(:service, organization: org, send_to_epic: true)
sub_service_request = create(:sub_service_request, protocol: protocol, service_request: service_request, organization: org)

render_request_details(protocol: protocol, service_request: service_request, sub_service_request: sub_service_request)

Expand All @@ -48,10 +53,13 @@
end

context "use_epic falsey" do
stub_config("use_epic", false)
it "should not display 'Send to Epic' button" do
protocol = stub_protocol
service_request = stub_service_request(protocol: protocol)
sub_service_request = stub_sub_service_request(service_request: service_request)
protocol = create(:protocol, :without_validations, selected_for_epic: true)
service_request = create(:service_request, :without_validations, protocol: protocol)
org = create(:organization)
create(:service, organization: org, send_to_epic: true)
sub_service_request = create(:sub_service_request, protocol: protocol, service_request: service_request, organization: org)

render_request_details(protocol: protocol, service_request: service_request, sub_service_request: sub_service_request)

Expand All @@ -61,9 +69,11 @@

context "SubServiceRequest associated with CTRC Organization" do
it "should display 'Administrative Approvals' button" do
protocol = stub_protocol
service_request = stub_service_request(protocol: protocol)
sub_service_request = stub_sub_service_request(service_request: service_request, ctrc?: true)
protocol = create(:protocol, :without_validations, selected_for_epic: true)
service_request = create(:service_request, :without_validations, protocol: protocol)
org = create(:organization, :ctrc)
create(:service, organization: org, send_to_epic: true)
sub_service_request = create(:sub_service_request, protocol: protocol, service_request: service_request, organization: org)

render_request_details(protocol: protocol, service_request: service_request, sub_service_request: sub_service_request)

Expand Down

0 comments on commit 8d91722

Please sign in to comment.