Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wth - (SPARCDashboard) Validate Calendar when Sending Protocol to Epic #1198

Merged
merged 2 commits into from Dec 15, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -60,6 +60,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 @@ -128,11 +128,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