From: eric@webkit.org Date: Wed, 2 Dec 2009 09:11:54 +0000 (+0000) Subject: 2009-12-02 Adam Barth X-Git-Url: https://git.webkit.org/?p=WebKit-https.git;a=commitdiff_plain;h=97065e041d8c1048e55f62dd98e546baa419549a;ds=sidebyside 2009-12-02 Adam Barth Reviewed by Eric Seidel. [bzt] Implement status bubble view https://bugs.webkit.org/show_bug.cgi?id=32057 The status bubble is a compact representation of the queue status for a given patch. This will eventually help us reduce the comment spam from the queues. * QueueStatusServer/index.html: Added HTML5 doctype for sanity. * QueueStatusServer/queue_status.py: * QueueStatusServer/status_bubble.html: Added. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@51591 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog index dd5551431309..e8950bbc34af 100644 --- a/WebKitTools/ChangeLog +++ b/WebKitTools/ChangeLog @@ -1,3 +1,18 @@ +2009-12-02 Adam Barth + + Reviewed by Eric Seidel. + + [bzt] Implement status bubble view + https://bugs.webkit.org/show_bug.cgi?id=32057 + + The status bubble is a compact representation of the queue status for a + given patch. This will eventually help us reduce the comment spam from + the queues. + + * QueueStatusServer/index.html: Added HTML5 doctype for sanity. + * QueueStatusServer/queue_status.py: + * QueueStatusServer/status_bubble.html: Added. + 2009-12-02 Eric Seidel Reviewed by Adam Barth. diff --git a/WebKitTools/QueueStatusServer/index.html b/WebKitTools/QueueStatusServer/index.html index 2b5aced2c4bf..fbd51fb0fdcd 100644 --- a/WebKitTools/QueueStatusServer/index.html +++ b/WebKitTools/QueueStatusServer/index.html @@ -1,3 +1,4 @@ + WebKit Commit Queue Status diff --git a/WebKitTools/QueueStatusServer/queue_status.py b/WebKitTools/QueueStatusServer/queue_status.py index e4bea746623e..29722e64eb72 100644 --- a/WebKitTools/QueueStatusServer/queue_status.py +++ b/WebKitTools/QueueStatusServer/queue_status.py @@ -73,6 +73,52 @@ class PatchStatus(webapp.RequestHandler): self.response.out.write(statuses[0].message) +class StatusSummary(object): + def _status_to_code(self, status): + code_names = { + "Pass": "pass", + "Pending": "pending", + "Fail": "fail", + "Error": "error", + } + return code_names.get(status, "none") + + def _queue_name_to_code(self, queue_name): + code_names = { + "style-queue": "style", + } + return code_names[queue_name] + + queues = [ + "style-queue", + ] + + def __init__(self): + self._summary = {} + + def summarize(self, attachment_id): + if self._summary.get(attachment_id): + return self._summary.get(attachment_id) + + for queue in self.queues: + statuses = QueueStatus.all().filter('queue_name =', queue).filter('active_patch_id =', attachment_id).order('-date').fetch(1) + status_code = self._status_to_code(statuses[0].message if statuses else None) + queue_code = self._queue_name_to_code(queue) + attachment_summary[queue_code] = status_code + + self._summary[attachment_id] = attachment_summary + return attachment_summary + + +class StatusBubble(webapp.RequestHandler): + def get(self, attachment_id): + status_summary = StatusSummary() + template_values = { + "queue_status" : status_summary.summarize(int(attachment_id)), + } + self.response.out.write(template.render('status_bubble.html', template_values)) + + class UpdateStatus(webapp.RequestHandler): def get(self): self.response.out.write(template.render('update_status.html', None)) @@ -105,6 +151,7 @@ routes = [ ('/', MainPage), ('/update-status', UpdateStatus), (r'/patch-status/(.*)/(.*)', PatchStatus), + (r'/status-bubble/(.*)', StatusBubble), ] application = webapp.WSGIApplication(routes, debug=True) diff --git a/WebKitTools/QueueStatusServer/status_bubble.html b/WebKitTools/QueueStatusServer/status_bubble.html new file mode 100644 index 000000000000..f8959d96d525 --- /dev/null +++ b/WebKitTools/QueueStatusServer/status_bubble.html @@ -0,0 +1,36 @@ + + + + + +{% for key, value in queue_status.items %} +
{{key}}
{% endfor %} + +