Ejemplo n.º 1
0
def get_worker_all(request, page_index):
    """ Returns html for the workers page """
    if request.method != 'GET':
        return res.get_only_get_allowed({})

    worker_entries = WorkerEntry.objects.all().order_by('name')

    page = Page(WORKER_ITEMS_PER_PAGE, page_index)
    pager = Paginator(worker_entries, page.items_per_page)
    current_page = pager.page(page.page_index)
    worker_entries = current_page.object_list
    page_indices = pag.get_pagination_indices(page, PAGINATION_HALF_RANGE,
                                              pager.num_pages)

    workers = get_workers_with_benchmark_info(worker_entries)

    control = {}
    control['name'] = '  Download Worker'
    control['link'] = ViewUrlGenerator.get_download_worker_url()
    control['icon'] = 'fa fa-arrow-down'
    control['onclick'] = 'window.location="{0}"'.format(control['link'])

    pagination = ViewPrepareObjects.prepare_pagination_workers(page_indices)

    data = {}
    data['menu'] = ViewPrepareObjects.prepare_menu_for_html([])
    data['pagination'] = pagination
    data['workers'] = ViewPrepareObjects.prepare_workers_for_html(workers)
    data['controls'] = []
    data['controls'].append(control)

    return res.get_template_data(request, 'presenter/worker_all.html', data)
Ejemplo n.º 2
0
def get_feed_reports_from_worker(request, worker_id, page_index):
    """ Returns a single item list of all the feeds produced by a worker """
    if request.method != 'GET':
        return res.get_only_get_allowed({})

    feed_entries = FeedEntry.objects.filter(worker__id=worker_id).order_by('-created_at')

    page = Page(FEED_REPORT_ITEMS_PER_PAGE, page_index)
    pager = Paginator(feed_entries, page.items_per_page)
    current_page = pager.page(page.page_index)
    feed_entries = current_page.object_list
    page_indices = pag.get_pagination_indices(page, PAGINATION_HALF_RANGE, pager.num_pages)

    items = []
    for report in feed_entries:
        obj = {}
        obj['name'] = 'REPORT {0}'.format(report.id)
        obj['url'] = ViewUrlGenerator.get_feed_report_url(report.id)
        items.append(obj)

    data = {}
    data['menu'] = ViewPrepareObjects.prepare_menu_for_html([])
    data['controls'] = get_feed_controls(worker_id, KEEP_YOUNG_COUNT)
    data['pagination'] = ViewPrepareObjects.prepare_pagination_feed_reports(worker_id, page_indices)
    data['items'] = items

    return res.get_template_data(request, 'presenter/single_item_list.html', data)
Ejemplo n.º 3
0
    def test_pagination_page_index_out_bottom_bound(self):
        pagination = pag.get_pagination_indices(Page(1, -1), 2, 10)

        self.assertEqual(1, pagination['prev'])
        self.assertEqual(1, pagination['current'])
        self.assertEqual(2, pagination['next'])
        self.assertEqual([1, 2, 3, 4, 5], pagination['page_indices'])
Ejemplo n.º 4
0
    def test_pagination_indices_only_one_page(self):
        pagination = pag.get_pagination_indices(Page(1, 3), 2, 1)

        self.assertEqual(1, pagination['prev'])
        self.assertEqual(1, pagination['current'])
        self.assertEqual(1, pagination['next'])
        self.assertEqual([1], pagination['page_indices'])
Ejemplo n.º 5
0
    def test_pagination_page_index_out_upper_bound(self):
        pagination = pag.get_pagination_indices(Page(1, 12), 2, 10)

        self.assertEqual(9, pagination['prev'])
        self.assertEqual(10, pagination['current'])
        self.assertEqual(10, pagination['next'])
        self.assertEqual([6, 7, 8, 9, 10], pagination['page_indices'])
Ejemplo n.º 6
0
    def test_pagination_indices_start_out_of_bounds_small(self):
        pagination = pag.get_pagination_indices(Page(1, 2), 2, 4)

        self.assertEqual(1, pagination['prev'])
        self.assertEqual(2, pagination['current'])
        self.assertEqual(3, pagination['next'])
        self.assertEqual([1, 2, 3, 4], pagination['page_indices'])
Ejemplo n.º 7
0
    def test_pagination_indices_start_close_to_upper_bounds_small(self):
        pagination = pag.get_pagination_indices(Page(1, 3), 2, 4)

        self.assertEqual(2, pagination['prev'])
        self.assertEqual(3, pagination['current'])
        self.assertEqual(4, pagination['next'])
        self.assertEqual([1, 2, 3, 4], pagination['page_indices'])
Ejemplo n.º 8
0
    def test_pagination_indices_start_close_to_upper_bound(self):
        pagination = pag.get_pagination_indices(Page(1, 9), 2, 10)

        self.assertEqual(8, pagination['prev'])
        self.assertEqual(9, pagination['current'])
        self.assertEqual(10, pagination['next'])
        self.assertEqual([6, 7, 8, 9, 10], pagination['page_indices'])
Ejemplo n.º 9
0
    def test_pagination_indices_start_inbounds(self):
        pagination = pag.get_pagination_indices(Page(1, 4), 2, 10)

        self.assertEqual(3, pagination['prev'])
        self.assertEqual(4, pagination['current'])
        self.assertEqual(5, pagination['next'])
        self.assertEqual([2, 3, 4, 5, 6], pagination['page_indices'])
