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 5dde147  Remove unused release policy forms and associated code
5dde147 is described below

commit 5dde1474f13b55032f445bdfd9508ebe8ea231cb
Author: Sean B. Palmer <[email protected]>
AuthorDate: Thu May 29 16:39:12 2025 +0100

    Remove unused release policy forms and associated code
---
 atr/routes/projects.py                 | 111 ++-------------------------------
 atr/templates/project-view.html        |   1 +
 atr/templates/release-policy-add.html  |  23 -------
 atr/templates/release-policy-edit.html |  24 -------
 atr/templates/release-policy-form.html |  92 ---------------------------
 5 files changed, 5 insertions(+), 246 deletions(-)

diff --git a/atr/routes/projects.py b/atr/routes/projects.py
index 3bc00d3..bf02907 100644
--- a/atr/routes/projects.py
+++ b/atr/routes/projects.py
@@ -50,6 +50,7 @@ class ReleasePolicyForm(util.QuartFormTyped):
     """
 
     project_name = wtforms.HiddenField("project_name")
+
     mailto_addresses = wtforms.FieldList(
         wtforms.StringField(
             "Email",
@@ -182,76 +183,6 @@ async def projects() -> str:
         return await template.render("projects.html", projects=projects, 
empty_form=await util.EmptyForm.create_form())
 
 
[email protected]("/projects/<project_name>/release-policy/add", 
methods=["GET", "POST"])
-async def release_policy_add(session: routes.CommitterSession, project_name: 
str) -> response.Response | str:
-    await session.check_access(project_name)
-
-    uid = await util.get_asf_id_or_die()
-
-    async with db.session() as data:
-        project = await data.project(name=project_name, _committee=True, 
_release_policy=True).demand(
-            base.ASFQuartException(f"Project {project_name} not found", 
errorcode=404)
-        )
-
-        if not (user.is_committee_member(project.committee, uid) or 
user.is_admin(uid)):
-            raise base.ASFQuartException(
-                f"You must be a committee member of {project.display_name} to 
submit a release policy", errorcode=403
-            )
-
-        form = await ReleasePolicyForm.create_form(data={"project_name": 
project.name})
-
-        if form.mailto_addresses.entries[0].data is None:
-            form.mailto_addresses.entries[0].data = 
f"dev@{util.unwrap(project.committee).name}.apache.org"
-
-        if await form.validate_on_submit():
-            return await _add_release_policy(project, form, data)
-
-    return await template.render(
-        "release-policy-add.html",
-        asf_id=uid,
-        project=project,
-        form=form,
-    )
-
-
[email protected]("/projects/<project_name>/release-policy/edit", 
methods=["GET", "POST"])
-async def release_policy_edit(session: routes.CommitterSession, project_name: 
str) -> response.Response | str:
-    await session.check_access(project_name)
-
-    uid = await util.get_asf_id_or_die()
-
-    async with db.session() as data:
-        project = await data.project(name=project_name, _committee=True, 
_release_policy=True).demand(
-            base.ASFQuartException(f"Project {project_name} not found", 
errorcode=404)
-        )
-
-        if project.release_policy is None:
-            base.ASFQuartException(f"Release Policy for project {project_name} 
does not exist", errorcode=404)
-
-        if not (user.is_committee_member(project.committee, uid) or 
user.is_admin(uid)):
-            raise base.ASFQuartException(
-                f"You must be a committee member of {project.display_name} to 
submit a release policy", errorcode=403
-            )
-
-        form = await ReleasePolicyForm.create_form()
-
-        # fill data
-        if quart.request.method == "GET":
-            form.process(obj=project.release_policy)
-            form.project_name.data = project.name
-
-        if await form.validate_on_submit():
-            return await 
_edit_release_policy(util.unwrap(project.release_policy), form, data)
-
-    # For GET requests, show the form
-    return await template.render(
-        "release-policy-edit.html",
-        asf_id=uid,
-        project=project,
-        form=form,
-    )
-
-
 @routes.committer("/project/select")
 async def select(session: routes.CommitterSession) -> str:
     """Select a project to work on."""
@@ -301,6 +232,8 @@ async def view(session: routes.CommitterSession, name: str) 
-> response.Response
                     project.release_policy.release_checklist = 
util.unwrap(form.release_checklist.data)
                     project.release_policy.start_vote_template = 
util.unwrap(form.start_vote_template.data)
                     project.release_policy.announce_release_template = 
util.unwrap(form.announce_release_template.data)
+
+                    # TODO: Add default handling here
                     project.release_policy.pause_for_rm = 
util.unwrap(form.pause_for_rm.data)
                     await data.commit()
                     await quart.flash("Release policy updated successfully.", 
"success")
@@ -319,6 +252,7 @@ async def view(session: routes.CommitterSession, name: str) 
-> response.Response
                 form.start_vote_template.data = 
project.policy_start_vote_template
                 form.announce_release_template.data = 
project.policy_announce_release_template
                 form.pause_for_rm.data = project.policy_pause_for_rm
+                ...
 
         return await template.render(
             "project-view.html",
@@ -405,40 +339,3 @@ async def _add_project(form: AddFormProtocol, asf_id: str) 
-> response.Response:
         await data.commit()
 
     return quart.redirect(util.as_url(view, name=new_project_label))
-
-
-async def _add_release_policy(project: models.Project, form: 
ReleasePolicyForm, data: db.Session) -> response.Response:
-    project_name = str(form.project_name.data)
-
-    release_policy = models.ReleasePolicy(
-        mailto_addresses=[util.unwrap(form.mailto_addresses.entries[0].data)],
-        manual_vote=form.manual_vote.data,
-        min_hours=util.unwrap(form.min_hours.data),
-        release_checklist=util.unwrap(form.release_checklist.data),
-        start_vote_template=util.unwrap(form.start_vote_template.data),
-        
announce_release_template=util.unwrap(form.announce_release_template.data),
-        pause_for_rm=form.pause_for_rm.data,
-    )
-
-    release_policy.project = project
-    data.add(release_policy)
-    await data.commit()
-
-    return quart.redirect(util.as_url(view, name=project_name))
-
-
-async def _edit_release_policy(
-    release_policy: models.ReleasePolicy, form: ReleasePolicyForm, data: 
db.Session
-) -> response.Response:
-    project_name = str(form.project_name.data)
-
-    release_policy.mailto_addresses = 
[util.unwrap(form.mailto_addresses.entries[0].data)]
-    release_policy.manual_vote = form.manual_vote.data
-    release_policy.min_hours = util.unwrap(form.min_hours.data)
-    release_policy.release_checklist = util.unwrap(form.release_checklist.data)
-    release_policy.start_vote_template = 
util.unwrap(form.start_vote_template.data)
-    release_policy.announce_release_template = 
util.unwrap(form.announce_release_template.data)
-    release_policy.pause_for_rm = form.pause_for_rm.data
-    await data.commit()
-
-    return quart.redirect(util.as_url(view, name=project_name))
diff --git a/atr/templates/project-view.html b/atr/templates/project-view.html
index 52a0925..b8ca151 100644
--- a/atr/templates/project-view.html
+++ b/atr/templates/project-view.html
@@ -66,6 +66,7 @@
               novalidate>
           {{ form.hidden_tag() if form.hidden_tag }}
           {{ form.project_name(value=project.name) }}
+          {# TODO: Add default handling here #}
 
           <div class="mb-3 pb-3 row border-bottom">
             {{ forms.label(form.mailto_addresses.entries[0], col="md3") }}
diff --git a/atr/templates/release-policy-add.html 
b/atr/templates/release-policy-add.html
deleted file mode 100644
index e115fd7..0000000
--- a/atr/templates/release-policy-add.html
+++ /dev/null
@@ -1,23 +0,0 @@
-{% extends "layouts/base.html" %}
-
-{% block title %}
-  Create a voting policy ~ ATR
-{% endblock title %}
-
-{% block description %}
-  Create a voting policy for a project.
-{% endblock description %}
-
-{% block content %}
-  <p>
-    <a href="{{ as_url(routes.projects.view, name=project.name) }}"
-       class="atr-back-link">← Back to {{ project.display_name }}</a>
-  </p>
-  <h1>Create voting policy</h1>
-  <p>
-    Use this form to create a voting policy for <strong>{{ 
project.display_name }}</strong>.
-  </p>
-
-  {% include "release-policy-form.html" %}
-
-{% endblock content %}
diff --git a/atr/templates/release-policy-edit.html 
b/atr/templates/release-policy-edit.html
deleted file mode 100644
index eea1761..0000000
--- a/atr/templates/release-policy-edit.html
+++ /dev/null
@@ -1,24 +0,0 @@
-{% extends "layouts/base.html" %}
-
-{% block title %}
-  Edit a voting policy ~ ATR
-{% endblock title %}
-
-{% block description %}
-  Edit a voting policy for a project.
-{% endblock description %}
-
-{% block content %}
-  <p>
-    <a href="{{ as_url(routes.projects.view, name=project.name) }}"
-       class="atr-back-link">← Back to {{ project.display_name }}</a>
-  </p>
-
-  <h1>Edit voting policy</h1>
-  <p>
-    Use this form to edit the voting policy for <strong>{{ 
project.display_name }}</strong>.
-  </p>
-
-  {% include "release-policy-form.html" %}
-
-{% endblock content %}
diff --git a/atr/templates/release-policy-form.html 
b/atr/templates/release-policy-form.html
deleted file mode 100644
index fb3bab4..0000000
--- a/atr/templates/release-policy-form.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<form method="post"
-      enctype="multipart/form-data"
-      class="atr-canary py-4 px-5"
-      novalidate>
-  {{ form.hidden_tag() }}
-
-  <input type="hidden" name="form_type" value="single" />
-  <div class="mb-3 pb-3 row border-bottom">
-    <label for="project_name_text" class="col-sm-3 col-form-label 
text-sm-end">Project</label>
-    <div class="col-sm-8">
-      <p id="project_name_text" class="form-control-plaintext">{{ 
project.display_name }}</p>
-    </div>
-  </div>
-
-  <div class="mb-3 pb-3 row border-bottom">
-    {{ forms.label(form.mailto_addresses.entries[0], col="md3") }}
-    <div class="col-sm-8">
-      {{ forms.widget(form.mailto_addresses.entries[0]) }}
-      {{ forms.errors(form.mailto_addresses.entries[0]) }}
-      {{ forms.description(form.mailto_addresses.entries[0]) }}
-    </div>
-    <!--
-    <div class="col-sm-1">
-      <button class="btn btn-primary" type="button" 
id="add-mailto-address">+</button>
-    </div>
-    -->
-  </div>
-
-  <div class="mb-3 pb-3 row border-bottom">
-    {{ forms.label(form.manual_vote, col="md3-high") }}
-    <div class="col-sm-8">
-      <div class="form-check">
-        {{ forms.widget(form.manual_vote, classes="form-check-input") }}
-        {{ forms.errors(form.manual_vote, classes="invalid-feedback d-block") 
}}
-        <label class="form-check-label" for="{{ form.manual_vote.id 
}}">Manual</label>
-      </div>
-      {{ forms.description(form.manual_vote) }}
-    </div>
-  </div>
-
-  <div class="mb-3 pb-3 row border-bottom">
-    {{ forms.label(form.min_hours, col="md3") }}
-    <div class="col-sm-8">
-      {{ forms.widget(form.min_hours) }}
-      {{ forms.errors(form.min_hours) }}
-      {{ forms.description(form.min_hours) }}
-    </div>
-  </div>
-
-  <div class="mb-3 pb-3 row border-bottom">
-    {{ forms.label(form.release_checklist, col="md3") }}
-    <div class="col-sm-8">
-      {{ forms.widget(form.release_checklist) }}
-      {{ forms.errors(form.release_checklist) }}
-      {{ forms.description(form.release_checklist) }}
-    </div>
-  </div>
-
-  <div class="mb-3 pb-3 row border-bottom">
-    {{ forms.label(form.start_vote_template, col="md3") }}
-    <div class="col-sm-8">
-      {{ forms.widget(form.start_vote_template) }}
-      {{ forms.errors(form.start_vote_template) }}
-      {{ forms.description(form.start_vote_template) }}
-    </div>
-  </div>
-
-  <div class="mb-3 pb-3 row border-bottom">
-    {{ forms.label(form.announce_release_template, col="md3") }}
-    <div class="col-sm-8">
-      {{ forms.widget(form.announce_release_template) }}
-      {{ forms.errors(form.announce_release_template) }}
-      {{ forms.description(form.announce_release_template) }}
-    </div>
-  </div>
-
-  <div class="mb-3 pb-3 row border-bottom">
-    {{ forms.label(form.pause_for_rm, col="md3-high") }}
-    <div class="col-sm-8">
-      <div class="form-check">
-        {{ forms.widget(form.pause_for_rm, classes="form-check-input") }}
-        {{ forms.errors(form.pause_for_rm, classes="invalid-feedback d-block") 
}}
-        <label class="form-check-label" for="{{ form.pause_for_rm.id 
}}">Enabled</label>
-      </div>
-      {{ forms.description(form.pause_for_rm) }}
-    </div>
-  </div>
-
-  <div class="row">
-    <div class="col-sm-9 offset-sm-3">{{ form.submit(class_="btn btn-primary 
mt-2") }}</div>
-  </div>
-</form>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to