This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git
The following commit(s) were added to refs/heads/main by this push:
new b402246 Make all draft level pages more consistent with one another
b402246 is described below
commit b4022466fadbadcef6a54ac5613955045cdd0e61
Author: Sean B. Palmer <[email protected]>
AuthorDate: Tue Apr 22 17:05:41 2025 +0100
Make all draft level pages more consistent with one another
---
atr/db/models.py | 10 +++++++++
atr/routes/draft.py | 12 +++++-----
atr/static/css/atr.css | 13 +++++++++--
atr/templates/draft-add-files.html | 28 +++++++++++------------
atr/templates/draft-content.html | 11 +++++----
atr/templates/draft-evaluate-path.html | 41 ++++++++++++++++++++--------------
atr/templates/draft-revisions.html | 11 +++++----
atr/templates/draft-vote-start.html | 5 ++++-
atr/templates/phase-view-path.html | 14 ++++++------
9 files changed, 89 insertions(+), 56 deletions(-)
diff --git a/atr/db/models.py b/atr/db/models.py
index 4e9b276..c895bb7 100644
--- a/atr/db/models.py
+++ b/atr/db/models.py
@@ -183,6 +183,11 @@ class Project(sqlmodel.SQLModel, table=True):
"""Get the display name for the Project."""
return self.full_name or self.name
+ @property
+ def short_display_name(self) -> str:
+ """Get the short display name for the Project."""
+ return self.display_name.removeprefix("Apache ")
+
async def releases_by_phase(self, phase: "ReleasePhase") ->
list["Release"]:
"""Get the releases for the project by phase."""
query = (
@@ -437,6 +442,11 @@ class Release(sqlmodel.SQLModel, table=True):
return None
return project.committee
+ @property
+ def short_display_name(self) -> str:
+ """Get the short display name for the release."""
+ return f"{self.project.short_display_name} {self.version}"
+
class SSHKey(sqlmodel.SQLModel, table=True):
fingerprint: str = sqlmodel.Field(primary_key=True)
diff --git a/atr/routes/draft.py b/atr/routes/draft.py
index 41dfeb9..0a2414f 100644
--- a/atr/routes/draft.py
+++ b/atr/routes/draft.py
@@ -179,7 +179,8 @@ async def add(session: routes.CommitterSession) ->
response.Response | str:
)
[email protected]("/draft/add/<project_name>/<version_name>", methods=["GET",
"POST"])
+# TODO: Rename to upload.release?
[email protected]("/upload/<project_name>/<version_name>", methods=["GET",
"POST"])
async def add_files(session: routes.CommitterSession, project_name: str,
version_name: str) -> response.Response | str:
"""Show a page to allow the user to add files to a candidate draft."""
@@ -228,8 +229,7 @@ async def add_files(session: routes.CommitterSession,
project_name: str, version
"draft-add-files.html",
asf_id=session.uid,
server_domain=session.host,
- project_name=project_name,
- version_name=version_name,
+ release=release,
form=form,
svn_form=svn_form,
project_display_name=project_display_name,
@@ -624,7 +624,7 @@ async def evaluate(session: routes.CommitterSession,
project_name: str, version_
)
[email protected]("/draft/evaluate/<project_name>/<version_name>/<path:rel_path>")
[email protected]("/report/<project_name>/<version_name>/<path:rel_path>")
async def evaluate_path(session: routes.CommitterSession, project_name: str,
version_name: str, rel_path: str) -> str:
"""Evaluate the status of all checks for a specific file."""
# Check that the user has access to the project
@@ -789,7 +789,7 @@ async def revision_set(session: routes.CommitterSession,
project_name: str, vers
)
[email protected]("/draft/revisions/<project_name>/<version_name>")
[email protected]("/revisions/<project_name>/<version_name>")
async def revisions(session: routes.CommitterSession, project_name: str,
version_name: str) -> str:
"""Show the revision history for a release candidate draft."""
if not any((p.name == project_name) for p in (await
session.user_projects)):
@@ -1081,7 +1081,7 @@ async def view(session: routes.CommitterSession,
project_name: str, version_name
)
[email protected]("/draft/view/<project_name>/<version_name>/<path:file_path>")
[email protected]("/file/<project_name>/<version_name>/<path:file_path>")
async def view_path(
session: routes.CommitterSession, project_name: str, version_name: str,
file_path: str
) -> response.Response | str:
diff --git a/atr/static/css/atr.css b/atr/static/css/atr.css
index 0e30fdd..68588e6 100644
--- a/atr/static/css/atr.css
+++ b/atr/static/css/atr.css
@@ -210,7 +210,7 @@ span.warning {
.back-link {
display: inline-block;
margin-bottom: 1rem;
- color: #0000ee;
+ color: #0000cc;
text-decoration: none;
}
@@ -414,6 +414,15 @@ h1 strong {
h1 em {
font-weight: 425;
font-style: normal;
- font-variation-settings: "ital" 0.5;
+
+ /* font-variation-settings: "ital" 0.5; */
color: #555555;
}
+
+/* h1 em:before {
+ content: "(";
+}
+
+h1 em:after {
+ content: ")";
+} */
diff --git a/atr/templates/draft-add-files.html
b/atr/templates/draft-add-files.html
index 46e1718..5b40f36 100644
--- a/atr/templates/draft-add-files.html
+++ b/atr/templates/draft-add-files.html
@@ -1,7 +1,7 @@
{% extends "layouts/base.html" %}
{% block title %}
- Add files to {{ project_name }} {{ version_name }} ~ ATR
+ Upload files to {{ release.short_display_name }} ~ ATR
{% endblock title %}
{% block description %}
@@ -9,22 +9,20 @@
{% endblock description %}
{% block content %}
- <a href="{{ as_url(routes.draft.compose, project_name=project_name,
version_name=version_name) }}"
- class="back-link">← Back to {{ project_display_name }} {{ version_name
}}</a>
+ <a href="{{ as_url(routes.draft.compose, project_name=release.project.name,
version_name=release.version) }}"
+ class="back-link">← Back to Compose {{ release.short_display_name }}</a>
- <h1>Add files to {{ project_display_name }} {{ version_name }}</h1>
+ <h1>
+ Upload to <strong>{{ release.project.short_display_name }}</strong> <em>{{
release.version }}</em>
+ </h1>
- <ul>
- <li>
- <a href="#file-upload">File upload</a>
- </li>
- <li>
- <a href="#svn-upload">SVN upload</a>
- </li>
- <li>
- <a href="#rsync-upload">Rsync upload</a>
- </li>
- </ul>
+ <div class="card">
+ <div class="card-body">
+ <a href="#file-upload" class="btn btn-outline-primary me-2">Use the
browser</a>
+ <a href="#svn-upload" class="btn btn-outline-primary me-2">Use SVN</a>
+ <a href="#rsync-upload" class="btn btn-outline-primary">Use rsync</a>
+ </div>
+ </div>
<h2 id="file-upload">File upload</h2>
<p class="intro">Use this form to add files to this candidate draft.</p>
diff --git a/atr/templates/draft-content.html b/atr/templates/draft-content.html
index f474fa9..2842693 100644
--- a/atr/templates/draft-content.html
+++ b/atr/templates/draft-content.html
@@ -29,8 +29,11 @@
{% endblock stylesheets %}
{% block content %}
+ <p>
+ <a href="{{ as_url(routes.root.index) }}" class="back-link">← Back to
Select a release</a>
+ </p>
<h1>
- Compose <strong>{{ release.project.display_name.removeprefix("Apache ")
}}</strong> <em>{{ version_name }}</em>
+ Compose <strong>{{ release.project.short_display_name }}</strong> <em>{{
release.version }}</em>
</h1>
<p class="intro">
Manage the <strong>candidate draft</strong> for {{
release.project.display_name }} {{ version_name }}. Add files, review checks,
and promote when ready.
@@ -81,9 +84,9 @@
</div>
<div class="card-body d-flex flex-wrap gap-2">
<a href="{{ as_url(routes.draft.add_files,
project_name=release.project.name, version_name=release.version) }}"
- title="Add or replace files in this draft"
- class="btn btn-primary"><i class="fas fa-upload me-1"></i> Add or
replace files</a>
- <a href="{{ as_url(routes.draft.revisions, project_name=project_name,
version_name=version_name) }}"
+ title="Upload files to this draft"
+ class="btn btn-primary"><i class="fas fa-upload me-1"></i> Upload
files</a>
+ <a href="{{ as_url(routes.draft.revisions,
project_name=release.project.name, version_name=release.version) }}"
title="View revision history"
class="btn btn-secondary"><i class="fas fa-history me-1"></i>
Revisions</a>
<a href="{{ as_url(routes.draft.vote_start,
project_name=release.project.name, version=release.version,
revision=release.revision) }}"
diff --git a/atr/templates/draft-evaluate-path.html
b/atr/templates/draft-evaluate-path.html
index d2bb459..d29d74b 100644
--- a/atr/templates/draft-evaluate-path.html
+++ b/atr/templates/draft-evaluate-path.html
@@ -1,35 +1,29 @@
{% extends "layouts/base.html" %}
{% block title %}
- Review {{ project_name }} {{ version_name }} {{ package.filename }} ~ ATR
+ Report for {{ release.short_display_name }} {{ package.filename }} ~ ATR
{% endblock title %}
{% block description %}
- Review the {{ project_name }} {{ version_name }} {{ package.filename }}
candidate draft file.
+ Show the report for the {{ release.short_display_name }} {{ package.filename
}} candidate draft file.
{% endblock description %}
{% block content %}
- <a href="{{ as_url(routes.draft.evaluate, project_name=project_name,
version_name=version_name) }}"
- class="back-link">← Back to Draft evaluation</a>
-
- <div class="p-3 mb-4 bg-light border rounded">
- <h2 class="mt-0">File evaluation</h2>
- <p>
- <strong>Filename:</strong> {{ package.filename }}
- </p>
- <p>
- <strong>Size:</strong> {{ format_file_size(package.bytes_size) }}
- </p>
- <p class="mb-0">
- <strong>Uploaded:</strong> {{ package.uploaded.strftime("%Y-%m-%d
%H:%M:%S UTC") }}
- </p>
+ <a href="{{ as_url(routes.draft.compose, project_name=release.project.name,
version_name=release.version) }}"
+ class="back-link">← Back to Compose {{ release.short_display_name }}</a>
+
+ <h1>
+ Report for <strong>{{ release.project.short_display_name }}</strong>
<em>{{ release.version }}</em>
+ </h1>
+ <div class="fs-3 bg-light p-3 border rounded mb-4">
+ <code>{{ package.filename }}</code>
</div>
<p>
<strong>Note:</strong> Refresh this page to see the latest status of the
verification tasks.
</p>
- <h2>Verification tasks</h2>
+ <h2>Report results</h2>
{% if check_results %}
{# Define status_counts here so it's available globally in this block #}
@@ -218,6 +212,19 @@
{% else %}
<p>No verification tasks found for this file.</p>
{% endif %}
+
+ <h2>Metadata</h2>
+ <div class="p-3 mb-4 bg-light border rounded">
+ <p>
+ <strong>Filename:</strong> {{ package.filename }}
+ </p>
+ <p>
+ <strong>Size:</strong> {{ format_file_size(package.bytes_size) }}
+ </p>
+ <p class="mb-0">
+ <strong>Uploaded:</strong> {{ package.uploaded.strftime("%Y-%m-%d
%H:%M:%S UTC") }}
+ </p>
+ </div>
</div>
{% endblock content %}
diff --git a/atr/templates/draft-revisions.html
b/atr/templates/draft-revisions.html
index 3db7fcf..1e6b187 100644
--- a/atr/templates/draft-revisions.html
+++ b/atr/templates/draft-revisions.html
@@ -1,17 +1,20 @@
{% extends "layouts/base.html" %}
{% block title %}
- Revisions for {{ project_name }} {{ version_name }} ~ ATR
+ Revisions of {{ release.short_display_name }} ~ ATR
{% endblock title %}
{% block description %}
- View the revision history for the {{ project_name }} {{ version_name }}
candidate draft.
+ View the revision history for the {{ release.short_display_name }} candidate
draft.
{% endblock description %}
{% block content %}
- <a href="{{ as_url(routes.draft.drafts) }}" class="back-link">← Back to View
drafts</a>
+ <a href="{{ as_url(routes.draft.compose, project_name=release.project.name,
version_name=release.version) }}"
+ class="back-link">← Back to Compose {{ release.short_display_name }}</a>
- <h1>Revision history for {{ release.project.display_name }} {{
release.version }}</h1>
+ <h1>
+ Revisions of <strong>{{ release.project.short_display_name }}</strong>
<em>{{ release.version }}</em>
+ </h1>
{% if revision_history %}
{% for revision in revision_history %}
diff --git a/atr/templates/draft-vote-start.html
b/atr/templates/draft-vote-start.html
index 9945865..157930f 100644
--- a/atr/templates/draft-vote-start.html
+++ b/atr/templates/draft-vote-start.html
@@ -10,8 +10,11 @@
{% block content %}
<div class="my-4">
+ <a href="{{ as_url(routes.draft.compose,
project_name=release.project.name, version_name=release.version) }}"
+ class="back-link">← Back to Compose {{ release.short_display_name }}</a>
+
<h1 class="mb-4">
- Start a vote on <strong>{{
release.project.display_name.removeprefix("Apache ") }}</strong> <em>{{
release.version }}</em>
+ Start vote on <strong>{{ release.project.short_display_name }}</strong>
<em>{{ release.version }}</em>
</h1>
<div class="px-3 py-4 mb-4 bg-light border rounded">
diff --git a/atr/templates/phase-view-path.html
b/atr/templates/phase-view-path.html
index ea36e38..24e1c83 100644
--- a/atr/templates/phase-view-path.html
+++ b/atr/templates/phase-view-path.html
@@ -1,25 +1,25 @@
{% extends "layouts/base.html" %}
{% block title %}
- View {{ project_name }}/{{ version_name }}/{{ file_path }} ~ ATR
+ View {{ release.project.short_display_name }}/{{ release.version }}/{{
file_path }} ~ ATR
{% endblock title %}
{% block description %}
- View the content of the {{ project_name }} {{ version_name }} {{ file_path
}} file.
+ View the content of the {{ release.project.short_display_name }} {{
release.version }} {{ file_path }} file.
{% endblock description %}
{% block content %}
{# Generate back link based on phase_key #}
{% if phase_key == "draft" %}
- {% set back_url = as_url(routes.draft.view, project_name=project_name,
version_name=version_name) %}
+ {% set back_url = as_url(routes.draft.view,
project_name=release.project.name, version_name=release.version) %}
{% elif phase_key == "candidate" %}
- {% set back_url = as_url(routes.candidate.view, project_name=project_name,
version_name=version_name) %}
+ {% set back_url = as_url(routes.candidate.view,
project_name=release.project.name, version_name=release.version) %}
{% elif phase_key == "preview" %}
- {% set back_url = as_url(routes.preview.view, project_name=project_name,
version_name=version_name) %}
+ {% set back_url = as_url(routes.preview.view,
project_name=release.project.name, version_name=release.version) %}
{% elif phase_key == "release" %}
- {% set back_url = as_url(routes.release.view, project_name=project_name,
version_name=version_name) %}
+ {% set back_url = as_url(routes.release.view,
project_name=release.project.name, version_name=release.version) %}
{% endif %}
- <a href="{{ back_url }}" class="back-link">← Back to View files</a>
+ <a href="{{ back_url }}" class="back-link">← Back to {{ phase_key }}</a>
<div class="p-3 mb-4 bg-light border rounded">
<h2 class="mt-0">Viewing file: {{ file_path }}</h2>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]