Remember whether a request has been accepted

Store whether a package request is accepted or rejected and display the
reason of each closed request in the request list.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2014-07-04 11:21:58 +02:00
parent 743f13e92d
commit 87215cef00
2 changed files with 22 additions and 6 deletions

View file

@ -30,11 +30,11 @@ function pkgreq_list($offset, $limit) {
$q.= "PackageRequests.MergeBaseName AS MergeInto, "; $q.= "PackageRequests.MergeBaseName AS MergeInto, ";
$q.= "RequestTypes.Name AS Type, PackageRequests.Comments, "; $q.= "RequestTypes.Name AS Type, PackageRequests.Comments, ";
$q.= "Users.Username AS User, PackageRequests.RequestTS, "; $q.= "Users.Username AS User, PackageRequests.RequestTS, ";
$q.= "PackageRequests.Status "; $q.= "PackageRequests.Status, PackageRequests.Status = 0 AS Open ";
$q.= "FROM PackageRequests INNER JOIN RequestTypes ON "; $q.= "FROM PackageRequests INNER JOIN RequestTypes ON ";
$q.= "RequestTypes.ID = PackageRequests.ReqTypeID "; $q.= "RequestTypes.ID = PackageRequests.ReqTypeID ";
$q.= "INNER JOIN Users ON Users.ID = PackageRequests.UsersID "; $q.= "INNER JOIN Users ON Users.ID = PackageRequests.UsersID ";
$q.= "ORDER BY Status ASC, RequestTS DESC "; $q.= "ORDER BY Open DESC, RequestTS DESC ";
$q.= "LIMIT " . $limit . " OFFSET " . $offset; $q.= "LIMIT " . $limit . " OFFSET " . $offset;
return $dbh->query($q)->fetchAll(); return $dbh->query($q)->fetchAll();
@ -164,7 +164,14 @@ function pkgreq_close($id, $reason, $comments) {
global $AUR_LOCATION; global $AUR_LOCATION;
global $AUR_REQUEST_ML; global $AUR_REQUEST_ML;
if ($reason != 'accepted' && $reason != 'rejected') { switch ($reason) {
case 'accepted':
$status = 2;
break;
case 'rejected':
$status = 3;
break;
default:
return array(false, __("Invalid reason.")); return array(false, __("Invalid reason."));
} }
@ -175,7 +182,8 @@ function pkgreq_close($id, $reason, $comments) {
return array(false, __("Only TUs and developers can close requests.")); return array(false, __("Only TUs and developers can close requests."));
} }
$q = "UPDATE PackageRequests SET Status = 1 WHERE ID = " . intval($id); $q = "UPDATE PackageRequests SET Status = " . intval($status) . " ";
$q.= "WHERE ID = " . intval($id);
$dbh->exec($q); $dbh->exec($q);
/* /*

View file

@ -45,8 +45,8 @@
<td> <td>
<a href="<?= get_uri('/account/') . htmlspecialchars($row['User'], ENT_QUOTES) ?>" title="<?= __('View account information for %s', htmlspecialchars($row['User'])) ?>"><?= htmlspecialchars($row['User']) ?></a> <a href="<?= get_uri('/account/') . htmlspecialchars($row['User'], ENT_QUOTES) ?>" title="<?= __('View account information for %s', htmlspecialchars($row['User'])) ?>"><?= htmlspecialchars($row['User']) ?></a>
</td> </td>
<td<?php if ($row['Status'] == 0 && time() - intval($row['RequestTS']) > $REQUEST_IDLE_TIME): ?> class="flagged"<?php endif; ?>><?= gmdate("Y-m-d H:i", intval($row['RequestTS'])) ?></td> <td<?php if ($row['Open'] && time() - intval($row['RequestTS']) > $REQUEST_IDLE_TIME): ?> class="flagged"<?php endif; ?>><?= gmdate("Y-m-d H:i", intval($row['RequestTS'])) ?></td>
<?php if ($row['Status'] == 0): ?> <?php if ($row['Open']): ?>
<td> <td>
<?php if ($row['BaseID']): ?> <?php if ($row['BaseID']): ?>
<?php if ($row['Type'] == 'deletion'): ?> <?php if ($row['Type'] == 'deletion'): ?>
@ -66,7 +66,15 @@
<a href="<?= get_pkgreq_route() . '/' . intval($row['ID']) ?>/close/"><?= __('Close') ?></a> <a href="<?= get_pkgreq_route() . '/' . intval($row['ID']) ?>/close/"><?= __('Close') ?></a>
</td> </td>
<?php else: ?> <?php else: ?>
<?php if ($row['Status'] == 1): ?>
<td><?= __("Closed") ?></td> <td><?= __("Closed") ?></td>
<?php elseif ($row['Status'] == 2): ?>
<td><?= __("Accepted") ?></td>
<?php elseif ($row['Status'] == 3): ?>
<td><?= __("Rejected") ?></td>
<?php else: ?>
<td><?= __("unknown") ?></td>
<?php endif; ?>
<?php endif; ?> <?php endif; ?>
</tr> </tr>
<?php endwhile; ?> <?php endwhile; ?>