From b204402996ba0d7e715263a5849aaa1843e23e2c Mon Sep 17 00:00:00 2001 From: Kento HASEGAWA Date: Fri, 23 Aug 2019 17:42:08 +0900 Subject: [PATCH] Improve the request status display in the problem view --- main.py | 5 +---- roles/host.py | 9 +++++--- static/js/adc2019.js | 36 ++++-------------------------- templates/part_problem_status.html | 20 ----------------- 4 files changed, 11 insertions(+), 59 deletions(-) diff --git a/main.py b/main.py index 2564e88..8744b06 100644 --- a/main.py +++ b/main.py @@ -44,12 +44,9 @@ def webui_part_solver_status(): else: return abort(404) -# @webui.route('/part/request/') @webui.route('/part/request/') -# def webui_part_request_status(request_id=None): def webui_part_request_status(problem_name=None): if (adc2019system.role is not None) and (adc2019system.role.type == 'host'): - # request_status = adc2019system.role.get_request_status(float(request_id)) request_status = adc2019system.role.get_request_by_problem(problem_name) return render_template('part_request_status.html', status=request_status) else: @@ -64,7 +61,7 @@ def webui_part_problem_status(name=None): if (adc2019system.role is not None) and (adc2019system.role.type == 'host'): problem = adc2019system.role.get_problem(name) workers = adc2019system.role.get_workers() - solutions = reversed(sorted(problem.get_solutions().items(), key=lambda x:x[0])) + solutions = reversed(sorted(problem.get_solutions().items(), key=lambda x:x[1].timestamp)) if problem is None: return abort(404) else: diff --git a/roles/host.py b/roles/host.py index 82a3b4d..d0d18a6 100644 --- a/roles/host.py +++ b/roles/host.py @@ -354,6 +354,8 @@ class Request(object): self.solvers = solvers self.response = dict() + for w in self.solvers: + self.response[w] = list() @property def request_data(self): @@ -370,7 +372,8 @@ class Request(object): def store_response(self, data): worker = data['worker'] - self.response[worker] = data + self.response[worker].append(data) + # self.response[worker] = data def get_status(self): worker_count = 0 @@ -401,8 +404,8 @@ class Request(object): worker_status = dict() for v in self.solvers: - if v in self.response: - worker_status[v] = self.response[v]['status'] + if v in self.response and len(self.response[v]) > 0: + worker_status[v] = self.response[v][0]['status'] else: if self.worker_manager.workers[v].status == 'Not connected': worker_status[v] = 'Not connected' diff --git a/static/js/adc2019.js b/static/js/adc2019.js index fb9877a..5b83abf 100644 --- a/static/js/adc2019.js +++ b/static/js/adc2019.js @@ -63,10 +63,10 @@ class StatusView { } }).trigger('change'); - // _this.solver_status_refresh_timer = setInterval((function _t(){ - // _this.refresh_solver_status(); - // return _t; - // }()), 1000); + _this.request_refresh_timer = setInterval((function _t(){ + _this.get_request_status(); + return _t; + }()), 1000); }); } @@ -114,11 +114,6 @@ class StatusView { // _this.stop_solver(); // }); - _this.request_refresh_timer = setInterval((function _t(){ - // _this.get_request_status(request_id); - _this.get_request_status(); - return _t; - }()), 1000); }); } @@ -174,22 +169,6 @@ class StatusView { }); } - // get_request_status(request_id){ - // var _this = this; - // $.ajax({ - // type: 'GET', - // dataType: 'html', - // url: '/part/request/' + request_id - // }).done((d) => { - // _this.container.find('#request-status-container').empty(); - // _this.container.find('#request-status-container').html(d); - - // status = $(d).find('#request-status-value').text(); - // if(status == 'done'){ - // clearInterval(_this.request_refresh_timer); - // } - // }); - // } get_request_status(){ var _this = this; $.ajax({ @@ -199,13 +178,6 @@ class StatusView { }).done((d) => { _this.container.find('#request-table-container').empty(); _this.container.find('#request-table-container').html(d); - - // status = $(d).find('#request-status-value').text(); - // if(status == 'done'){ - // clearInterval(_this.request_refresh_timer); - // } - - // _this.fire('refresh'); }); } diff --git a/templates/part_problem_status.html b/templates/part_problem_status.html index 30b38ce..176f662 100644 --- a/templates/part_problem_status.html +++ b/templates/part_problem_status.html @@ -86,23 +86,3 @@ - - -- 2.22.0