#* AGM Status — admin dashboard for the running meeting. Everything on this page is queried here (vote counts, quorum, responses, login links); there are no meeting-room includes. Sections refresh themselves in place via agmLoad(). *# #if($canadmin || $caninstruct || $user.isInGroup('administrators')) #set($statusplan = $livetestplan) #if($statusplan) #set($only = $context.getRequestParameter("only"))

AGM Status

$!{lg.name} · $!{statusplan.name} (id $statusplan.id) · live
#if(!$only || $only == "kpi") #set($kponline = $testbench.getActiveUserCount($lg.id)) #set($kpoffline = $testbench.getOfflineUserCount($lg.id)) #set($kpproxycounts = $testbench.getOnlineProxyCounts($lg.id)) #set($kpproxies = 0) #foreach($vc in $kpproxycounts.keySet()) #set($kpproxies = $kpproxies + $kpproxycounts.get($vc)) #end #set($kproster = 0) #if($students) #set($kproster = $students.size()) #end #set($kpvotes = 0) #set($kptexts = 0) #foreach($kpentry in $statusplan.getPlanEntries()) #if($kpentry.type == "question") #set($kpq = $testbench.getQuestion($kpentry.questionid)) #if($kpq && ($kpq.questiontype == "proxyvote" || $kpq.questiontype == "multiplechoice")) #set($kpvotes = $kpvotes + 1) #elseif($kpq && ($kpq.questiontype == "longanswer" || $kpq.questiontype == "textfield" || $kpq.questiontype == "motion")) #set($kptexts = $kptexts + 1) #end #end #end
$kponline
Online
$kpoffline
Offline
$kproster
On the roster
$kpproxies
Proxies total (online)
$kpvotes
Votes · $kptexts text
#foreach($vc in $kpproxycounts.keySet())
$kpproxycounts.get($vc)
$vc proxies (online)
#end
#end
#if(!$only || $only == "votes") #set($votecount = 0) #foreach($entry in $statusplan.getPlanEntries()) #if($entry.type == "question") #set($q = $testbench.getQuestion($entry.questionid)) #if($q && ($q.questiontype == "proxyvote" || $q.questiontype == "multiplechoice")) #set($votecount = $votecount + 1) #set($responses = $q.getResponses()) #set($counts = {}) #set($qtotal = 0) #foreach($r in $responses) #set($rc = $testbench.getLiveTestManager().getTotalsForResponse($statusplan.id, $q.id, $r.id)) #set($sink = $counts.put($r.id, $rc)) #set($qtotal = $qtotal + $rc) #end #foreach($r in $responses) #set($rc = $counts.get($r.id)) #if(!$rc) #set($rc = 0) #end #set($pct = 0) #if($qtotal > 0) #set($pct = $rc * 100 / $qtotal) #end #end
$!q.getText()
Choice Votes Share
$!r.getText() $rc $pct%
Total votes cast $qtotal
#end #end #end #if($votecount == 0)
No vote questions on this plan yet.
#end #end
#if(!$only || $only == "participants") #if($students)
$students.size() on the roster · status is live (a member counts as online while their meeting page is open)
#foreach($p in $students) #set($puser = $mediaarchive.getUser($p.id)) #set($pname = "$!{puser.getName()}") #if($pname == "") #set($pname = "$!{puser.getFirstName()} $!{puser.getLastName()}") #end #if($pname == "" || $pname == " ") #set($pname = "$!{puser.getEmail()}") #end #end
#ParticipantUsernameStatus
$foreach.count #if($pname != "" && $pname != " ")$pname#elseprofile $!p.id#end $!{puser.getEmail()} #if($testbench.isOnline($lg.id, $p.id)) Online #else Offline #end
#else
No participant list available for this pod.
#end #end
#if($only == "details") #set($detailcount = 0) #foreach($entry in $statusplan.getPlanEntries()) #if($entry.type == "question") #set($q = $testbench.getQuestion($entry.questionid)) #if($q && $q.questiontype != "info") #set($detailcount = $detailcount + 1)
$!q.getText() ($!q.questiontype) #if($q.questiontype == "proxyvote" || $q.questiontype == "multiplechoice") #set($rows = $testbench.getSearcher("responsetracker").query().match("questionid", $q.id).match("planid", $statusplan.id).sort("date").search()) #set($i = 0) #foreach($rr in $rows) #set($i = $i + 1) #if($i > 100) #break #end #set($rq = $q.getResponse($rr.responseid)) #end
ParticipantVotesChoice
$!mediaarchive.getUser($rr.user) $!rr.responsecount #if($rq)$!rq.getText()#end
#if($rows.size() > 100)
Showing the first 100 of $rows.size() entries.
#end #else #set($rows = $testbench.getSearcher("responsetracker").query().match("questionid", $q.id).match("planid", $statusplan.id).sort("date").search()) #set($i = 0) #foreach($rr in $rows) #set($i = $i + 1) #if($i > 100) #break #end #end
ParticipantResponseDate
$!mediaarchive.getUser($rr.user) $!rr.responsevalue $!context.getDateTime($rr.date)
#if($rows.size() > 100)
Showing the first 100 of $rows.size() entries.
#end #end
#end #end #end #if($detailcount == 0)
No responses on this plan yet.
#end #else
Open this tab to load the per-participant responses. It only loads when you ask for it — the list can get long.
#end
#else
No meeting plan was found for this pod.
#end #else
You do not have permission to view the AGM status.
#end