add build button to new quizzes kebab on modules
closes QUIZ-8352 flag = new_quizzes_skip_to_build_module_button Test Plan: - Turn on the feature flag (site admin) - Navigate to the modules page for a course which has new quizzes. - Click on the kebab menu for the new quiz. - Build option should be present. - Clicking build should open up the NQ build screen. Change-Id: I881bc96e2a67f3cc92d565a237be0bf6fea77b74 Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/272010 Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com> Reviewed-by: Jorge Arteaga <jorge.arteaga@instructure.com> QA-Review: Mark McDermott <mmcdermott@instructure.com> Product-Review: Susan Sorensen <susan.sorensen@instructure.com>
This commit is contained in:
parent
4cb2279993
commit
bd68b60a66
|
@ -1750,7 +1750,10 @@ class ApplicationController < ActionController::Base
|
|||
def content_tag_redirect(context, tag, error_redirect_symbol, tag_type=nil)
|
||||
url_params = tag.tag_type == 'context_module' ? { :module_item_id => tag.id } : {}
|
||||
if tag.content_type == 'Assignment'
|
||||
use_edit_url = Account.site_admin.feature_enabled?(:new_quizzes_modules_support) && @context.grants_right?(@current_user, :manage) && tag.quiz_lti
|
||||
use_edit_url = params[:build].nil? &&
|
||||
Account.site_admin.feature_enabled?(:new_quizzes_modules_support) &&
|
||||
@context.grants_right?(@current_user, :manage) &&
|
||||
tag.quiz_lti
|
||||
redirect_symbol = use_edit_url ? :edit_context_assignment_url : :context_assignment_url
|
||||
redirect_to named_context_url(context, redirect_symbol, tag.content_id, url_params)
|
||||
elsif tag.content_type == 'WikiPage'
|
||||
|
|
|
@ -153,4 +153,8 @@ module ContextModulesHelper
|
|||
end
|
||||
TRANSLATED_COMMENT_TYPE[item.content_type.to_sym] || I18n.t('Unknown Content Type')
|
||||
end
|
||||
|
||||
def module_item_new_quizzes_build_button_enabled?
|
||||
Account.site_admin.feature_enabled?(:new_quizzes_skip_to_build_module_button)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
'indent' => "<i class='icon-arrow-right'></i>".html_safe,
|
||||
'outdent' => "<i class='icon-arrow-left'></i>".html_safe,
|
||||
'edit' => "<i class='icon-edit'></i>".html_safe,
|
||||
'quiz' => "<i class='icon-quiz'></i>".html_safe,
|
||||
'delete' => "<i class='icon-end'></i>".html_safe,
|
||||
'duplicate' => "<i class='icon-copy-course'></i>".html_safe,
|
||||
'copy_to' => "<i class='icon-duplicate'></i>".html_safe,
|
||||
|
@ -254,6 +255,9 @@
|
|||
<li role="presentation"><a href="<%= context_url(@context, :context_url) %>/modules/items/<%= module_item ? module_item.id : "{{ id }}" %>" class="outdent_item_link" title="<%= t('Decrease indent') %>"><%= @module_item_image_tags['outdent'] %> <%= t('Decrease indent') %></a></li>
|
||||
<li role="presentation"><a href="<%= context_url(@context, :context_url) %>/modules/items/<%= module_item ? module_item.id : "{{ id }}" %>" class="indent_item_link" title="<%= t('Increase indent') %>"><%= @module_item_image_tags['indent'] %> <%= t('Increase indent') %></a></li>
|
||||
<li role="presentation"><a href="<%= context_url(@context, :context_url) %>/modules/items/<%= module_item ? module_item.id : "{{ id }}" %>" class="edit_item_link edit_link" title="<%= t('Edit item details') %>"><%= @module_item_image_tags['edit'] %> <%= t('Edit') %></a></li>
|
||||
<% if module_item && module_item.quiz_lti && module_item_new_quizzes_build_button_enabled? %>
|
||||
<li role="presentation"><a href="<%= context_url(@context, :context_url) %>/modules/items/<%= module_item ? module_item.id : "{{ id }}" %>?build=true" title="<%= t('Build quiz') %>"><%= @module_item_image_tags['quiz'] %> <%= t('Build') %></a></li>
|
||||
<%end%>
|
||||
<li class="dupe-option" role="presentation"><a href="/api/v1<%= context_url(@context, :context_url) %>/modules/items/<%= module_item ? module_item.id : "{{ id }}" %>/duplicate" class="duplicate_item_link" title="<%= t('Duplicate Item') %>"><%= @module_item_image_tags['duplicate'] %> <%= t('Duplicate') %></a></li>
|
||||
<li role="presentation">
|
||||
<a href="#<%= module_item ? module_item.id : "{{ id }}" %>"
|
||||
|
|
|
@ -46,3 +46,8 @@ new_quizzes_account_course_level_item_banks:
|
|||
banks owned by specific courses and the root account in new quizzes.
|
||||
applies_to: SiteAdmin
|
||||
state: hidden
|
||||
new_quizzes_skip_to_build_module_button:
|
||||
display_name: New Quizzes Build Button In Module Items
|
||||
description: Provides a button which navigates straight to the Build screen in the kebab menu for New Quizzes items on the Modules page.
|
||||
applies_to: SiteAdmin
|
||||
state: hidden
|
||||
|
|
|
@ -804,6 +804,19 @@ RSpec.describe ApplicationController do
|
|||
allow(controller).to receive(:redirect_to)
|
||||
controller.send(:content_tag_redirect, Account.default, tag, nil)
|
||||
end
|
||||
|
||||
context 'when the build param is passed' do
|
||||
it 'redirects to build for a quiz_lti assignment' do
|
||||
tag = create_tag(content_type: 'Assignment')
|
||||
allow(tag).to receive(:quiz_lti).and_return true
|
||||
expect(controller).to receive(:named_context_url).with(
|
||||
Account.default, :context_assignment_url, 44, {module_item_id: 42}
|
||||
).and_return('nil')
|
||||
allow(controller).to receive(:redirect_to)
|
||||
controller.params[:build] = true
|
||||
controller.send(:content_tag_redirect, Account.default, tag, nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it 'redirects for a quiz' do
|
||||
|
|
|
@ -349,4 +349,20 @@ describe ContextModulesHelper do
|
|||
expect(cyoe_able?(item)).to eq false
|
||||
end
|
||||
end
|
||||
|
||||
describe 'module_item_new_quizzes_build_button_enabled?' do
|
||||
it 'returns true when the feature flag is on' do
|
||||
allow(Account.site_admin).to receive(:feature_enabled?)
|
||||
.with(:new_quizzes_skip_to_build_module_button)
|
||||
.and_return(true)
|
||||
expect(module_item_new_quizzes_build_button_enabled?).to eq true
|
||||
end
|
||||
|
||||
it 'returns false when the feature flag is off' do
|
||||
allow(Account.site_admin).to receive(:feature_enabled?)
|
||||
.with(:new_quizzes_skip_to_build_module_button)
|
||||
.and_return(false)
|
||||
expect(module_item_new_quizzes_build_button_enabled?).to eq false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue