[aur-dev] [PATCH 2/3] Add a vote type to the TU proposal form

Florian Pritz bluewind at xinu.at
Sun Aug 4 15:51:17 EDT 2013


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 <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..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.

> +			</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);
>  }
>  
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.archlinux.org/pipermail/aur-dev/attachments/20130804/1d5c9355/attachment-0001.asc>


More information about the aur-dev mailing list