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 956e0d87f7b2008b3e671c197b8e80a89386fabc Author: Greg Stein <[email protected]> AuthorDate: Mon Dec 22 23:53:30 2025 -0600 lean into EasyDict for Election.get_metadata() --- v3/server/pages.py | 20 ++++++++++---------- v3/steve/election.py | 16 +++++++++++++--- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/v3/server/pages.py b/v3/server/pages.py index ec6da33..4e60a0d 100644 --- a/v3/server/pages.py +++ b/v3/server/pages.py @@ -205,8 +205,8 @@ async def vote_on_page(election): result.title = 'Vote On Election' result.eid = election.eid - md = election.get_metadata() - result.e_title = md[1] + result.election = election.get_metadata() + result.e_title = result.election.title result.issues = election.list_issues() result.issue_count = len(result.issues) @@ -266,9 +266,9 @@ async def manage_page(election): result.title = 'Manage an Election' result.eid = election.eid - md = election.get_metadata() - result.e_title = md[1] - result.e_state = md[2] + result.election = election.get_metadata() + result.e_title = result.election.title + result.e_state = result.election.state result.issues = election.list_issues() result.issue_count = len(result.issues) @@ -291,9 +291,9 @@ async def manage_stv_page(election, issue): result.eid = election.eid result.issue = issue - md = election.get_metadata() - result.e_title = md[1] - result.e_state = md[2] + result.election = election.get_metadata() + result.e_title = result.election.title + result.e_state = result.election.state kv = edict(issue.kv) result.seats = kv.seats @@ -342,7 +342,7 @@ async def do_open_endpoint(election): _LOGGER.info(f'User[U:{result.uid}] opened election[E:{election.eid}]') - _, title, _ = election.get_metadata() + title = election.get_metadata().title await flash_success(f'Opened election: {title}') # Return to the management page for this Election. @@ -362,7 +362,7 @@ async def do_close_endpoint(election): _LOGGER.info(f'User[U:{result.uid}] closed election[E:{election.eid}]') - _, title, _ = election.get_metadata() + title = election.get_metadata().title await flash_success(f'Closed election: {title}') # Return to the management page for this Election. diff --git a/v3/steve/election.py b/v3/steve/election.py index 2229bad..2311aa5 100644 --- a/v3/steve/election.py +++ b/v3/steve/election.py @@ -21,7 +21,7 @@ import sqlite3 import pathlib import asfpy.db -import easydict +from easydict import EasyDict as edict from . import crypto from . import vtypes @@ -188,7 +188,17 @@ class Election: md = self._all_metadata() # NOTE: do not return the SALT or OPENED_KEY - return md.eid, md.title, self._compute_state(md) + return edict( + eid=md.eid, + title=md.title, + owner_pid=md.owner_pid, + authz=md.authz, + closed=md.closed, ### should we process this? + open_at=md.open_at, ### should we process this? + close_at=md.close_at, ### should we process this? + + state=self._compute_state(md), + ) def get_issue(self, iid): "Return TITLE, DESCRIPTION, TYPE, and KV for issue IID." @@ -252,7 +262,7 @@ class Election: "Return ordered EasyDicgt<IID, TITLE, DESCRIPTION, TYPE, KV> for all ISSUES." def extract_issue(row): - return easydict.EasyDict( + return edict( iid=row.iid, title=row.title, description=row.description,
