From dedffff1068ebde916e066a7b24f9eebae20fe8d Mon Sep 17 00:00:00 2001 From: Rady Date: Sun, 16 Aug 2020 19:20:15 +0300 Subject: [PATCH] Add toolbar html structure to testplan page --- tcms/testplans/static/testplans/js/get.js | 50 -------- tcms/testplans/templates/testplans/get.html | 125 ++++++++++++++++++-- tcms/testplans/views.py | 4 + 3 files changed, 121 insertions(+), 58 deletions(-) diff --git a/tcms/testplans/static/testplans/js/get.js b/tcms/testplans/static/testplans/js/get.js index d631a929f3..63256845f9 100644 --- a/tcms/testplans/static/testplans/js/get.js +++ b/tcms/testplans/static/testplans/js/get.js @@ -44,9 +44,6 @@ function drawTestCases(testCases, testPlanId, permissions) { container.append(getTestCaseRowContent(testCaseRowDocumentFragment.cloneNode(true), testCases[testCaseId], permissions)); } attachEvents(testCases, testPlanId, permissions); - if (permissions['perm-change-testcase']) { - drawStatusAndPriority(); - } } else { container.append(noCasesTemplate[0].innerHTML); } @@ -195,50 +192,3 @@ function attachEvents(testCases, testPlanId, permissions) { return $(ev.target).closest('.js-testcase-row').data('testcase-pk'); } } - -function drawStatusAndPriority() { - - jsonRPC('TestCaseStatus.filter', {}, function(statuses) { - const listItemTemplateFragment = $('#menu-status-item')[0].content; - - var listItemsNodes = []; - - for (var i = 0; i < statuses.length; i++) { - var liElement = $(listItemTemplateFragment.cloneNode(true)), - testCaseStatus = statuses[i]; - - liElement.find('a').text(testCaseStatus.name); - liElement.find('a')[0].dataset.id = testCaseStatus.id; - listItemsNodes.push(liElement); - } - - $('.js-test-case-menu-status').each(function() { - for (var i = 0; i < listItemsNodes.length; i++) { - // clone must be used, because items will be added only to the first TC - $(this).append(listItemsNodes[i].clone()); - } - }); - }); - - jsonRPC('Priority.filter', {}, function(priorities) { - const listItemTemplateFragment = $('#menu-priority-item')[0].content; - - var listItemsNodes = []; - - for (var i = 0; i < priorities.length; i++) { - var liElement = $(listItemTemplateFragment.cloneNode(true)), - priority = priorities[i]; - - liElement.find('a').text(priority.value); - liElement.find('a')[0].dataset.id = priority.id; - listItemsNodes.push(liElement); - } - - $('.js-test-case-menu-priority').each(function() { - for (var i = 0; i < listItemsNodes.length; i++) { - // clone must be used, because items will be added only to the first TC - $(this).append(listItemsNodes[i].clone()); - } - }); - }); -} diff --git a/tcms/testplans/templates/testplans/get.html b/tcms/testplans/templates/testplans/get.html index e70367c136..88f0bdad95 100644 --- a/tcms/testplans/templates/testplans/get.html +++ b/tcms/testplans/templates/testplans/get.html @@ -89,7 +89,117 @@

-
+
+
+
+
+
+ +
+
+ + +
+
+ +
+
+ + + + + +
+
+ +
+
+
+
+
+
+
@@ -135,17 +245,17 @@

  • {% trans 'Edit' %}
  • @@ -211,7 +321,6 @@

    - diff --git a/tcms/testplans/views.py b/tcms/testplans/views.py index b1a00960b1..49eda57551 100644 --- a/tcms/testplans/views.py +++ b/tcms/testplans/views.py @@ -16,6 +16,8 @@ from tcms.core.response import ModifySettingsTemplateResponse from tcms.testplans.forms import ClonePlanForm, NewPlanForm, PlanNotifyFormSet, SearchPlanForm from tcms.testplans.models import PlanType, TestPlan +from tcms.testcases.models import TestCaseStatus +from tcms.management.models import Priority @method_decorator(permission_required('testplans.add_testplan'), name='dispatch') @@ -152,6 +154,8 @@ def render_to_response(self, context, **response_kwargs): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) + context['statues'] = TestCaseStatus.objects.all() + context['priorities'] = Priority.objects.filter(is_active=True) # todo: this can be passed to the new template and consumed # in the JavaScript when rendering test cases based on status # confirmed_status = TestCaseStatus.get_confirmed()