1# Copyright (C) 2009 Google Inc. All rights reserved. 2# 3# Redistribution and use in source and binary forms, with or without 4# modification, are permitted provided that the following conditions are 5# met: 6# 7# * Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. 9# * Redistributions in binary form must reproduce the above 10# copyright notice, this list of conditions and the following disclaimer 11# in the documentation and/or other materials provided with the 12# distribution. 13# * Neither the name of Google Inc. nor the names of its 14# contributors may be used to endorse or promote products derived from 15# this software without specific prior written permission. 16# 17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 29from google.appengine.ext import webapp 30from google.appengine.ext.webapp import template 31 32from model.queuestatus import QueueStatus 33 34 35class Patch(webapp.RequestHandler): 36 def get(self, attachment_id_string): 37 attachment_id = int(attachment_id_string) 38 statuses = QueueStatus.all().filter("active_patch_id =", attachment_id).order("-date") 39 40 bug_id = None 41 queue_status = {} 42 for status in statuses: 43 bug_id = status.active_bug_id # Should be the same for every status. 44 per_queue_statuses = queue_status.get(status.queue_name, []) 45 per_queue_statuses.append(status) 46 queue_status[status.queue_name] = per_queue_statuses 47 48 template_values = { 49 "attachment_id" : attachment_id, 50 "bug_id" : bug_id, 51 "queue_status" : queue_status, 52 } 53 self.response.out.write(template.render("templates/patch.html", template_values)) 54