Merge branch 'main' into avm99963-monorail

Merged commit 34d8229ae2b51fb1a15bd208e6fe6185c94f6266

GitOrigin-RevId: 7ee0917f93a577e475f8e09526dd144d245593f4
diff --git a/tracker/tracker_views.py b/tracker/tracker_views.py
index c2687db..4a87249 100644
--- a/tracker/tracker_views.py
+++ b/tracker/tracker_views.py
@@ -1,7 +1,6 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file or at
-# https://developers.google.com/open-source/licenses/bsd
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 """View objects to help display tracker business objects in templates."""
 from __future__ import print_function
@@ -29,7 +28,7 @@
 from framework import template_helpers
 from framework import timestr
 from framework import urls
-from proto import tracker_pb2
+from mrproto import tracker_pb2
 from tracker import attachment_helpers
 from tracker import tracker_bizobj
 from tracker import tracker_constants
@@ -456,7 +455,7 @@
 
   # Make a phase field's view for each unique phase_name found in phases.
   (_, _, _, _, phases_by_name) = precomp_view_info
-  for phase_name in phases_by_name.keys():
+  for phase_name in sorted(phases_by_name.keys()):
     field_value_views.extend([
         _MakeFieldValueView(
             fd, config, precomp_view_info, users_by_id, phase_name=phase_name)
@@ -527,10 +526,10 @@
 
 def MakeBounceFieldValueViews(
     field_vals, phase_field_vals, config, applicable_fields=None):
-  # type: (Sequence[proto.tracker_pb2.FieldValue],
-  #     Sequence[proto.tracker_pb2.FieldValue],
-  #     proto.tracker_pb2.ProjectIssueConfig
-  #     Sequence[proto.tracker_pb2.FieldDef]) -> Sequence[FieldValueView]
+  # type: (Sequence[mrproto.tracker_pb2.FieldValue],
+  #     Sequence[mrproto.tracker_pb2.FieldValue],
+  #     mrproto.tracker_pb2.ProjectIssueConfig
+  #     Sequence[mrproto.tracker_pb2.FieldDef]) -> Sequence[FieldValueView]
   """Return a list of field values to display on a validation bounce page."""
   applicable_set = set()
   # Handle required fields