def build_cases_search_form(request, populate=None, plan=None): """Build search form preparing for quering TestCases""" # Initial the form and template action = request.POST.get('a') if action in TESTCASE_OPERATION_ACTIONS: search_form = SearchCaseForm(request.POST) request.session['items_per_page'] = \ request.POST.get('items_per_page', settings.DEFAULT_PAGE_SIZE) else: d_status = get_case_status(request.POST.get('template_type')) d_status_ids = d_status.values_list('pk', flat=True) items_per_page = request.session.get('items_per_page', settings.DEFAULT_PAGE_SIZE) search_form = SearchCaseForm(initial={ 'case_status': d_status_ids, 'items_per_page': items_per_page }) if populate: if request.POST.get('product'): search_form.populate(product_id=request.POST['product']) elif plan and plan.product_id: search_form.populate(product_id=plan.product_id) else: search_form.populate() return search_form
def post(self, request, plan_id): plan = get_object_or_404(TestPlan, pk=int(plan_id)) search_mode = request.POST.get('search_mode') if search_mode == 'quick': form = quick_form = QuickSearchCaseForm(request.POST) normal_form = SearchCaseForm() else: form = normal_form = SearchCaseForm(request.POST) form.populate(product_id=request.POST.get('product')) quick_form = QuickSearchCaseForm() cases = [] if form.is_valid(): cases = TestCase.list(form.cleaned_data) cases = cases.select_related( 'author', 'default_tester', 'case_status', 'priority' ).only( 'pk', 'summary', 'create_date', 'author__email', 'default_tester__email', 'case_status__name', 'priority__value' ).exclude( case_id__in=plan.case.values_list('case_id', flat=True)) context = { 'test_plan': plan, 'test_cases': cases, 'search_form': normal_form, 'quick_form': quick_form, 'search_mode': search_mode } return render(request, self.template_name, context=context)
def link_cases(self, template_name='plan/search_case.html'): """Handle to form to add case to plans""" SUB_MODULE_NAME = 'plans' tcs = None if request.POST.get('action') == 'add_to_plan': if request.user.has_perm('testcases.add_testcaseplan'): tcs = TestCase.objects.filter( case_id__in=request.POST.getlist('case')) for tc in tcs: tp.add_case(tc) else: return HttpResponse("Permission Denied") return HttpResponseRedirect( reverse('test_plan_url_short', args=[plan_id])) search_mode = request.POST.get('search_mode') if request.POST.get('action') == 'search': if search_mode == 'quick': form = quick_form = QuickSearchCaseForm(request.POST) normal_form = SearchCaseForm() else: form = normal_form = SearchCaseForm(request.POST) form.populate(product_id=request.POST.get('product')) quick_form = QuickSearchCaseForm() if form.is_valid(): tcs = TestCase.list(form.cleaned_data) tcs = tcs.select_related( 'author', 'default_tester', 'case_status', 'priority').only('pk', 'summary', 'create_date', 'author__email', 'default_tester__email', 'case_status__name', 'priority__value') tcs = tcs.exclude( case_id__in=tp.case.values_list('case_id', flat=True)) else: normal_form = SearchCaseForm( initial={ 'product': tp.product_id, 'product_version': tp.product_version_id, 'case_status_id': TestCaseStatus.get_CONFIRMED() }) quick_form = QuickSearchCaseForm() context_data = { 'module': MODULE_NAME, 'sub_module': SUB_MODULE_NAME, 'test_plan': tp, 'test_cases': tcs, 'search_form': normal_form, 'quick_form': quick_form, 'search_mode': search_mode } return render(request, template_name, context_data)
def get(self, request, plan_id): plan = get_object_or_404(TestPlan, pk=int(plan_id)) normal_form = SearchCaseForm(initial={ 'product': plan.product_id, 'product_version': plan.product_version_id, 'case_status_id': TestCaseStatus.get_CONFIRMED() }) quick_form = QuickSearchCaseForm() return render(self.request, self.template_name, { 'search_form': normal_form, 'quick_form': quick_form, 'test_plan': plan, })
def get_context_data(self, **kwargs): form = SearchCaseForm(self.request.GET) if self.request.GET.get('product'): form.populate(product_id=self.request.GET['product']) else: form.populate() return { 'form': form, }
def get_context_data(self, **kwargs): form = SearchCaseForm(self.request.GET) if self.request.GET.get("product"): form.populate(product_id=self.request.GET["product"]) else: form.populate() return { "form": form, }
def search(request): """ Shows the search form which uses JSON RPC to fetch the resuts """ form = SearchCaseForm(request.GET) if request.GET.get('product'): form.populate(product_id=request.GET['product']) else: form.populate() context_data = { 'form': form, } return render(request, 'testcases/search.html', context_data)