Ejemplo n.º 10
0
    def get_paginated_layouts_as_objects(page):
        """ Returns paginated list of layouts """
        layout_entries = BluesteelLayoutEntry.objects.all().order_by(
            '-created_at')

        pager = Paginator(layout_entries, page.items_per_page)
        current_page = pager.page(page.page_index)
        layout_entries = current_page.object_list
        page_indices = pag.get_pagination_indices(page, PAGINATION_HALF_RANGE,
                                                  pager.num_pages)

        layouts = []
        for layout in layout_entries:
            obj = {}
            obj['id'] = layout.id
            obj['name'] = layout.name
            obj['active'] = layout.active
            obj['project_index_path'] = layout.project_index_path
            obj['projects'] = []

            project_entries = BluesteelProjectEntry.objects.filter(
                layout__id=layout.id)

            for prj_entry in project_entries:
                prj = {}
                prj['name'] = prj_entry.name
                obj['projects'].append(prj)

            layouts.append(obj)
        return (layouts, page_indices)
    def get_bench_exec_commits_paginated(project_entry, branch_entry, page):
        """ Returns a commit list window from a page """
        branch_trails = GitBranchTrailEntry.objects.filter(project=project_entry, branch=branch_entry).order_by('order')

        pager = Paginator(branch_trails, page.items_per_page)
        current_page = pager.page(page.page_index)
        branch_trails = current_page.object_list
        page_indices = pag.get_pagination_indices(page, PAGINATION_HALF_RANGE, pager.num_pages)

        commit_hashes = []
        for trail in branch_trails:
            commit_hashes.append(trail.commit.commit_hash)
        return (commit_hashes, page_indices)
Ejemplo n.º 12
0
    def get_pgtd_branches_trimmed_by_merge_target(page, project, max_commits):
        """ Returns paginated branch data trimmed by its merge target information """
        branches = GitBranchEntry.objects.filter(
            project=project).order_by('order')

        pager = Paginator(branches, page.items_per_page)
        current_page = pager.page(page.page_index)
        branches = current_page.object_list
        page_indices = pag.get_pagination_indices(page, PAGINATION_HALF_RANGE,
                                                  pager.num_pages)

        branches = GitController.get_branches_trimmed_by_merge_target(
            project, branches, max_commits)
        return branches, page_indices
    def get_paginated_projects_as_objects(page):
        """ Returns paginated list of projects """
        project_entries = BluesteelProjectEntry.objects.all().order_by('-created_at')

        pager = Paginator(project_entries, page.items_per_page)
        current_page = pager.page(page.page_index)
        project_entries = current_page.object_list
        page_indices = pag.get_pagination_indices(page, PAGINATION_HALF_RANGE, pager.num_pages)

        projects = []
        for project in project_entries:
            obj = {}
            obj['id'] = project.id
            obj['name'] = project.name
            projects.append(obj)
        return (projects, page_indices)
Ejemplo n.º 14
0
    def test_pagination_normal_range(self):
        pagination = pag.get_pagination_indices(Page(2, 3), 2, 15)
        pag_url = pag.get_pagination_urls(pagination, '/view/main/')

        self.assertEqual('/view/main/page/2/', pag_url['prev'])
        self.assertEqual('/view/main/page/3/', pag_url['current'])
        self.assertEqual('/view/main/page/4/', pag_url['next'])
        self.assertEqual('/view/main/page/1/', pag_url['pages'][0]['url'])
        self.assertEqual('/view/main/page/2/', pag_url['pages'][1]['url'])
        self.assertEqual('/view/main/page/3/', pag_url['pages'][2]['url'])
        self.assertEqual('/view/main/page/4/', pag_url['pages'][3]['url'])
        self.assertEqual('/view/main/page/5/', pag_url['pages'][4]['url'])
        self.assertEqual(1, pag_url['pages'][0]['index'])
        self.assertEqual(2, pag_url['pages'][1]['index'])
        self.assertEqual(3, pag_url['pages'][2]['index'])
        self.assertEqual(4, pag_url['pages'][3]['index'])
        self.assertEqual(5, pag_url['pages'][4]['index'])
        self.assertEqual(False, pag_url['pages'][0]['is_current'])
        self.assertEqual(False, pag_url['pages'][1]['is_current'])
        self.assertEqual(True, pag_url['pages'][2]['is_current'])
        self.assertEqual(False, pag_url['pages'][3]['is_current'])
        self.assertEqual(False, pag_url['pages'][4]['is_current'])
    def get_benchmark_definitions_with_pagination(items_per_page, page_index,
                                                  pagination_half_range):
        """ Returns Benchmark Definitions given a page index """
        def_entries = BenchmarkDefinitionEntry.objects.all().order_by(
            '-active', 'name')

        page = Page(items_per_page, page_index)
        pager = Paginator(def_entries, page.items_per_page)
        current_page = pager.page(page.page_index)
        def_entries = current_page.object_list
        page_indices = pag.get_pagination_indices(page, pagination_half_range,
                                                  pager.num_pages)

        definitions = []

        for def_entry in def_entries:
            def_obj = def_entry.as_object()
            def_obj['fluctuation_overrides'] = []
            def_obj['work_passes'] = []

            flucs = BenchmarkFluctuationOverrideEntry.objects.filter(
                definition__id=def_entry.id)
            for fluc in flucs:
                obj = {}
                obj['result_id'] = fluc.result_id
                obj['override_value'] = fluc.override_value
                def_obj['fluctuation_overrides'].append(obj)

            work_passes = BenchmarkDefinitionWorkerPassEntry.objects.filter(
                definition__id=def_entry.id)
            for work_pass in work_passes:
                def_obj['work_passes'].append(work_pass.as_object())

            definitions.append(def_obj)

        return (definitions, page_indices)