| Index: appengine/monorail/framework/artifactcollision.py
|
| diff --git a/appengine/monorail/framework/artifactcollision.py b/appengine/monorail/framework/artifactcollision.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2cd06517c16ec7f02736382dddf591691574af00
|
| --- /dev/null
|
| +++ b/appengine/monorail/framework/artifactcollision.py
|
| @@ -0,0 +1,49 @@
|
| +# Copyright 2016 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is govered by a BSD-style
|
| +# license that can be found in the LICENSE file or at
|
| +# https://developers.google.com/open-source/licenses/bsd
|
| +
|
| +"""Class that implements the artifact update collision page.
|
| +
|
| +This page is displayed only when one user views and edits an issue,
|
| +but another user has already submitted an issue update before the
|
| +first user submits his/her update.
|
| +
|
| +TODO(jrobbins): give the user better options on how to proceed.
|
| +
|
| +Summary of classes:
|
| + ArtifactCollision: Show an error message explaining the mid-air collision.
|
| +"""
|
| +
|
| +import re
|
| +
|
| +from framework import monorailrequest
|
| +from framework import servlet
|
| +
|
| +
|
| +class ArtifactCollision(servlet.Servlet):
|
| + """ArtifactCollision page explains that a mid-air collision has occured."""
|
| +
|
| + _PAGE_TEMPLATE = 'framework/artifact-collision-page.ezt'
|
| + _MAIN_TAB_MODE = servlet.Servlet.MAIN_TAB_NONE
|
| +
|
| + def GatherPageData(self, mr):
|
| + """Build up a dictionary of data values to use when rendering the page.
|
| +
|
| + Args:
|
| + mr: commonly used info parsed from the request.
|
| +
|
| + Returns:
|
| + A dict of values used by EZT for rendering the page.
|
| + """
|
| + artifact_name = mr.GetParam('name')
|
| + if not artifact_name:
|
| + raise monorailrequest.InputException() # someone forged a link
|
| +
|
| + artifact_detail_url = '/p/%s/issues/detail?id=%s' % (
|
| + mr.project_name, mr.continue_issue_id)
|
| +
|
| + return {
|
| + 'artifact_name': artifact_name,
|
| + 'artifact_detail_url': artifact_detail_url,
|
| + }
|
|
|