Index: openacs-4/packages/oct-election/sql/postgresql/oct-election-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/sql/postgresql/oct-election-create.sql,v
diff -u -N -r1.1.1.1 -r1.1.1.1.4.1
--- openacs-4/packages/oct-election/sql/postgresql/oct-election-create.sql 14 May 2005 19:49:49 -0000 1.1.1.1
+++ openacs-4/packages/oct-election/sql/postgresql/oct-election-create.sql 17 Nov 2006 15:10:27 -0000 1.1.1.1.4.1
@@ -5,7 +5,8 @@
end_time timestamptz,
vote_forum_cutoff timestamptz,
number_of_candidates integer,
- label varchar(100)
+ label varchar(100),
+ cvs_history_days integer
);
create table oct_candidate (
Index: openacs-4/packages/oct-election/sql/postgresql/upgrade/upgrade-1.0.1-1.0.2.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/sql/postgresql/upgrade/upgrade-1.0.1-1.0.2.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/oct-election/sql/postgresql/upgrade/upgrade-1.0.1-1.0.2.sql 17 Nov 2006 15:10:27 -0000 1.1.2.1
@@ -0,0 +1,11 @@
+--
+--
+--
+-- @author Victor Guerra (guerra@galileo.edu)
+-- @creation-date 2006-10-03
+-- @arch-tag: 56805ca6-5f68-4ef7-883f-9026e46fcfa1
+-- @cvs-id $Id: upgrade-1.0.1-1.0.2.sql,v 1.1.2.1 2006/11/17 15:10:27 victorg Exp $
+--
+
+alter table oct_election add column cvs_history_days integer;
+update oct_election set cvs_history_days = 0;
Index: openacs-4/packages/oct-election/tcl/oct-election-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/tcl/oct-election-procs.tcl,v
diff -u -N -r1.1.1.1.4.1 -r1.1.1.1.4.2
--- openacs-4/packages/oct-election/tcl/oct-election-procs.tcl 7 Nov 2005 19:51:49 -0000 1.1.1.1.4.1
+++ openacs-4/packages/oct-election/tcl/oct-election-procs.tcl 17 Nov 2006 15:10:28 -0000 1.1.1.1.4.2
@@ -54,13 +54,40 @@
set text "You are not a valid voter for this election because you have not posted at least twice in the OpenACS forums since $pretty_vote_forum_cutoff. See OpenACS Governance"
return [list $status $text]
}
-
+
+ #Checking CVS commit history
+ set cvs_user [acs_user::get_element -user_id $user_id -element username]
+ set cvs_history_days [db_string get_cvs_days {
+ select cvs_history_days
+ from oct_election
+ where election_id = :election_id
+ } ]
+ if {$cvs_history_days eq 0} {
+ set cvs_history_days "all"
+ }
+ set service_url "http://xarg.net/tools/cvs/rss/?user=$cvs_user&days=$days"
+ if {![catch {
+ set commit_info [ns_httpget $service_url]
+ } errmsg] } {
+ set doc [dom parse $commit_info]
+ set root_node [$doc documentElement]
+ set commits [llength [$root_node selectNodes /rss/channel/item]]
+ if {!$commits} {
+ set status 0
+ set text "You are not a valid voter for this election because you have not committed in the CVS Repository in the last $cvs_history_days. See OpenACS Governance"
+ return [list $status $text]
+ }
+ } else {
+ set status 0
+ set text "We can not confirm your commit history in our CVS Repository, so you can not vote at this moment."
+ return [list $status $text]
+ }
+
if {!$past_start_p} {
set status 0
set text "The election will not begin until [lc_time_fmt $start_time %c]"
return [list $status $text]
}
-
if {$past_end_p} {
set status 0
set text "The election ended at [lc_time_fmt $end_time %c]"
Index: openacs-4/packages/oct-election/www/election-edit.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/election-edit.tcl,v
diff -u -N -r1.2.2.1 -r1.2.2.2
--- openacs-4/packages/oct-election/www/election-edit.tcl 7 Nov 2005 19:51:49 -0000 1.2.2.1
+++ openacs-4/packages/oct-election/www/election-edit.tcl 17 Nov 2006 15:10:29 -0000 1.2.2.2
@@ -15,6 +15,7 @@
{start_time:text {label "Start Time (2005-04-01 10:00PST)"}}
{end_time:text {label "End Time"}}
{vote_forum_cutoff:text {label "Forum Posting cutoff date (2005-04-01 10:00PST)"}}
+ {cvs_history_days:text {label "Number of days for checking Commit History"}}
{number_of_candidates:integer {label "Number of Candidates"}}
} -new_request {
auth::require_login
@@ -31,6 +32,7 @@
end_time,
label,
vote_forum_cutoff,
+ cvs_history_days,
number_of_candidates
from oct_election
where election_id = :election_id;
@@ -40,17 +42,18 @@
} -new_data {
db_dml create_election {
insert into oct_election
- (start_time, end_time, number_of_candidates, vote_forum_cutoff, label)
- values (:start_time, :end_time, :number_of_candidates, :vote_forum_cutoff, :label);
+ (start_time, end_time, number_of_candidates, vote_forum_cutoff, label, cvs_history_days)
+ values (:start_time, :end_time, :number_of_candidates, :vote_forum_cutoff, :label, :cvs_history_days);
}
} -edit_data {
db_dml update_election {
update oct_election
set start_time = :start_time,
end_time = :end_time,
vote_forum_cutoff = :vote_forum_cutoff,
+ cvs_history_days = :cvs_history_days,
number_of_candidates = :number_of_candidates,
- label = :label
+ label = :label
where election_id = :election_id}
ad_returnredirect [export_vars -base election {election_id}]
}
Index: openacs-4/packages/oct-election/www/election.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/election.adp,v
diff -u -N -r1.2.2.1 -r1.2.2.2
--- openacs-4/packages/oct-election/www/election.adp 7 Nov 2005 19:51:49 -0000 1.2.2.1
+++ openacs-4/packages/oct-election/www/election.adp 17 Nov 2006 15:10:29 -0000 1.2.2.2
@@ -7,6 +7,7 @@
Start time: @pretty_start_time@
End time: @pretty_end_time@
Forum cutoff date: @pretty_vote_forum_cutoff@
+
Check CVS Commit History for the las @cvs_history_days@ days
Ballots: @ballot_count@
Edit
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.3.2.2 -r1.3.2.3
--- openacs-4/packages/oct-election/www/election.tcl 16 May 2006 04:14:55 -0000 1.3.2.2
+++ openacs-4/packages/oct-election/www/election.tcl 17 Nov 2006 15:10:29 -0000 1.3.2.3
@@ -16,6 +16,7 @@
vote_forum_cutoff,
number_of_candidates,
label,
+ cvs_history_days,
(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
Index: openacs-4/packages/oct-election/www/find-match-cvs-users-2.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/find-match-cvs-users-2.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/oct-election/www/find-match-cvs-users-2.adp 17 Nov 2006 15:10:29 -0000 1.1.2.1
@@ -0,0 +1,14 @@
+
+ @title@
+ @context@
+
+
+
+
+ @users.last_name@, @users.first_names@ (@users.email@) - CVS user: @users.username@
+
+
+ @users.last_name@, @users.first_names@ (@users.email@)
+
+
+
Index: openacs-4/packages/oct-election/www/find-match-cvs-users-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/find-match-cvs-users-2.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/oct-election/www/find-match-cvs-users-2.tcl 17 Nov 2006 15:10:29 -0000 1.1.2.1
@@ -0,0 +1,42 @@
+#
+
+ad_page_contract {
+
+
+
+ @author Victor Guerra (guerra@galileo.edu)
+ @creation-date 2006-11-17
+ @arch-tag: e71ac791-82c4-4e2d-9bc6-9d773c882bd3
+ @cvs-id $Id: find-match-cvs-users-2.tcl,v 1.1.2.1 2006/11/17 15:10:29 victorg Exp $
+} {
+ search_text
+ cvs_user:notnull
+} -properties {
+} -validate {
+} -errors {
+}
+
+if {![acs_user::site_wide_admin_p]} {
+ ad_return_complaint 1 "You have no permission to manage cvs users!"
+}
+
+set search_text [string trim $search_text]
+set title "Searching user"
+set context [list $title]
+
+db_multirow users select_users {
+ select pe.person_id,
+ pe.first_names,
+ pe.last_name,
+ pa.email,
+ us.username
+ from persons pe, parties pa, users us
+ where pe.person_id = pa.party_id
+ and pe.person_id = us.user_id
+ and (lower(last_name) like lower('%' || :search_text || '%')
+ or lower(first_names) like lower('%' || :search_text || '%')
+ or lower(email) like lower('%' || :search_text || '%'))
+} {
+}
+
+ad_return_template
Index: openacs-4/packages/oct-election/www/find-match-cvs-users.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/find-match-cvs-users.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/oct-election/www/find-match-cvs-users.adp 17 Nov 2006 15:10:29 -0000 1.1.2.1
@@ -0,0 +1,8 @@
+
+ @title@
+ @context@
+
+
Index: openacs-4/packages/oct-election/www/find-match-cvs-users.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/find-match-cvs-users.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/oct-election/www/find-match-cvs-users.tcl 17 Nov 2006 15:10:29 -0000 1.1.2.1
@@ -0,0 +1,23 @@
+#
+
+ad_page_contract {
+
+ Matchs a openacs.org user with a given cvs user.
+
+ @author Victor Guerra (guerra@galileo.edu)
+ @creation-date 2006-11-17
+ @arch-tag: bb0f9ebe-7f89-4e2c-a40e-e0086ff80d70
+ @cvs-id $Id: find-match-cvs-users.tcl,v 1.1.2.1 2006/11/17 15:10:29 victorg Exp $
+ } {
+ cvs_user:notnull
+} -properties {
+} -validate {
+} -errors {
+}
+
+if {![acs_user::site_wide_admin_p]} {
+ ad_return_complaint 1 "You have no permission to manage cvs users!"
+}
+
+set title "Searching user"
+set context [list $title]
Index: openacs-4/packages/oct-election/www/match-cvs-users-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/match-cvs-users-2.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/oct-election/www/match-cvs-users-2.tcl 17 Nov 2006 15:10:29 -0000 1.1.2.1
@@ -0,0 +1,26 @@
+#
+
+ad_page_contract {
+
+ Assigns a given cvs user ( useranem ) for a given user
+
+ @author Victor Guerra (guerra@galileo.edu)
+ @creation-date 2006-11-17
+ @arch-tag: ba6f1ea5-8703-4ff3-8f17-9e0b5f3aeae3
+ @cvs-id $Id: match-cvs-users-2.tcl,v 1.1.2.1 2006/11/17 15:10:29 victorg Exp $
+} {
+ user_id:integer,notnull
+ cvs_user:notnull
+} -properties {
+} -validate {
+} -errors {
+}
+
+if {![acs_user::site_wide_admin_p]} {
+ ad_return_complaint 1 "You have no permission to manage cvs users!"
+}
+
+acs_user::update -user_id $user_id \
+ -username $cvs_user
+
+ad_returnredirect match-cvs-users
\ No newline at end of file
Index: openacs-4/packages/oct-election/www/match-cvs-users.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/match-cvs-users.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/oct-election/www/match-cvs-users.adp 17 Nov 2006 15:10:29 -0000 1.1.2.1
@@ -0,0 +1,5 @@
+
+ @title@
+ @context@
+
+
Index: openacs-4/packages/oct-election/www/match-cvs-users.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oct-election/www/match-cvs-users.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/oct-election/www/match-cvs-users.tcl 17 Nov 2006 15:10:29 -0000 1.1.2.1
@@ -0,0 +1,97 @@
+#
+
+ad_page_contract {
+
+ This script tries to match the cvs accounts with the openacs.org accounts
+
+ @author Victor Guerra (guerra@galileo.edu)
+ @creation-date 2006-11-13
+ @arch-tag: 868cdf88-cbc4-4e37-8f6c-ba7caab5d2cd
+ @cvs-id $Id: match-cvs-users.tcl,v 1.1.2.1 2006/11/17 15:10:29 victorg Exp $
+} {
+
+} -properties {
+} -validate {
+} -errors {
+}
+
+if {![acs_user::site_wide_admin_p]} {
+ ad_return_complaint 1 "You have no permission to manage cvs users!"
+}
+
+set title "CVS Users Sync"
+set context [list $title]
+set cvs_users_file "[acs_root_dir]/cvs_users.txt"
+
+if {![file exists $cvs_users_file]} {
+ ad_return_complaint 1 "file cvs_users.txt not found!!, it should be under [acs_root_dir]"
+}
+
+set fp [open $cvs_users_file r]
+set cvs_users [read $fp]
+close $fp
+
+template::list::create \
+ -name users_info \
+ -multirow users_info \
+ -key line_id \
+ -elements {
+ line_id {
+ label "Line \#"
+ html { align center }
+ }
+ cvs_user {
+ label "CVS User"
+ display_template { @users_info.cvs_user@ }
+ html { align center}
+ }
+ associated_user {
+ label "openacs.org user"
+ html { align center }
+ }
+ possible_user {
+ label "Possible openacs.org user"
+ display_template { @users_info.possible_user;noquote@ }
+ html { align center}
+ }
+ actions {
+ label "Actions"
+ display_template { @users_info.actions;noquote@}
+ html { align center }
+ }
+ }
+
+multirow create users_info line_id cvs_user associated_user possible_user actions
+
+set line_number 0
+foreach line [split $cvs_users "\n"] {
+ set actions "-"
+ set associated_user ""
+ set possible_user ""
+ incr line_number
+ set line_splitted [split $line ":"]
+ set cvs_user [lindex $line_splitted 0]
+
+ if {$cvs_user ne ""} {
+ set user_names [lindex $line_splitted 4]
+ set user_id [acs_user::get_by_username -username $cvs_user]
+ if {$user_id ne ""} {
+ acs_user::get -user_id $user_id -array user_info
+ set associated_user "$user_info(name) ($user_info(email))"
+ } else {
+ regsub " " [string tolower $user_names] "" lower_user_names
+ foreach person_id [db_list get_persons {
+ select person_id from persons
+ where lower(replace(first_names || last_name, ' ', '')) = :lower_user_names
+ }] {
+ acs_user::get -user_id $person_id -array user_info
+ append possible_user "$user_info(name) ($user_info(email)) match
"
+ }
+ }
+ if {$associated_user eq "" && $possible_user eq ""} {
+ set actions "Find a match"
+ }
+ multirow append users_info $line_number "$user_names ($cvs_user)" $associated_user $possible_user $actions
+ }
+}
+