On Sun, Aug 04, 2013 at 09:51:17PM +0200, Florian Pritz wrote: > On 04.08.2013 17:43, Lukas Fleischer wrote: > > There are only four valid reasons for starting a TU vote, so instead of > > letting the user choose a vote length, let her pick a reason and set > > vote length and quorum based on that selection. > > > > Signed-off-by: Lukas Fleischer <archli...@cryptocrack.de> > > --- > > web/html/addvote.php | 46 > > ++++++++++++++++++++++++++++++++++------------ > > web/lib/acctfuncs.inc.php | 7 ++++--- > > 2 files changed, 38 insertions(+), 15 deletions(-) > > > > diff --git a/web/html/addvote.php b/web/html/addvote.php > > index 43973f3..d744f2f 100644 > > --- a/web/html/addvote.php > > +++ b/web/html/addvote.php > > @@ -37,16 +37,34 @@ if ($atype == "Trusted User" || $atype == "Developer") { > > } > > } > > > > - if (!empty($_POST['length'])) { > > - if (!is_numeric($_POST['length'])) { > > - $error.= __("Length must be a number.") ; > > - } else if ($_POST['length'] < 1) { > > - $error.= __("Length must be at least 1."); > > - } else { > > - $len = (60*60*24)*$_POST['length']; > > + if (!empty($_POST['type'])) { > > + switch ($_POST['type']) { > > + case 1: > > + /* Addition of a TU */ > > + $len = 7 * 24 * 60 * 60; > > + $quorum = 0.66; > > + break; > > + case 2: > > + /* Removal of a TU */ > > + $len = 7 * 24 * 60 * 60; > > + $quorum = 0.75; > > + break; > > + case 3: > > + /* Removal of a TU (undeclared inactivity) */ > > + $len = 5 * 24 * 60 * 60; > > + $quorum = 0.66; > > + break; > > + case 4: > > + /* Amendment of Bylaws */ > > + $len = 7 * 24 * 60 * 60; > > + $quorum = 0.75; > > + break; > > + default: > > + $error.= __("Invalid type.") ; > > + break; > > } > > } else { > > - $len = 60*60*24*7; > > + $error.= __("Invalid type.") ; > > } > > > > if (empty($_POST['agenda'])) { > > @@ -55,7 +73,7 @@ if ($atype == "Trusted User" || $atype == "Developer") { > > } > > > > if (!empty($_POST['addVote']) && empty($error)) { > > - add_tu_proposal($_POST['agenda'], $_POST['user'], $len, $uid); > > + add_tu_proposal($_POST['agenda'], $_POST['user'], $len, > > $quorum, $uid); > > > > print "<p class=\"pkgoutput\">" . __("New proposal submitted.") > > . "</p>\n"; > > } else { > > @@ -75,9 +93,13 @@ if ($atype == "Trusted User" || $atype == "Developer") { > > <?= __("(empty if not applicable)") ?> > > </p> > > <p> > > - <label for="id_length"><?= __("Length in days") > > ?></label> > > - <input type="text" name="length" id="id_length" > > value="<?php if (!empty($_POST['length'])) { print > > htmlentities($_POST['length'], ENT_QUOTES); } ?>" /> > > - <?= __("(defaults to 7 if empty)") ?> > > + <label for="id_type"><?= __("Type") ?></label> > > + <select name="type" id="id_type"> > > + <option value="1"><?= __("Addition of a TU") > > ?></option> > > + <option value="2"><?= __("Removal of a TU") > > ?></option> > > + <option value="3"><?= __("Removal of a TU > > (undeclared inactivity)") ?></option> > > + <option value="4"><?= __("Amendment of Bylaws") > > ?></option> > > Could you change those to string values so the switch/case above is > easier to read? Ymmv.
Yeah, sounds like a good idea :) > > > + </select> > > </p> > > <p> > > <label for="id_agenda"><?= __("Proposal") ?></label><br /> > > diff --git a/web/lib/acctfuncs.inc.php b/web/lib/acctfuncs.inc.php > > index 6fe70af..9df1856 100644 > > --- a/web/lib/acctfuncs.inc.php > > +++ b/web/lib/acctfuncs.inc.php > > @@ -615,7 +615,7 @@ function open_user_proposals($user) { > > * > > * @return void > > */ > > -function add_tu_proposal($agenda, $user, $votelength, $submitteruid) { > > +function add_tu_proposal($agenda, $user, $votelength, $quorum, > > $submitteruid) { > > $dbh = DB::connect(); > > > > $q = "SELECT COUNT(*) FROM Users WHERE AccountTypeID = 2 AND "; > > @@ -624,11 +624,12 @@ function add_tu_proposal($agenda, $user, $votelength, > > $submitteruid) { > > $row = $result->fetch(PDO::FETCH_NUM); > > $active_tus = $row[0]; > > > > - $q = "INSERT INTO TU_VoteInfo (Agenda, User, Submitted, End, "; > > + $q = "INSERT INTO TU_VoteInfo (Agenda, User, Submitted, End, Quorum, "; > > $q.= "SubmitterID, ActiveTUs) VALUES "; > > $q.= "(" . $dbh->quote($agenda) . ", " . $dbh->quote($user) . ", "; > > $q.= "UNIX_TIMESTAMP(), UNIX_TIMESTAMP() + " . $dbh->quote($votelength); > > - $q.= ", " . $submitteruid . ", " . $active_tus . ")"; > > + $q.= ", " . $dbh->quote($quorum) . ", " . $submitteruid . ", "; > > + $q.= $active_tus . ")"; > > $result = $dbh->exec($q); > > } > > > > > >