コード例 #1
0
    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
コード例 #2
0
ファイル: views.py プロジェクト: xltian/nitrate
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)
コード例 #3
0
ファイル: views.py プロジェクト: MrSenko/Nitrate
    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
コード例 #4
0
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)
コード例 #5
0
ファイル: views.py プロジェクト: erichuanggit/Nitrate
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))