From 31ae507b1b8bed024e18581f244e16e9c74e927b Mon Sep 17 00:00:00 2001 From: Tom Lake <tswsl1989@sucs.org> Date: Thu, 27 Sep 2012 15:51:24 +0000 Subject: [PATCH] Add member list from SU API --- components/susignup-admin.php | 24 +++++++++++++++++++++++ htdocs/css/susignup-admin.css | 2 +- templates/susignup-admin.tpl | 36 ++++++++++++++++++++++++++++------- 3 files changed, 54 insertions(+), 8 deletions(-) diff --git a/components/susignup-admin.php b/components/susignup-admin.php index 9751558..bd930b3 100644 --- a/components/susignup-admin.php +++ b/components/susignup-admin.php @@ -244,6 +244,30 @@ if (isset($session->groups[$permission])) { $smarty->assign("failusers", $failures); $smarty->assign("successes", count($successes)); } + } else if ($mode == 'list') { + //Get list of members according to the SU + $url = "https://$suapi_user:$suapi_pass@hap.swansea-union.co.uk/memberships/Membership.asmx/GetMemberListData?GroupingId=6613"; + $apiReq = curl_init(); + curl_setopt($apiReq, CURLOPT_URL, $url); + curl_setopt($apiReq, CURLOPT_RETURNTRANSFER, TRUE); + + $apiResult = curl_exec($apiReq); + $sumembers = su_response_decode($apiResult); + $matches = array(); + foreach ($sumembers as $sumem) { + $sucsmem = get_sucs_record($sumem['uni_card_number']); + if ($sucsmem) { + $matches[]=array($sumem['firstName']." ".$sumem['lastName'], $sucsmem['realname'], $sumem['uni_card_number'], $sucsmem['username'], $sucsmem['paid']); + } else { + $matches[]=array($sumem['firstName']." ".$sumem['lastName'], "N/A", $sumem['uni_card_number'], "N/A", "Not signed up"); + } + } + function sortbypaid($a, $b) { + //Lets us array sort by final column ('Paid') + return ($a[4] < $b[4]) ? -1 : 1; + } + usort($matches, 'sortbypaid'); + $smarty->assign("matches", $matches); } } diff --git a/htdocs/css/susignup-admin.css b/htdocs/css/susignup-admin.css index 1631a56..1de06bb 100644 --- a/htdocs/css/susignup-admin.css +++ b/htdocs/css/susignup-admin.css @@ -1,6 +1,6 @@ div.susignup-admin-menu { float: left; - width: 30%; + width: 22%; margin-left: 10px; background: #E76808; border-radius: 15px; diff --git a/templates/susignup-admin.tpl b/templates/susignup-admin.tpl index a455340..0c9dc1a 100644 --- a/templates/susignup-admin.tpl +++ b/templates/susignup-admin.tpl @@ -46,6 +46,20 @@ The following accounts failed to renew: {/if} </div> </div> + {elseif $mode == 'list'} + + <table id='susignup-renewals'> + <thead> + <tr><th>Name (SU)</th><th>Name (SUCS)</th><th>Student ID</th><th>SUCS Username</th><th>Paid Until</th></tr> + </thead> + <tbody> +{foreach from=$matches item=match} + <tr><td>{$match[0]}</td><td>{$match[1]}</td><td class='centre'>{$match[2]}</td><td>{$match[3]}</td><td class='centre'>{$match[4]}</td></tr> +{foreachelse} + <tr><td colspan='6'><em>Oh Noes! No members found in the SU database</em></td></tr> +{/foreach} + </tbody> +</table> {elseif $mode == 'search'} <div style='text-align: center'> <div class='cbb' style='text-align: left'> @@ -67,6 +81,15 @@ This component allows staff members to sort out memberships and renewals that ha </p> <div style='text-align: center'> <div class='susignup-admin-menu cbb'> +<h3>Signup a newbie</h3> +<form action='{$componentpath}' method='post'> + <label for='sid'>Student Number:</label> + <input type='text' name='sid' id='sid' maxlength=6 /> + <input type='hidden' name='mode' id='mode' value="search" /> + <input type='submit' name='snsubmit' id='snsubmit' value="Start" /> +</form> +</div> +<div class='susignup-admin-menu cbb'> <h3>Renew existing account:</h3> <form action='{$componentpath}' method='post'> <label for='member'>Account:</label> @@ -77,19 +100,18 @@ This component allows staff members to sort out memberships and renewals that ha </div> <div class='susignup-admin-menu cbb'> <h3>Bulk Renewals</h3> -<p style='text-align: left'>This will query the SU API for all current SUCS members and generate a list of corresponding SUCS accounts to be renewed.<br /> This process can take a little while to run</p><br /> +<p style='text-align: left'>This will query the SU API and generate a list of corresponding SUCS accounts to be renewed.<br /> This process can take a little while to run</p><br /> <form action='{$componentpath}' method='post'> <input type='submit' name='rwsubmit' id='rwsubmit' value='Generate List' /> <input type='hidden' name='mode' id='mode' value='renewals' /> </form> </div> -<div class='susignup-admin-menu cbb'> -<h3>Signup a newbie</h3> +<div class='susignup-admin-menu cbb'> +<h3>SU Membership List</h3> +<p style='text-align: left'>This will query the SU API for all current SUCS members<br /> This process can take a little while to run</p><br /> <form action='{$componentpath}' method='post'> - <label for='sid'>Student Number:</label> - <input type='text' name='sid' id='sid' maxlength=6 /> - <input type='hidden' name='mode' id='mode' value="search" /> - <input type='submit' name='snsubmit' id='snsubmit' value="Start" /> + <input type='submit' name='lssubmit' id='lssubmit' value='View List' /> + <input type='hidden' name='mode' id='mode' value='list' /> </form> </div> </div> -- GitLab