[aur-dev] [PATCH v2 5/7] Add a vote type to the TU proposal form

Lukas Fleischer archlinux at cryptocrack.de
Thu Aug 22 12:08:26 EDT 2013


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 <archlinux at 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..3ce99c0 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 "add_tu":
+				/* Addition of a TU */
+				$len = 7 * 24 * 60 * 60;
+				$quorum = 0.66;
+				break;
+			case "remove_tu":
+				/* Removal of a TU */
+				$len = 7 * 24 * 60 * 60;
+				$quorum = 0.75;
+				break;
+			case "remove_inactive_tu":
+				/* Removal of a TU (undeclared inactivity) */
+				$len = 5 * 24 * 60 * 60;
+				$quorum = 0.66;
+				break;
+			case "bylaws":
+				/* 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="add_tu"><?= __("Addition of a TU") ?></option>
+				<option value="remove_tu"><?= __("Removal of a TU") ?></option>
+				<option value="remove_inactive_tu"><?= __("Removal of a TU (undeclared inactivity)") ?></option>
+				<option value="bylaws"><?= __("Amendment of Bylaws") ?></option>
+			</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 738c7b2..31cdd79 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";
@@ -623,11 +623,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);
 }
 
-- 
1.8.4.rc3.500.gc3113b0



More information about the aur-dev mailing list