def _report_context(self): errors = None report_data = None queries = self.request.GET if queries: form = self._get_form(self.request.GET) if form.is_valid(): queries = form.cleaned_data report_data = self.get_report_data(form) else: errors = form.errors queries = fmt_queries(queries) del queries['report type'] request_path = remove_from_request_path(self.request, 'report_type') data = { 'errors': errors, 'queries': queries, 'request_path': request_path, 'run_form': form, 'report_data': report_data, } if request_path: data['path_without_build'] = remove_from_request_path(request_path, 'r_build') return data
def view_test_run_report(request): templates = { 'per_build_report': 'report/caserun_report_per_build.html', 'per_tester_report': 'report/caserun_report_per_tester.html', 'per_priority_report': 'report/caserun_report_per_priority.html', 'per_plan_tag_report': 'report/testrun_report_per_plan_tag.html', 'per_plan_build_report': 'report/testrun_report_per_plan_build.html', 'runs_with_rates_per_plan_tag': 'report/testrun_report_by_plan_tag_with_rates.html', 'runs_with_rates_per_plan_build': 'report/testrun_report_by_plan_build_with_rates.html', } errors = None queries = request.GET data = {} report_type = queries.get('report_type') PRODUCT_CHOICE = [ (p.pk, p.name) for p in cached_entities('product') ] if queries: run_form = RunForm(queries) run_form.populate(queries) if run_form.is_valid(): queries = run_form.cleaned_data data = test_run_report(queries, report_type) else: errors = run_form.errors tmpl = templates.get(report_type, 'report/common/search_run.html') queries = fmt_queries(queries) request_path = remove_from_request_path(request, 'report_type') if request_path: path_without_build = remove_from_request_path(request_path, 'r_build') data.update(locals()) return direct_to_template(request, tmpl, data)
def advance_search(request): data = request.GET target = data.get('target') plan_form = PlanForm(data) case_form = CaseForm(data) run_form = RunForm(data) # Update MultipleModelChoiceField on each form dynamically plan_form.populate(data) case_form.populate(data) run_form.populate(data) all_forms = (plan_form, case_form, run_form) rendered_errors = _render_errors(request, data, all_forms) if rendered_errors: return rendered_errors start = time.time() results = _query(plan_form.cleaned_data, run_form.cleaned_data, case_form.cleaned_data, target) results = order_targets(target, results, data) end = time.time() timecost = round(end - start, 3) queries = [] for form in all_forms: queries.append(form.cleaned_data) queries = fmt_queries(*queries) queries['Target'] = target return _render_results(request, results, timecost, queries)
def view_test_run_report(request): templates = { 'per_build_report': 'report/caserun_report_per_build.html', 'per_tester_report': 'report/caserun_report_per_tester.html', 'per_priority_report': 'report/caserun_report_per_priority.html', 'per_plan_tag_report': 'report/testrun_report_per_plan_tag.html', 'per_plan_build_report': 'report/testrun_report_per_plan_build.html', 'runs_with_rates_per_plan_tag': 'report/testrun_report_by_plan_tag_with_rates.html', 'runs_with_rates_per_plan_build': 'report/testrun_report_by_plan_build_with_rates.html', } errors = None queries = request.GET data = {} report_type = queries.get('report_type') PRODUCT_CHOICE = [(p.pk, p.name) for p in cached_entities('product')] if queries: run_form = RunForm(queries) run_form.populate(queries) if run_form.is_valid(): queries = run_form.cleaned_data data = test_run_report(queries, report_type) else: errors = run_form.errors tmpl = templates.get(report_type, 'report/common/search_run.html') queries = fmt_queries(queries) request_path = remove_from_request_path(request, 'report_type') if request_path: path_without_build = remove_from_request_path(request_path, 'r_build') data.update(locals()) return render_to_response(tmpl, data, context_instance=RequestContext(request))