in v3/steve/election.py [0:0]
def __init__(self, db_fname):
self.db = db.DB(db_fname)
# Construct cursors for all operations.
self.c_salt_issue = self.db.add_statement(
'UPDATE ISSUES SET salt = ? WHERE _ROWID_ = ?')
self.c_salt_person = self.db.add_statement(
'UPDATE PERSON SET salt = ? WHERE _ROWID_ = ?')
self.c_open = self.db.add_statement(
'UPDATE METADATA SET salt = ?, opened_key = ?')
self.c_close = self.db.add_statement(
'UPDATE METADATA SET closed = 1')
self.c_add_issue = self.db.add_statement(
'''INSERT INTO ISSUES VALUES (?, ?, ?, ?, ?, ?)
ON CONFLICT DO UPDATE SET
title=excluded.title,
description=excluded.description,
type=excluded.type,
kv=excluded.kv
''')
self.c_add_person = self.db.add_statement(
'''INSERT INTO PERSON VALUES (?, ?, ?, ?)
ON CONFLICT DO UPDATE SET
name=excluded.name,
email=excluded.email
''')
self.c_delete_issue = self.db.add_statement(
'DELETE FROM ISSUES WHERE iid = ?')
self.c_delete_person = self.db.add_statement(
'DELETE FROM PERSON WHERE pid = ?')
self.c_add_vote = self.db.add_statement(
'INSERT INTO VOTES VALUES (NULL, ?, ?, ?, ?)')
self.c_has_voted = self.db.add_statement(
'''SELECT 1 FROM VOTES
WHERE person_token = ? AND issue_token = ?
LIMIT 1
''')
# Cursors for running queries.
self.q_metadata = self.db.add_query('metadata',
'SELECT * FROM METADATA')
self.q_issues = self.db.add_query('issues',
'SELECT * FROM ISSUES ORDER BY iid')
self.q_person = self.db.add_query('person',
'SELECT * FROM PERSON ORDER BY pid')
self.q_get_issue = self.db.add_query('issues',
'SELECT * FROM ISSUES WHERE iid = ?')
self.q_get_person = self.db.add_query('person',
'SELECT * FROM PERSON WHERE pid = ?')
self.q_by_issue = self.db.add_query('votes',
'SELECT * FROM VOTES WHERE issue_token = ? ORDER BY _ROWID_')