Index: openacs-4/packages/oct-election/www/election.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/election.tcl,v
diff -u -N -r1.2 -r1.3
--- openacs-4/packages/oct-election/www/election.tcl 14 May 2005 20:25:01 -0000 1.2
+++ openacs-4/packages/oct-election/www/election.tcl 14 May 2005 23:16:28 -0000 1.3
@@ -5,7 +5,7 @@
}
set user_id [auth::require_login]
-set admin_p [acs_user::site_wide_admin_p]
+set admin_p [permission::permission_p -object_id [ad_conn package_id] -privilege create]
set valid_voter [oct-election::valid_voter_p -election_id $election_id -user_id $user_id]
set valid_voter_p [lindex $valid_voter 0]
set valid_voter_text [lindex $valid_voter 1]
@@ -14,11 +14,20 @@
select start_time,
end_time,
vote_forum_cutoff,
- label
+ number_of_candidates,
+ label,
+ (case when now() > start_time then 1 else 0 end) as past_start_p,
+ (case when now() > end_time then 1 else 0 end) as past_end_p
from oct_election
where election_id = :election_id
}
+set ballot_count [db_string get_ballot_count {
+ select count(*)
+ from oct_ballot
+ where election_id = :election_id;
+}]
+
set page_title $label
set context $page_title
@@ -31,40 +40,51 @@
}
delete {
link_url_col delete_url
- display_template {
-
- }
+ display_template "
+
+
+
+ "
sub_class narrow
}
count {
- label "Count"
+ label "Votes"
}
}
+if {$past_end_p} {
+ set order_clause "order by label"
+} else {
+ set order_clause "order by cand_count desc"
+}
+
db_multirow \
-extend {
delete_url
count
- } candidates candidates_select {
+ } candidates candidates_select "
select oc.candidate_id,
oc.label as candidate_label,
count(ov.candidate_id) as cand_count
from oct_candidate oc left outer join oct_vote ov using (candidate_id)
where oc.election = :election_id
group by oc.candidate_id, oc.label
- } {
+ $order_clause
+ " {
set delete_url [export_vars -base "candidate-delete" {candidate_id election_id}]
- if {} {
+ if {$past_end_p} {
set count $cand_count
} else {
set count "Results pending"
}
}
-#TODO: show vote total if election is over
#TODO: hide delete button if not admin
#TODO: sort candidates by vote total if election is over, or alpha if not
+#DEBUG
+db_1row get_now {
+ select now() as now
+ from dual;
+}
-
-