From e5df083d4553440af309be89c5dcdd11d68dc7d5 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Thu, 3 Jun 2021 22:56:47 -0700 Subject: [PATCH] use String(max_len) for DECIMAL types with sqlite This solves an issue where DECIMAL is not native to sqlite by using a string to store values and converting them to float in user code. Signed-off-by: Kevin Morris --- aurweb/schema.py | 10 ++++++++-- web/html/addvote.php | 7 +++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/aurweb/schema.py b/aurweb/schema.py index f0162045..0d40e272 100644 --- a/aurweb/schema.py +++ b/aurweb/schema.py @@ -107,7 +107,10 @@ PackageBases = Table( Column('ID', INTEGER(unsigned=True), primary_key=True), Column('Name', String(255), nullable=False, unique=True), Column('NumVotes', INTEGER(unsigned=True), nullable=False, server_default=text("0")), - Column('Popularity', DECIMAL(10, 6, unsigned=True), nullable=False, server_default=text("0")), + Column('Popularity', + DECIMAL(10, 6, unsigned=True) + if db_backend == "mysql" else String(16), # Stubbed out to test. + nullable=False, server_default=text("0")), Column('OutOfDateTS', BIGINT(unsigned=True)), Column('FlaggerComment', Text, nullable=False), Column('SubmittedTS', BIGINT(unsigned=True), nullable=False), @@ -383,7 +386,10 @@ TU_VoteInfo = Table( Column('User', String(32), nullable=False), Column('Submitted', BIGINT(unsigned=True), nullable=False), Column('End', BIGINT(unsigned=True), nullable=False), - Column('Quorum', DECIMAL(2, 2, unsigned=True), nullable=False), + Column('Quorum', + DECIMAL(2, 2, unsigned=True) + if db_backend == "mysql" else String(4), + nullable=False), Column('SubmitterID', ForeignKey('Users.ID', ondelete='CASCADE'), nullable=False), Column('Yes', TINYINT(3, unsigned=True), nullable=False, server_default=text("'0'")), Column('No', TINYINT(3, unsigned=True), nullable=False, server_default=text("'0'")), diff --git a/web/html/addvote.php b/web/html/addvote.php index 3672c031..70280cfd 100644 --- a/web/html/addvote.php +++ b/web/html/addvote.php @@ -67,8 +67,11 @@ if (has_credential(CRED_TU_ADD_VOTE)) { } } - if (!empty($_POST['addVote']) && empty($error)) { - add_tu_proposal($_POST['agenda'], $_POST['user'], $len, $quorum, $uid); + if (!empty($_POST['addVote']) && empty($error)) { + // Convert $quorum to a String of maximum length "12.34" (5). + $quorum_str = substr(strval($quorum), min(5, strlen($quorum)); + add_tu_proposal($_POST['agenda'], $_POST['user'], + $len, $quorum_str, $uid); print "

" . __("New proposal submitted.") . "

\n"; } else {