This is an automated email from the ASF dual-hosted git repository.

gstein pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/steve.git

commit 3b95a244f9304103ab8946e6907bf55f4efaa377
Author: Greg Stein <[email protected]>
AuthorDate: Sat Dec 20 01:47:44 2025 -0600

    first draft endpoint for Election creation
---
 v3/server/pages.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/v3/server/pages.py b/v3/server/pages.py
index f4efc20..7991562 100644
--- a/v3/server/pages.py
+++ b/v3/server/pages.py
@@ -278,6 +278,28 @@ async def manage_page(election):
     return result
 
 
[email protected]('/do-create')
[email protected]({R.pmc_member})  ### need general solution
+async def do_create_endpoint():
+    "Create a new Election."
+
+    result = await basic_info()
+
+    ### check authz
+
+    form = edict(await quart.request.form)
+
+    # Create the Election.
+    election = steve.election.Election(DB_FNAME, form.title, result.uid)
+
+    _LOGGER.info(f'User[U:{result.uid}] created election[E:{election.eid}];'
+                 f' title: "{form.title}"')
+    await flash_success(f'Created election: {form.title}')
+
+    # Go to the management page for the new Election.
+    return quart.redirect(f'/manage/{election.eid}', code=303)
+
+
 @APP.get('/do-open/<eid>')
 @asfquart.auth.require({R.committer})  ### need general solution
 @load_election

Reply via email to