def all(request, template_name = 'run/all.html'): """Read the test runs from database and display them.""" SUB_MODULE_NAME = "runs" if request.REQUEST.get('manager'): if request.user.is_authenticated() and ( request.REQUEST.get('people') == request.user.username or request.REQUEST.get('people') == request.user.email ): SUB_MODULE_NAME = "my_runs" # Initial the values will be use if it's not a search query_result = False trs = None order_by = request.REQUEST.get('order_by', 'create_date') asc = bool(request.REQUEST.get('asc', None)) # If it's a search if request.REQUEST.items(): search_form = SearchRunForm(request.REQUEST) if request.REQUEST.get('product'): search_form.populate(product_id=request.REQUEST['product']) else: search_form.populate() if search_form.is_valid(): # It's a search here. query_result = True trs = TestRun.list(search_form.cleaned_data) trs = trs.select_related('manager', 'default_tester', 'build', 'plan', 'build__product__name',) # Further optimize by adding caserun attributes: trs = trs.extra( select={'env_groups': RawSQL.environment_group_for_run,}, ) trs = order_run_queryset(trs, order_by, asc) else: search_form = SearchRunForm() # search_form.populate() # generating a query_url with order options query_url = remove_from_request_path(request, 'order_by') if asc: query_url = remove_from_request_path(query_url, 'asc') else: query_url = '%s&asc=True' % query_url return direct_to_template(request, template_name, { 'module': MODULE_NAME, 'sub_module': SUB_MODULE_NAME, 'test_runs': trs, 'query_result': query_result, 'search_form': search_form, 'query_url': query_url, })
def ajax_search(request, template_name ='run/common/json_runs.txt'): """Read the test runs from database and display them.""" SUB_MODULE_NAME = "runs" if request.REQUEST.get('manager'): if request.user.is_authenticated() and ( request.REQUEST.get('people') == request.user.username or request.REQUEST.get('people') == request.user.email ): SUB_MODULE_NAME = "my_runs" # Initial the values will be use if it's not a search query_result = False trs = None # If it's a search if request.REQUEST.items(): search_form = SearchRunForm(request.REQUEST) if request.REQUEST.get('product'): search_form.populate(product_id=request.REQUEST['product']) else: search_form.populate() if search_form.is_valid(): # It's a search here. query_result = True trs = TestRun.list(search_form.cleaned_data) trs = trs.select_related('manager', 'default_tester', 'build', 'plan', 'build__product__name',) # Further optimize by adding caserun attributes: trs = trs.extra( select={'env_groups': RawSQL.environment_group_for_run,}, ) else: search_form = SearchRunForm() # search_form.populate() #columnIndexNameMap is required for correct sorting behavior, 5 should be product, but we use run.build.product columnIndexNameMap = { 0: '', 1: 'run_id', 2: 'summary', 3: 'manager__username', 4: 'default_tester__username', 5: 'plan', 6: 'build__product__name', 7: 'product_version', 8: 'env_groups', 9: 'total_num_caseruns', 10: 'stop_date', 11: 'completed'} return ajax_response(request, trs, columnIndexNameMap, jsonTemplatePath='run/common/json_runs.txt')