Index: openacs-4/contrib/packages/events/www/manage/activities.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activities.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activities.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,34 @@ + +Activities +@context;noquote@ + + + +

Current Activities

+ + + +

Discontinued Activities

+ + + Index: openacs-4/contrib/packages/events/www/manage/activities.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activities.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activities.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,21 @@ +# events/www/admin/activities.tcl +ad_page_contract { + Displays a list of current and discontinued activities. + Details for specific activities are one click deep. + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: activities.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ + +} { +} + +set package_id [ad_conn package_id] + +set context [list Activities] + +db_multirow available_activities select_available_activities {} + +db_multirow unavailable_activities select_unavailable_activities {} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/activities.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activities.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activities.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,23 @@ + + + + + select a.activity_id, a.name, ea.available_p + from events_activities ea, acs_activities a + where ea.activity_id = a.activity_id + and package_id = :package_id + and ea.available_p = 't' + order by name asc + + + + + select a.activity_id, a.name, ea.available_p + from events_activities ea, acs_activities a + where ea.activity_id = a.activity_id + and package_id = :package_id + and ea.available_p = 'f' + order by name asc + + + Index: openacs-4/contrib/packages/events/www/manage/activity-add.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-add.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-add.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,8 @@ + +Add a New Activity +@context;noquote@ +activity.name + +

Activity Description

+ + Index: openacs-4/contrib/packages/events/www/manage/activity-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-add.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-add.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,95 @@ +#/packages/events/www/admin/activity-ae.tcl + +ad_page_contract { + If an activity_id is supplied, the page will display + the activity to an admin with options + for modifying the event. Otherwise, a blank form for + the creation of a new event will be provided. + + @param activity_id the activity at which we're looking + @param email_from_search + @param user_id_from_search + @param no_contact + @param default_contact_user_id + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: activity-add.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {activity_id:naturalnum,optional} + {email_from_search:optional} + {user_id_from_search:optional} + {no_contact_flag:optional} + {default_contact_user_id:naturalnum,optional} +} + +set context [list [list activities Activities] "New Activity"] +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] + +if { $package_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "[ad_header {Permission Denied}] +

Permission Denied

+ You don't have permission to admin Events Management. " + ad_script_abort +} + +form create activity + +element create activity name \ + -label "Activity Name" \ + -datatype text \ + -widget text \ + -html {size 60} + +element create activity default_contact_user_id \ + -label "Default Contact Person" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::organizer::users_get_options] \ + -optional \ + -value "" \ + -search_query { + select distinct u.first_names || ' ' || u.last_name as name, u.user_id + from cc_users u + where upper(decode(u.first_names,' ', '') || decode(u.last_name,' ', '') || u.email || ' ' || decode(u.screen_name, ' ', '')) like upper('%'||:value||'%') + order by name +} + +element create activity detail_url \ + -label "Details URL" \ + -datatype text \ + -widget text \ + -html {size 50} \ + -help_text "Note: If you don't put http:// in your url, the link will be relative" \ + -optional + +element create activity description \ + -label Description \ + -datatype text \ + -widget textarea \ + -html {cols 60 rows 10 wrap soft} \ + -optional + +if {[template::form is_valid activity]} { + template::form get_values activity \ + name description detail_url default_contact_user_id + + set package_id [ad_conn package_id] + set activity_id [events::activity::new \ + -name $name \ + -description $description \ + -detail_url $detail_url \ + -default_contact_user_id $default_contact_user_id \ + -package_id $package_id + ] + + ad_returnredirect "activity?activity_id=$activity_id" + ad_script_abort +} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/activity-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-edit.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-edit.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,9 @@ + +@title;noquote@ +@context;noquote@ +activity.name + + +

Activity Description

+ + Index: openacs-4/contrib/packages/events/www/manage/activity-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-edit.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-edit.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,124 @@ +# events/www/admin/activity-edit.tcl + +ad_page_contract { + Allows admins to edit an activity's properties. + + @param activity_id the activity to edit + @param email_from_search optional default contact person's email + @param user_id_from_search optional default contact person's user_id + @param no_contact_flat optional flag stating there is not default contact + @param default_contact_user_id optional default contact person's user_id + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs-id activity-edit.tcl,v 3.8.2.7 2000/09/29 14:49:46 bryanche Exp +} { + {activity_id:naturalnum,notnull} +} -validate { + activity_exists -requires {activity_id} { + if { ![db_0or1row activity_exists {}] } { + ad_complain "We couldn't find the activity you asked for." + return 0 + } + return 1 + } +} + +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + +if { $package_admin != 1} { + + doc_return 200 text/html "

Permission Denied

+ You don't have permission to admin Events Management. " + ad_script_abort +} + +form create activity + +element create activity activity_id \ + -label "Activity ID" \ + -datatype integer \ + -widget hidden + +element create activity name \ + -label "Activity Name" \ + -datatype text \ + -widget text \ + -html {size 60} + +element create activity creator \ + -label "Creator" \ + -datatype text \ + -widget inform + +element create activity default_contact_user_id \ + -label "Default Contact Person" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::organizer::users_get_options] \ + -optional \ + -search_query { + select distinct u.first_names || ' ' || u.last_name as name, u.user_id + from cc_users u + where upper(decode(u.first_names,' ', '') || decode(u.last_name,' ', '') || u.email || ' ' || decode(u.screen_name, ' ', '')) like upper('%'||:value||'%') + order by name +} + +element create activity detail_url \ + -label "Details URL" \ + -datatype text \ + -widget text \ + -html {size 50} \ + -help_text "Leave out http:// for relative URLs" \ + -optional + +element create activity description \ + -label Description \ + -datatype text \ + -widget textarea \ + -html {cols 60 rows 10 wrap soft} \ + -optional + +element create activity available_p \ + -label "Current or Discontinued" \ + -datatype text \ + -widget radio \ + -options {{Current t} {Discontinued f}} \ + -help_text "Discontinuing an activity will not cancel an activity's existing events. It only prevents you from adding new events to the activity" + +if {[template::form is_valid activity]} { + template::form get_values activity \ + activity_id name detail_url description available_p default_contact_user_id + + events::activity::edit \ + -activity_id $activity_id \ + -name $name \ + -detail_url $detail_url \ + -description $description \ + -available_p $available_p \ + -default_contact_user_id $default_contact_user_id + + ad_returnredirect "activity?activity_id=$activity_id" + ad_script_abort +} + +events::activity::get -activity_id $activity_id -array activity_info +set title "Edit $activity_info(name)" + +set context [list [list activities "Activities"] \ + [list "activity?activity_id=$activity_id" "$activity_info(name)"] "Edit"] + +element set_properties activity activity_id -value $activity_id +element set_properties activity name -value $activity_info(name) +element set_properties activity default_contact_user_id -value $activity_info(default_contact_user_id) +element set_properties activity detail_url -value $activity_info(detail_url) +element set_properties activity description -value $activity_info(description) +element set_properties activity available_p -value $activity_info(available_p) + +events::activity::get_creator -activity_id $activity_id -array creator_info +element set_properties activity creator -value $creator_info(name) +ad_return_template + Index: openacs-4/contrib/packages/events/www/manage/activity-edit.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-edit.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-edit.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,25 @@ + + + + + + select 1 + from events_activities + where activity_id = :activity_id + + + + + + select a.name, + a.description, + ae.available_p, + ae.detail_url, + ae.default_contact_user_id + from acs_activities a, events_activities ae + where a.activity_id = :activity_id + and a.activity_id = ae.activity_id + + + + Index: openacs-4/contrib/packages/events/www/manage/activity-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,50 @@ + + + + + + select role, eor.role_id, + decode(public_role_p, 't', ' (public role)', '') as public_role_p + from events_organizer_roles eor, events_org_role_activity_map eoram + where eoram.activity_id = :activity_id + and eoram.role_id = eor.role_id + order by role + + + + + + select CASE WHEN to_char(t.start_date, 'YYYY-MM-DD') = to_char(t.end_date, 'YYYY-MM-DD') + THEN to_char(t.start_date, :date_format) || ' (' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :time_format) || ')' + ELSE to_char(t.start_date, :date_format) || ' ' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :date_format) || ' ' || to_char(t.end_date, :time_format) + END as timespan, + nvl(e.name, a.name) as name, + e.event_id, + v.city, + v.usps_abbrev + from acs_activities a, + acs_events e, + events_activities ea, + events_events ee, + timespans s, + time_intervals t, + events_venues v + where e.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and e.activity_id = a.activity_id + and a.activity_id = ea.activity_id + and e.activity_id = :activity_id + and e.event_id = ee.event_id + and v.venue_id = ee.venue_id + and ee.available_p = 't' + and ea.package_id = :package_id + order by t.start_date + + + + + + + + + Index: openacs-4/contrib/packages/events/www/manage/activity-orders-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-orders-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-orders-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,74 @@ + + + + + + select er.reg_id, + person.name(er.user_id) as name, + er.user_id, + pa.email, + er.reg_state, + to_char(ao.creation_date, :date_format) || ' ' || to_char(ao.creation_date, :time_format) as creation_date, + ae.event_id, + ev.venue_name, + CASE WHEN to_char(t.start_date, 'YYYY-MM-DD') = to_char(t.end_date, 'YYYY-MM-DD') + THEN to_char(t.start_date, :date_format) || ' (' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :time_format) || ')' + ELSE to_char(t.start_date, :date_format) || ' ' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :date_format) || ' ' || to_char(t.end_date, :time_format) + END as timespan + from events_registrations er, + parties pa, + acs_objects ao, + acs_events ae, + events_venues ev, + events_events ee, + timespans s, + time_intervals t + where er.user_id = pa.party_id + and ae.activity_id = :activity_id + and ae.event_id = er.event_id + and ae.event_id = ee.event_id + and ee.venue_id = ev.venue_id + and er.reg_state <> 'canceled' + and er.reg_id = ao.object_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + order by creation_date + + + + + + select er.reg_id, + person.name(er.user_id) as name, + er.user_id, + pa.email, + er.reg_state, + to_char(ao.creation_date, :date_format) || ' ' || to_char(ao.creation_date, :time_format) as creation_date, + ae.event_id, + ev.venue_name, + CASE WHEN to_char(t.start_date, 'YYYY-MM-DD') = to_char(t.end_date, 'YYYY-MM-DD') + THEN to_char(t.start_date, :date_format) || ' (' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :time_format) || ')' + ELSE to_char(t.start_date, :date_format) || ' ' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :date_format) || ' ' || to_char(t.end_date, :time_format) + END as timespan + from events_registrations er, + parties pa, + acs_objects ao, + acs_events ae, + events_venues ev, + events_events ee, + timespans s, + time_intervals t + where er.user_id = pa.party_id + and ae.activity_id = :activity_id + and ae.event_id = er.event_id + and ae.event_id = ee.event_id + and ee.venue_id = ev.venue_id + and er.reg_state = :specific_reg_type + and er.reg_id = ao.object_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + order by creation_date + + + + Index: openacs-4/contrib/packages/events/www/manage/activity-orders-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-orders-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-orders-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,74 @@ + + + + + + select er.reg_id, + person__name(er.user_id) as name, + er.user_id, + pa.email, + er.reg_state, + to_char(ao.creation_date, :date_format) || ' ' || to_char(ao.creation_date, :time_format) as creation_date, + ae.event_id, + ev.venue_name, + CASE WHEN to_char(t.start_date, 'YYYY-MM-DD') = to_char(t.end_date, 'YYYY-MM-DD') + THEN to_char(t.start_date, :date_format) || ' (' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :time_format) || ')' + ELSE to_char(t.start_date, :date_format) || ' ' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :date_format) || ' ' || to_char(t.end_date, :time_format) + END as timespan + from events_registrations er, + parties pa, + acs_objects ao, + acs_events ae, + events_venues ev, + events_events ee, + timespans s, + time_intervals t + where er.user_id = pa.party_id + and ae.activity_id = :activity_id + and ae.event_id = er.event_id + and ae.event_id = ee.event_id + and ee.venue_id = ev.venue_id + and er.reg_state <> 'canceled' + and er.reg_id = ao.object_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + order by creation_date + + + + + + select er.reg_id, + person__name(er.user_id) as name, + er.user_id, + pa.email, + er.reg_state, + to_char(ao.creation_date, :date_format) || ' ' || to_char(ao.creation_date, :time_format) as creation_date, + ae.event_id, + ev.venue_name, + CASE WHEN to_char(t.start_date, 'YYYY-MM-DD') = to_char(t.end_date, 'YYYY-MM-DD') + THEN to_char(t.start_date, :date_format) || ' (' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :time_format) || ')' + ELSE to_char(t.start_date, :date_format) || ' ' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :date_format) || ' ' || to_char(t.end_date, :time_format) + END as timespan + from events_registrations er, + parties pa, + acs_objects ao, + acs_events ae, + events_venues ev, + events_events ee, + timespans s, + time_intervals t + where er.user_id = pa.party_id + and ae.activity_id = :activity_id + and ae.event_id = er.event_id + and ae.event_id = ee.event_id + and ee.venue_id = ev.venue_id + and er.reg_state = :specific_reg_type + and er.reg_id = ao.object_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + order by creation_date + + + + Index: openacs-4/contrib/packages/events/www/manage/activity-orders.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-orders.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-orders.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,90 @@ + +@title;noquote@ +@context;noquote@ + + + + + + + + + + +
Activity@activity_info.name@
+ + + + + + + + + + + + + +
ApprovedPendingWaitingCanceled
@activity_stats.approved@@activity_stats.pending@@activity_stats.waiting@@activity_stats.canceled@
+ +
+ + +
    +
  • No registrants fit this category +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
LocationTimeReg. IDNameEmailReg. DateReg. State
@activity_members.venue_name@@activity_members.timespan@@activity_members.reg_id@@activity_members.name@@activity_members.email@@activity_members.creation_date@ + + + @activity_members.reg_state@ + waitlist + - cancel + + + @activity_members.reg_state@ +approve - + cancel + + + @activity_members.reg_state@ +approve - + waitlist + - cancel + + + @activity_members.reg_state@ +approve - + waitlist + + +
+
+ +
Index: openacs-4/contrib/packages/events/www/manage/activity-orders.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-orders.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-orders.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,55 @@ +# events/www/admin/order-history-one.tcl + +ad_page_contract { + + displays the order history of an event + + @param event_id + @author Matthew Geddert (geddert@yahoo.com) + +} { + {specific_reg_type ""} + {activity_id:integer} +} -properties { + activity_members:multirow +} -validate { + activity_exists_p -requires {activity_id} { + if { ![events::activity::exists_p -activity_id $activity_id] } { + ad_complain "We couldn't find the activity you asked for." + return 0 + } + return 1 + } +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] + +if { $package_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

Permission Denied

+ You don't have permission to admin Events Management. " + ad_script_abort +} + + +# what reg state do we plug into the database? +set date_format [parameter::get -parameter date_format -default "MM/DD/YYYY"] +set time_format [parameter::get -parameter time_format -default "HH12:MIam"] + +if {[string equal $specific_reg_type "canceled"] || + [string equal $specific_reg_type "approved"] || + [string equal $specific_reg_type "waiting"] || + [string equal $specific_reg_type "pending"]} { +db_multirow activity_members select_specific_reg_type {} +} else { +db_multirow activity_members select_activity_members {} +} + +events::activity::get -activity_id $activity_id -array activity_info +events::activity::get_stats -activity_id $activity_id -array activity_stats +set title "Order History for $activity_info(name)" +set context [list [list "activities" Activities] [list "activity?activity_id=$activity_id" $activity_info(name)] "Orders"] + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/activity-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,47 @@ + + + + + + select role, eor.role_id, public_role_p, + CASE when public_role_p = 't' then ' (public role)' + ELSE '' + END + from events_organizer_roles eor, events_org_role_activity_map eoram + where eoram.activity_id = :activity_id + and eoram.role_id = eor.role_id + order by role + + + + + + select CASE WHEN to_char(t.start_date, 'YYYY-MM-DD') = to_char(t.end_date, 'YYYY-MM-DD') + THEN to_char(t.start_date, :date_format) || ' (' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :time_format) || ')' + ELSE to_char(t.start_date, :date_format) || ' ' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :date_format) || ' ' || to_char(t.end_date, :time_format) + END as timespan, + coalesce(e.name, a.name) as name, + e.event_id, + v.city, + v.usps_abbrev + from acs_activities a, + acs_events e, + events_activities ea, + events_events ee, + timespans s, + time_intervals t, + events_venues v + where e.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and e.activity_id = a.activity_id + and a.activity_id = ea.activity_id + and e.activity_id = :activity_id + and e.event_id = ee.event_id + and v.venue_id = ee.venue_id + and ee.available_p = 't' + and ea.package_id = :package_id + order by t.start_date + + + + Index: openacs-4/contrib/packages/events/www/manage/activity.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,103 @@ + +@activity_info.name;noquote@ +@context;noquote@ + +

Events for this Activity

+ + + +

Activity Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name@activity_info.name@
Creator@creator_info.name@
Default Contact Person@activity_info.default_contact_email@
URL@activity_info.detail_url@
Description@activity_info.description@
Current or DiscontinuedCurrentDiscontinued
+ +

+ +

+ + +

Organizer Roles

+You may create default organizer roles for this activity type. +
    + + +
  • @org_roles.role@ @org_roles.public_role_p@    + [ remove ] +
  • +
    +
    + +
  • There are no organizer roles for this activity
  • +
    +

    + +
  • Add an organizer role + +
+ +

Event Statistics

+ + + + + + + + + + + + + +
ApprovedPendingWaitingCanceled
@activity_stats.approved@@activity_stats.pending@@activity_stats.waiting@@activity_stats.canceled@
+ + + + + + + + Index: openacs-4/contrib/packages/events/www/manage/activity.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,98 @@ +# /events/www/admin/activity.tcl + +ad_page_contract { + Displays a particular activity to an admin, with options + for modifying the event. + + @param activity_id the activity at which we're looking + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: activity.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + activity_id:integer,notnull +} -validate { + activity_exists -requires {activity_id} { + if { ![events::activity::exists_p -activity_id $activity_id] } { + ad_complain "We couldn't find the activity you asked for." + return 0 + } + return 1 + } +} + + +set package_id [ad_conn package_id] +set user_id [ad_conn user_id] + +#see if user have admin permission for the package +set permission_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] +if { $permission_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

Permission Denied

+ You don't have permission to admin Events Management. " + ad_script_abort +} + +events::activity::get -activity_id $activity_id -array activity_info +events::activity::get_creator -activity_id $activity_id -array creator_info +events::activity::get_stats -activity_id $activity_id -array activity_stats + +set context [list [list activities "Activities"] $activity_info(name)] + +set date_format [parameter::get -parameter date_format -default "MM/DD/YYYY"] +set time_format [parameter::get -parameter time_format -default "HH12:MIam"] + +set events "" +db_foreach select_activity_events {} { + # do something for each group of which user 123456 is in the role + # of "administrator" + events::event::get_stats -event_id $event_id -array event_stats + + append events "
  • " + if { [empty_string_p $city] } { + append events "$name" + } else { + append events "$city" + } + if { ![empty_string_p $usps_abbrev] } { + if { ![empty_string_p $city] } { + append events ", " + } else { + append events " - " + } + append events "$usps_abbrev" + } + append events " - $timespan - " + if { [empty_string_p $event_stats(max_people)] } { + append events "unlimited registrations" + } else { + append events "([expr $event_stats(max_people) - $event_stats(approved)]<\/b> of $event_stats(max_people) spots left" + } + + if {![string compare $event_stats(pending) "0"] == 0} { + append events " with $event_stats(pending) pending<\/font>" + if {![string compare $event_stats(waiting) "0"] == 0} { + append events " and $event_stats(waiting) waiting<\/font>" + } + } else { + if {![string compare $event_stats(waiting) "0"] == 0} { + append events " with $event_stats(waiting) waiting<\/font>" + } + } + + if { ![empty_string_p $event_stats(max_people)] } { + append events ")" + } +} + +if {![exists_and_not_null events]} { + set events "
  • No events for this activity have been created.<\/li>" +} + + +db_multirow custom_fields select_custom_fields {} +db_multirow org_roles select_org_roles {} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/activity.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/activity.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/activity.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,45 @@ + + + + + + select a.name, + a.description, + ae.available_p, + ae.detail_url, + ae.default_contact_user_id + from acs_activities a, events_activities ae + where a.activity_id = :activity_id + and a.activity_id = ae.activity_id + + + + + + select column_name, pretty_name, column_type, column_actual_type, + column_extra, sort_key + from events_activity_fields + where activity_id = :activity_id + order by sort_key + + + + + + select edaam.attribute_id, aa.attribute_name as name, + aa.sort_order as after, aa.datatype, eac.category_name, + eac.category_id + from events_def_actvty_attr_map edaam, acs_attributes aa, + events_attr_categories eac, events_attr_category_map eacm + where edaam.activity_id = :activity_id + and edaam.attribute_id = aa.attribute_id + and eacm.attribute_id = aa.attribute_id + and eacm.category_id = eac.category_id + order by eac.category_name, aa.sort_order asc + + + + + + + Index: openacs-4/contrib/packages/events/www/manage/event-add-2-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-add-2-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-add-2-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,38 @@ + + + + oracle8.1.6 + + + + + begin + :1 := ec_product.new( + creation_user => :user_id, + creation_ip => :peeraddr, + context_id => :event_id, + product_name => '$activity_info(name) $date_time', + price => :event_price, + sku => 'event_$event_id', + one_line_description => '$activity_info(name); $date_time; $venue_info(city), $venue_info(usps_abbrev)', + detailed_description => '$activity_info(description)', + search_keywords => '$activity_info(name), $venue_info(city), $venue_info(usps_abbrev), $venue_info(venue_name)', + present_p => 't', + stock_status => 'i', + email_on_purchase_list => :email, + url => '$activity_info(detail_url)', + no_shipping_avail_p => 't', + active_p => 't' + ); + end; + + + + + + + insert into ec_category_product_map values (:product_id, :category_id, null, sysdate, :user_id, :peeraddr) + + + + \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/event-add-2-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-add-2-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-add-2-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,37 @@ + + + + postgresql7.1 + + + + + select ec_product__new( + null, + :user_id, + :event_id, + '$activity_info(name) $date_time', + :event_price, + 'event_$event_id', + '$activity_info(name); $date_time; $venue_info(city), $venue_info(usps_abbrev)', + '$activity_info(description)', + '$activity_info(name), $venue_info(city), $venue_info(usps_abbrev), $venue_info(venue_name)', + 't', + 'i', + null, + to_date(current_timestamp, 'YYYY-MM-DD'), + null, + null, + :peeraddr + ) + + + + + + + insert into ec_category_product_map values (:product_id, :category_id, null, current_timestamp, :user_id, :peeraddr) + + + + Index: openacs-4/contrib/packages/events/www/manage/event-add-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-add-2.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-add-2.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,8 @@ + +@title;noquote@ +@context;noquote@ + +

    Event Details

    + + + Index: openacs-4/contrib/packages/events/www/manage/event-add-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-add-2.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-add-2.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,236 @@ +# events/www/admin/event-add-2.tcl + +ad_page_contract { + Purpose: allow an admin to insert info for a new event, once a + venue has been chosen. + + @param activity_id the activity type of the new event + @param venue_id where the new event will be located + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: event-add-2.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {activity_id:integer,notnull} + {venue_id:integer,notnull} +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] + +if { $package_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +form create event_add + +element create event_add venue_id \ + -datatype integer \ + -widget hidden \ + -value $venue_id + +element create event_add activity_id \ + -datatype integer \ + -widget hidden \ + -value $activity_id + +element create event_add venue_name \ + -label "Location" \ + -datatype text \ + -widget inform + +element create event_add event_price \ + -label "Price" \ + -datatype text \ + -widget text \ + -html {size 20} \ + -help_text "A base price, if any, for this event." \ + -optional + +set ecommerce_list [db_list_of_lists ecommerce "select category_name, category_id from ec_categories order by category_name"] +set ecommerce_list [concat $ecommerce_list { { "None" "" } }] + +element create event_add category_id \ + -label "Ecommerce Category" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options $ecommerce_list \ + -optional \ + -value "" + +element create event_add start_time \ + -label "Start" \ + -datatype date \ + -widget date \ + -format "MONTH DD YYYY HH12:MI AM" \ + -minutes_interval { 0 59 5 } \ + -help + +element create event_add end_time \ + -label "End" \ + -datatype date \ + -widget date \ + -format "MONTH DD YYYY HH12:MI AM" \ + -minutes_interval { 0 59 5 } \ + -help \ + -validate { \ + { expr {[template::util::date::compare [template::element::get_value event_add start_time] $value] < 0} } \ + {End time must be after start time} } + +element create event_add reg_deadline \ + -label "Registration Deadline" \ + -datatype date \ + -widget date \ + -format "MONTH DD YYYY HH12:MI AM" \ + -minutes_interval { 0 59 5 } \ + -help \ + -help_text "at latest the Start Time" \ + -validate { \ + { expr {[template::util::date::compare $value [template::element::get_value event_add start_time]] <= 0} } \ + {Registration Deadline must be no later than the start date} } + +element create event_add reg_cancellable_p \ + -label "Registration Cancellable?" \ + -datatype text \ + -widget select \ + -options {{Yes t} {No f}} \ + -help_text "Can someone cancel his registration?" + +element create event_add reg_needs_approval_p \ + -label "Registration Needs Approval?" \ + -datatype text \ + -widget select \ + -options {{Yes t} {No f}} \ + -help_text "Does a registration need to be approved?" + +element create event_add max_people \ + -label "Maximum Capacity" \ + -datatype text \ + -widget text \ + -html {size 20} \ + -help_text "The max number of people that can register before new registrants are automatically wait-listed. If this field is empty, wait-listing won't automatically kick in." \ + -optional + +element create event_add contact_user_id \ + -label "Event Contact Person" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::organizer::users_get_options] \ + -optional \ + -value "" \ + -search_query { + select distinct u.first_names || ' ' || u.last_name as name, u.user_id + from cc_users u + where upper(decode(u.first_names,' ', '') || decode(u.last_name,' ', '') || u.email || ' ' || decode(u.screen_name, ' ', '')) like upper('%'||:value||'%') + order by name +} + +element create event_add display_after \ + -label "Confirmation Message" \ + -datatype text \ + -widget textarea \ + -html {cols 70 rows 8 wrap soft} + +element create event_add refreshments_note \ + -label "Refreshment Notes" \ + -datatype text \ + -widget textarea \ + -html {cols 70 rows 8 wrap soft} \ + -optional + +element create event_add av_note \ + -label "Audio/Visual Notes" \ + -datatype text \ + -widget textarea \ + -html {cols 70 rows 8 wrap soft} \ + -optional + +element create event_add additional_note \ + -label "Additional Notes" \ + -datatype text \ + -widget textarea \ + -html {cols 70 rows 8 wrap soft} \ + -optional + +if {[template::form is_valid event_add]} { + template::form get_values event_add activity_id venue_id start_time end_time reg_deadline \ + reg_cancellable_p reg_needs_approval_p contact_user_id max_people display_after refreshments_note \ + av_note additional_note event_price category_id + + events::venue::get -venue_id $venue_id -array venue_info + events::activity::get -activity_id $activity_id -array activity_info + + set user_id [ad_conn user_id] + set peeraddr [ns_conn peeraddr] + + db_1row select_email {} + if { ![empty_string_p $contact_user_id] && $user_id!=$contact_user_id } { + db_1row select_contact_email {} + append email ", $contact_email" + } + + db_transaction { + + set event_id [events::event::new -activity_id $activity_id \ + -venue_id $venue_id \ + -start_time $start_time \ + -end_time $end_time \ + -display_after $display_after \ + -max_people $max_people \ + -available_p "t" \ + -deleted_p "f" \ + -reg_deadline $reg_deadline \ + -reg_cancellable_p $reg_cancellable_p \ + -reg_needs_approval_p $reg_needs_approval_p \ + -contact_user_id $contact_user_id \ + -refreshments_note $refreshments_note \ + -av_note $av_note \ + -additional_note $additional_note \ + ] + + permission::grant -object_id $event_id -privilege "admin" -party_id $user_id + if { $event_price > 0 } { + set date_time "[lindex $start_time 1]/[lindex $start_time 2]/[lindex $start_time 0]" + set end_date_time "[lindex $end_time 1]/[lindex $end_time 2]/[lindex $end_time 0]" + if { $end_date_time != $date_time } { + set date_time "$date_time-$end_date_time" + } + + set product_id [db_exec_plsql product_insert {}] + + if { ![empty_string_p $category_id] } { + db_dml mapping_insert {} + } + + db_dml contact_update {} + } + } + + ad_returnredirect "event?event_id=$event_id" +} + +events::activity::get -activity_id $activity_id -array activity_info +events::venue::get -venue_id $venue_id -array venue_info +set activity_name $activity_info(name) + +if { [form is_request event_add] } { + element set_properties event_add start_time -value [template::util::date::today] + element set_properties event_add end_time -value [template::util::date::today] + element set_properties event_add reg_deadline -value [template::util::date::today] + element set_properties event_add display_after -value "Thanks for registering for $activity_name!" + element set_properties event_add max_people -value $venue_info(max_people) +} + +if { ![form is_valid event_add] } { + element set_properties event_add venue_name -value $venue_info(venue_name) +} + +set title "Add a New Event for $activity_name" +set context [list [list "activities" Activities] [list "activity?[export_vars { activity_id }]" $activity_info(name)] "Add Event"] Index: openacs-4/contrib/packages/events/www/manage/event-add-2.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-add-2.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-add-2.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,28 @@ + + + + + + select to_char(sysdate, 'MONTH DD YYYY HH12:MI AM') from dual + + + + + + select email from parties where party_id=:user_id + + + + + + select email as contact_email from parties where party_id=:contact_user_id + + + + + + update ec_products set email_on_purchase_list=:email, url='$activity_info(detail_url)',no_shipping_avail_p='t', active_p='t' where product_id=:product_id + + + + \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/event-add.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-add.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-add.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,15 @@ + +@title;noquote@ +@context;noquote@ + + + + + + + +

    + If you do not see your venue above, you may add a new venue. +

    +
    Index: openacs-4/contrib/packages/events/www/manage/event-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-add.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-add.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,55 @@ +# events/www/admin/event-add.tcl + +ad_page_contract { + Purpose: Allow an admin to select a venue for a new event, or + add a new venue if necessary first. + + @param activity_id the activity to which we're adding an event + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: event-add.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {activity_id:integer,notnull} +} +set package_id [ad_conn package_id] +set user_id [ad_conn user_id] + +#see if user have admin permission for the package +set permission_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] +if { $permission_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +set venues [events::venue::venues_get_options] + +if {[llength $venues] == 0} { + set no_venues 1 +} else { + set no_venues 0 +} + +form create venue_select -action event-add-2 + +element create venue_select activity_id \ + -label "Activity ID" \ + -datatype text \ + -widget hidden \ + -value $activity_id + +element create venue_select venue_id \ + -label "Select a venue for your new event" \ + -datatype text \ + -widget select \ + -options $venues + +events::activity::get -activity_id $activity_id -array activity_info +set context [list [list "activities" Activities] [list "activity?[export_vars { activity_id }]" $activity_info(name)] "Add Event"] +set activity_name $activity_info(name) +set title "Add a New Event for $activity_name" +set return_url "event-add-2?activity_id=$activity_id" Index: openacs-4/contrib/packages/events/www/manage/event-add.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-add.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-add.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,11 @@ + + + + + + select venue_name, venue_id + from events_venues + + + + Index: openacs-4/contrib/packages/events/www/manage/event-edit-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-edit-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-edit-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,83 @@ + + + + oracle8.1.6 + + + + select ec_products.product_id, ec_products.price, ec_category_product_map.category_id, min(sale_price) as sale_price from acs_objects, ec_products, ec_category_product_map, ec_sale_prices_current where acs_objects.context_id=:event_id and acs_objects.object_id=ec_products.product_id and ec_category_product_map.product_id(+)=ec_products.product_id and ec_sale_prices_current.product_id(+)=ec_products.product_id group by ec_products.product_id, ec_products.price, ec_category_product_map.category_id + + + + + + select ec_products.product_id from acs_objects, ec_products, ec_category_product_map where acs_objects.context_id=:event_id and acs_objects.object_id=ec_products.product_id and ec_category_product_map.product_id(+)=ec_products.product_id + + + + + + update ec_products + set product_name='$activity_info(name) $date_time', + sku='event_$event_id', + one_line_description='$activity_info(name); $date_time; $pretty_location', + detailed_description='$activity_info(description)', + email_on_purchase_list=:email, + search_keywords='$activity_info(name), $venue_info(venue_name), $pretty_location', + url='$activity_info(detail_url)', + price=:event_price, + no_shipping_avail_p='t', + present_p='$event_info(available_p)', + available_date=sysdate, + $audit_update + where product_id=:product_id + + + + + + last_modified=sysdate, last_modifying_user=:user_id, modified_ip_address=:peeraddr + + + + + + insert into ec_category_product_map values (:product_id, :category_id, null, sysdate, :user_id, :peeraddr) + + + + + + + begin + :1 := ec_product.new( + creation_user => :user_id, + creation_ip => :peeraddr, + context_id => :event_id, + product_name => '$activity_info(name) $date_time', + price => :event_price, + sku => 'event_$event_id', + one_line_description => '$activity_info(name); $date_time; $pretty_location', + detailed_description => '$activity_info(description)', + search_keywords => '$activity_info(name), $venue_info(venue_name), $pretty_location', + present_p => 't', + stock_status => 'i', + email_on_purchase_list => :email, + url => '$activity_info(detail_url)', + no_shipping_avail_p => 't', + active_p => 't' + ); + end; + + + + + + + begin + ec_product.delete(:product_id); + end; + + + + Index: openacs-4/contrib/packages/events/www/manage/event-edit-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-edit-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-edit-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,81 @@ + + + + postgresql7.1 + + + + select ec_products.product_id, ec_products.price, ec_category_product_map.category_id, min(sale_price) as sale_price from acs_objects, ec_products left join ec_category_product_map on ec_category_product_map.product_id=ec_products.product_id left join ec_sale_prices_current on ec_sale_prices_current.product_id=ec_products.product_id where acs_objects.context_id=:event_id and acs_objects.object_id=ec_products.product_id group by ec_products.product_id, ec_products.price, ec_category_product_map.category_id + + + + + + select ec_products.product_id from acs_objects, ec_products left join ec_category_product_map on ec_category_product_map.product_id=ec_products.product_id where acs_objects.context_id=:event_id and acs_objects.object_id=ec_products.product_id + + + + + + update ec_products + set product_name='$activity_info(name) $date_time', + sku='event_$event_id', + one_line_description='$activity_info(name); $date_time; $pretty_location', + detailed_description='$activity_info(description)', + email_on_purchase_list=:email, + search_keywords='$activity_info(name), $venue_info(venue_name), $pretty_location', + url='$activity_info(detail_url)', + price=:event_price, + no_shipping_avail_p='t', + present_p='$event_info(available_p)', + available_date=now(), + $audit_update + where product_id=:product_id + + + + + + + last_modified=current_timestamp, last_modifying_user=:user_id, modified_ip_address=:peeraddr + + + + + + insert into ec_category_product_map values (:product_id, :category_id, null, current_timestamp, :user_id, :peeraddr) + + + + + + + select ec_product__new( + null, + :user_id, + :event_id, + '$activity_info(name) $date_time', + :event_price, + 'event_$event_id', + '$activity_info(name); $date_time; $pretty_location', + '$activity_info(description)', + '$activity_info(name), $venue_info(venue_name), $pretty_location', + 't', + 'i', + null, + to_date(current_timestamp, 'YYYY-MM-DD'), + null, + null, + :peeraddr + ) + + + + + + + select ec_product__delete(:product_id) + + + + Index: openacs-4/contrib/packages/events/www/manage/event-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-edit.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-edit.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,5 @@ + +@title;noquote@ +@context_bar;noquote@ + + Index: openacs-4/contrib/packages/events/www/manage/event-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-edit.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-edit.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,314 @@ +# events/www/admin/event-edit.tcl + +ad_page_contract { + Allows admins to edit an event's properties. + Provides a form with existing data filled in. + + @param event_id the event to edit + @param venue_id the event's new venue (if changing the venue) + @param user_id_from_search optional new contact person's user_id + @param email_from_search optional new contact person's email + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: event-edit.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {event_id:integer,notnull} + {venue_id:integer,optional} +} -validate { + event_exists_p -requires {event_id} { + if { ![events::event::exists_p -event_id $event_id] } { + ad_complain "We couldn't find the event you asked for." + return 0 + } + return 1 + } +} + + +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set event_admin [permission::permission_p -object_id $event_id -party_id $user_id -privilege "admin"] + +if { $package_admin != 1 && $event_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +events::event::get -event_id $event_id -array event_info +events::event::get_stats -event_id $event_id -array stat_info + +set admin_text "" +if { ![db_0or1row select_ecommerce_info {}] } { + set category_id "" + set price "" +} else { + if { ![empty_string_p $sale_price] && $sale_price < $price } { + set price $sale_price + } + # If admin +} + +form create event_edit + +element create event_edit event_id \ + -datatype integer \ + -widget hidden + +element create event_edit action \ + -label "Action" \ + -datatype text \ + -widget inform + +element create event_edit venue_id \ + -label "Venue" \ + -datatype integer \ + -widget select \ + -options [events::venue::venues_get_options] + +set venues_connecting [events::venue::venues_get_connecting_options -this_venue_id $event_info(venue_id) -none_p "f"] +if { ![empty_string_p $venues_connecting] } { + element create event_edit event_connecting \ + -label "Use Connecting" \ + -datatype text \ + -widget checkbox \ + -help_text "Use the following connecting venues" \ + -options $venues_connecting \ + -optional +} else { + element create event_edit event_connecting \ + -optional \ + -widget hidden +} + +element create event_edit event_price \ + -label "Price" \ + -datatype text \ + -widget text \ + -html {size 20} \ + -help_text "A base price, if any, for this event.$admin_text" \ + -optional + +set ecommerce_list [db_list_of_lists ecommerce "select category_name, category_id from ec_categories order by category_name"] +set ecommerce_list [concat $ecommerce_list { { "None" "" } }] + +element create event_edit category_id \ + -label "Ecommerce Category" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options $ecommerce_list \ + -optional + +element create event_edit max_people \ + -label "Maximum Capacity" \ + -datatype text \ + -widget text \ + -html {size 20} \ + -optional + +element create event_edit reg_cancellable_p \ + -label "Registration Cancellable?" \ + -datatype text \ + -widget select \ + -options {{Yes t} {No f}} \ + -help_text "Can someone cancel his registration?" + +element create event_edit reg_needs_approval_p \ + -label "Registration Needs Approval?" \ + -datatype text \ + -widget select \ + -options {{Yes t} {No f}} \ + -help_text "Does a registration need to be approved?" + +element create event_edit contact_user_id \ + -label "Event Contact Person" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::organizer::users_get_options] \ + -optional \ + -search_query { + select distinct u.first_names || ' ' || u.last_name as name, u.user_id + from cc_users u + where upper(decode(u.first_names,' ', '') || decode(u.last_name,' ', '') || u.email || ' ' || decode(u.screen_name, ' ', '')) like upper('%'||:value||'%') + order by name +} + +element create event_edit display_after \ + -label "Confirmation Message" \ + -datatype text \ + -widget textarea \ + -html {cols 70 rows 8 wrap soft} + +element create event_edit start_time \ + -label "Start" \ + -datatype date \ + -widget date \ + -format "MONTH DD YYYY HH12:MI AM" \ + -help + +element create event_edit end_time \ + -label "End" \ + -datatype date \ + -widget date \ + -format "MONTH DD YYYY HH12:MI AM" \ + -help \ + -validate { \ + { expr {[template::util::date::compare [template::element::get_value event_edit start_time] $value] < 0} } \ + {End time must be after start time} } + +element create event_edit reg_deadline \ + -label "Registration Deadline" \ + -datatype date \ + -widget date \ + -format "MONTH DD YYYY HH12:MI AM" \ + -help \ + -help_text "at latest the Start Time" \ + -validate { \ + { expr {[template::util::date::compare $value [template::element::get_value event_edit start_time]] <= 0} } \ + {Registration Deadline must be no later than the start date} } + +events::activity::get -activity_id $event_info(activity_id) -array activity_info + +if {[template::form is_valid event_edit]} { + template::form get_values event_edit event_id venue_id max_people \ + reg_cancellable_p reg_needs_approval_p contact_user_id \ + display_after start_time end_time reg_deadline event_price category_id + + set event_connecting [template::element get_values event_edit event_connecting] + + events::venue::get -venue_id $venue_id -array venue_info + + set peeraddr [ns_conn peeraddr] + + db_1row select_email {} + if { ![empty_string_p $contact_user_id] && $user_id!=$contact_user_id } { + db_1row select_contact_email {} + append email ", $contact_email" + } + + set pretty_location "" + if { ![empty_string_p $event_info(city)] } { + append pretty_location "$event_info(city)" + } + if { ![empty_string_p $event_info(usps_abbrev)] } { + if { ![empty_string_p $event_info(city)] } { + append pretty_location ", " + } + append pretty_location "$event_info(usps_abbrev)" + } + + db_transaction { + + if { ![db_0or1row select_product_id {}] } { + set product_id "" + } + + db_dml mapping_remove {} + + # Update connecting venues + db_dml delete_connecting {} + for { set i 0 } { $i < [llength $event_connecting] } { incr i } { + set connecting_venue_id [lindex $event_connecting $i] + if { ![empty_string_p $connecting_venue_id] && [db_0or1row valid_venue {}] } { + db_dml insert_connecting {} + } + } + + set venue [events::venue::connected -event_id $event_id -venue_id $venue_id -sql_p "f"] + for { set i 0 } { $i < [llength $venue] } { incr i } { + append venue_info(venue_name) ", [lindex $venue $i]" + } + + if { $event_price > 0 } { + set date_time "[lindex $start_time 1]/[lindex $start_time 2]/[lindex $start_time 0]" + set end_date_time "[lindex $end_time 1]/[lindex $end_time 2]/[lindex $end_time 0]" + if { $end_date_time != $date_time } { + set date_time "$date_time-$end_date_time" + } + + if { ![empty_string_p $product_id] } { + + set audit_update [db_map audit_update_sql] + + db_dml product_update {} + + } else { + set product_id [db_exec_plsql product_insert {}] + + db_dml contact_update {} + } + + if { ![empty_string_p $category_id] } { + # insert category map + db_dml mapping_insert {} + } + } else { + # Remove this event from ecommerce + db_exec_plsql product_delete {} + } + + if { ![empty_string_p $max_people] && (([expr [expr $stat_info(approved) + $stat_info(pending)] + $stat_info(waiting)] > $max_people) || [events::venue::connecting_max -event_id $event_id -venue_id $venue_id]<$max_people) } { + ad_return_complaint 1 "You cannot have more registrants than your Venue Capacity." + ad_script_abort + } + + # We've made it this far. Do the update. + events::event::edit \ + -event_id $event_id \ + -venue_id $venue_id \ + -max_people $max_people \ + -reg_cancellable_p $reg_cancellable_p \ + -reg_needs_approval_p $reg_needs_approval_p \ + -contact_user_id $contact_user_id \ + -display_after $display_after \ + -start_time $start_time \ + -end_time $end_time \ + -reg_deadline $reg_deadline + + } + + ad_returnredirect "event?event_id=$event_id" + ad_script_abort +} + +# Slug form with any/all connected venues to this event ... +set connected_venue_list "" +for { set i 0 } { $i < [llength $venues_connecting] } { incr i } { + set venue_id [lindex [lindex $venues_connecting $i] 1] + if { [db_0or1row select_connecting {}] } { + lappend connected_venue_list $venue_id + } +} +element set_properties event_edit event_connecting -values $connected_venue_list + +element set_properties event_edit action -value "Edit $event_info(name) on $event_info(timespan)" +element set_properties event_edit event_id -value $event_id + +if { [form is_request event_edit] } { + element set_properties event_edit venue_id -value $event_info(venue_id) + element set_properties event_edit event_price -value $price + element set_properties event_edit category_id -value $category_id + element set_properties event_edit max_people -value $event_info(max_people) + element set_properties event_edit reg_cancellable_p -value $event_info(reg_cancellable_p) + element set_properties event_edit reg_needs_approval_p -value $event_info(reg_needs_approval_p) + element set_properties event_edit contact_user_id -value $event_info(contact_user_id) + element set_properties event_edit display_after -value $event_info(display_after) + element set_properties event_edit start_time -value [events::event::make_event_date \ + -which_type start_time -timespan_id $event_info(timespan_id)] + element set_properties event_edit end_time -value [events::event::make_event_date \ + -which_type end_time -timespan_id $event_info(timespan_id)] + element set_properties event_edit reg_deadline -value [events::event::make_event_date \ + -which_type reg_deadline -event_id $event_id] +} + +set context_bar [ad_context_bar [list "activities" Activities] [list "activity?activity_id=$event_info(activity_id)" $activity_info(name)] [list "event?event_id=$event_id" $event_info(city)] "Edit"] +set return_url "event-edit.tcl?event_id=$event_id" +set title "Edit Event" + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/event-edit.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-edit.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-edit.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,60 @@ + + + + + + select 1 + from events_events + where event_id = :event_id + + + + + + select email from parties where party_id=:user_id + + + + + + select email as contact_email from parties where party_id=:contact_user_id + + + + + + update ec_products set email_on_purchase_list=:email, url='$activity_info(detail_url)',no_shipping_avail_p='t', active_p='t' where product_id=:product_id + + + + + + delete from ec_category_product_map where product_id=:product_id + + + + + + delete from events_venues_conn_used_map where event_id=:event_id and package_id=[ad_conn package_id] + + + + + + insert into events_venues_conn_used_map values (:event_id, :venue_id, [lindex $event_connecting $i], [ad_conn package_id]) + + + + + + select connected_venue_id from events_venues_conn_used_map where event_id=:event_id and venue_id=$event_info(venue_id) and package_id=[ad_conn package_id] and connected_venue_id=:venue_id + + + + + + select venue_id from events_venues where venue_id=:venue_id and $connecting_venue_id in ([events::venue::connecting -venue_id $venue_id -package_id [ad_conn package_id] -sql_p "t"]) + + + + Index: openacs-4/contrib/packages/events/www/manage/event-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,18 @@ + + + + + + select eo.role, eo.user_id, eo.role_id, eo.event_id, + decode(eo.public_role_p, 't', '(public role)', '') as public_role_p, + p.first_names || ' ' || p.last_name as organizer_name + from events_organizers eo, users u, persons p + where eo.user_id = u.user_id(+) + and p.person_id(+) = u.user_id + and eo.event_id = :event_id + order by role + + + + + Index: openacs-4/contrib/packages/events/www/manage/event-orders-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-orders-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-orders-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,28 @@ + + + + + + select er.reg_id, person.name(er.user_id) as name, er.user_id, + pa.email, er.reg_state, ao.creation_date + from events_registrations er, parties pa, acs_objects ao + where er.user_id = pa.party_id + and er.event_id = :event_id + and reg_state <> 'canceled' + and er.reg_id = ao.object_id + + + + + + select er.reg_id, person.name(er.user_id) as name, er.user_id, + pa.email, er.reg_state, ao.creation_date + from events_registrations er, parties pa, acs_objects ao + where er.user_id = pa.party_id + and er.event_id = :event_id + and reg_state = :specific_reg_type + and er.reg_id = ao.object_id + + + + Index: openacs-4/contrib/packages/events/www/manage/event-orders-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-orders-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-orders-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,28 @@ + + + + + + select er.reg_id, person__name(er.user_id) as name, er.user_id, + pa.email, er.reg_state, ao.creation_date + from events_registrations er, parties pa, acs_objects ao + where er.user_id = pa.party_id + and er.event_id = :event_id + and reg_state <> 'canceled' + and er.reg_id = ao.object_id + + + + + + select er.reg_id, person__name(er.user_id) as name, er.user_id, + pa.email, er.reg_state, ao.creation_date + from events_registrations er, parties pa, acs_objects ao + where er.user_id = pa.party_id + and er.event_id = :event_id + and reg_state = :specific_reg_type + and er.reg_id = ao.object_id + + + + Index: openacs-4/contrib/packages/events/www/manage/event-orders.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-orders.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-orders.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,108 @@ + +@title;noquote@ +@context;noquote@ + + + + + + + + + + + + + + + + + + + + + +
    Activity@event_info.name@
    Location@event_info.city@
    Time@event_info.timespan@
    Registration Deadline@event_info.reg_deadline@
    + + + + + + + + + + + + + + + + +
    Max AllowedSpots RemainingApprovedPendingWaitingCanceled
    N/A@event_stats.max_people@N/A@count_spotsremaining@ + @event_stats.approved@@event_stats.pending@@event_stats.waiting@@event_stats.canceled@
    + +

    + The maximum number of people allowed have been registered for this event.
    + You cannot approve users unless you waitlist or cancel somebody
    + else's registration (or modify the maximum capacity of this this event)
    + + +

    + + + + +
      +
    • No registrants fit this category +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    Reg. IDNameEmailReg. DateReg. State
    @event_members.reg_id@@event_members.name@@event_members.email@@event_members.creation_date@ + + @event_members.reg_state@ + waitlist + - cancel + + + @event_members.reg_state@ +approve - + cancel + + + @event_members.reg_state@ +approve - + waitlist + - cancel + + + @event_members.reg_state@ +approve - + waitlist + + +
    +
    + +
    Index: openacs-4/contrib/packages/events/www/manage/event-orders.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-orders.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-orders.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,61 @@ +# events/www/admin/order-history-one.tcl + +ad_page_contract { + + displays the order history of an event + + @param event_id + @author Matthew Geddert (geddert@yahoo.com) + +} { + {specific_reg_type ""} + {event_id:integer} +} -properties { + event_members:multirow +} -validate { + event_exists_p -requires {event_id} { + if { ![events::event::exists_p -event_id $event_id] } { + ad_complain "We couldn't find the event you asked for." + return 0 + } + return 1 + } +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + +# what reg state do we plug into the database? +set date_format [parameter::get -parameter date_format -default "MM/DD/YYYY"] +set time_format [parameter::get -parameter time_format -default "HH12:MIam"] + +if {[string equal $specific_reg_type "canceled"] || + [string equal $specific_reg_type "approved"] || + [string equal $specific_reg_type "waiting"] || + [string equal $specific_reg_type "pending"]} { +db_multirow event_members select_specific_reg_type {} +} else { +db_multirow event_members select_event_members {} +} + +events::event::get_stats -event_id $event_id -array event_stats +events::event::get -event_id $event_id -array event_info +set title "Order History for $event_info(name)" +set context [list [list "activities" Activities] [list "activity?activity_id=$event_info(activity_id)" $event_info(name)] [list "event?event_id=$event_id" "$event_info(city)"] "Orders"] +set count_spotsremaining [expr $event_stats(max_people) - $event_stats(approved)] + +if { ![empty_string_p $event_stats(max_people)] && $count_spotsremaining == 0 } { + set max_approved t +} else { + set max_approved f +} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/event-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,20 @@ + + + + + + select eo.role, eo.user_id, eo.role_id, eo.event_id, + CASE WHEN eo.public_role_p THEN '(public role)' + ELSE '' + END as public_role_p, + p.first_names || ' ' || p.last_name as organizer_name + from + events_organizers eo left join users u on (eo.user_id = u.user_id), + persons p + where eo.event_id = :event_id + and p.person_id = u.user_id + order by role + + + + Index: openacs-4/contrib/packages/events/www/manage/event-price-ae-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-price-ae-2.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-price-ae-2.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,129 @@ +# File: events/admin/event-price-ae-2.tcl +# Owner: bryanche@arsdigita.com +# Purpose: Verify and insert price/ecommerce data +##### +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + +### we're not supporting prices yet. +return + +### if we were... +set_the_usual_form_variables +#event_id, +#maybe product_id, product_name, price, available_date, expire_date, price_id + +set user_id [ad_maybe_redirect_for_registration] + + + +set exception_count 0 +set exception_text "" + +### Error checking. +## simple checks... +if { [ns_dbformvalue [ns_conn form] available_time datetime available_time_value] <= 0 } { + incr exception_count + append exception_text "
  • Strange... couldn't parse the available time.\n" +} + +if { [ns_dbformvalue [ns_conn form] expire_time datetime expire_time_value] <= 0 } { + incr exception_count + append exception_text "
  • Strange... couldn't parse the expiration +time.\n" +} + +if {![exists_and_not_null product_name]} { + incr exception_count + append exception_text "
  • Please enter a price description.\n" +} + +if {![exists_and_not_null price]} { + incr excpetion_count + append exception_text "
  • Please enter a price.\n" +} + +if {![valid_number_p $price]} { + incr exception_count + append exception_text "
  • Please enter a valid number for the price.\n" +} + +## date check +set selection [ns_db 0or1row $db "select 1 + from dual, events_events + where to_date('$available_time_value', 'YYYY-MM-DD HH24:MI:SS') + < to_date('$expire_time_value', 'YYYY-MM-DD HH24:MI:SS') + and to_date('$expire_time_value', 'YYYY-MM-DD HH24:MI:SS') + <= end_time + and event_id = $event_id"] + +if {[empty_string_p $selection]} { + incr exception_count + append exception_text "
  • + Please make sure your avaiable time is before your + expiration time and your expiration time no later than + your event's end time.\n" +} + +## return with errors if any +if { $exception_count > 0 } { + ad_return_complaint $exception_count $exception_text + return +} + +## even if we were supporting prices, no ecommerce yet +#db_transaction { + +#db_dml unused "update ec_products +# set product_name = '$QQproduct_name', +# price = $price, +# last_modified = sysdate, +# last_modifying_user = $user_id, +# modified_ip_address = '[DoubleApos [ns_conn peeraddr]]', +# available_date = to_date('$available_time_value', 'YYYY-MM-DD HH24:MI:SS') +#where product_id = $product_id" + +db_dml unused "update events_prices + set expire_date = to_date('$expire_time_value', 'YYYY-MM-DD HH24:MI:SS'), + available_date = to_date('$available_time_value', 'YYYY-MM-DD HH24:MI:SS'), + description='$QQproduct_name', + price = $price + where price_id = $price_id" + +if {[db_resultrows] == 0} { + +## again, no ecommerce yet +# db_dml unused "insert into ec_products +# (product_id, product_name, creation_date, price, available_date, +# last_modified, last_modifying_user, modified_ip_address) +# values +# ($product_id, '$QQproduct_name', sysdate, $price, +# to_date('$available_time_value', 'YYYY-MM-DD HH24:MI:SS'), +# sysdate, $user_id, '[DoubleApos [ns_conn peeraddr]]')" + + db_dml unused "insert into events_prices + (price_id, event_id, description, expire_date, + available_date, price) + values + ($price_id, $event_id, '$QQproduct_name', + to_date('$expire_time_value', 'YYYY-MM-DD HH24:MI:SS'), + to_date('$available_time_value', 'YYYY-MM-DD HH24:MI:SS'), + $price)" +} + +### clean up, redirect. + +#} +db_release_unused_handles +ad_returnredirect "event.tcl?[export_url_vars event_id]" + +##### EOF Index: openacs-4/contrib/packages/events/www/manage/event-price-ae.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-price-ae.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-price-ae.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,113 @@ +# File: events/admin/event-price-ae.tcl +# Owner: bryanche@arsdigita.com +# Purpose: Allow admins to edit and update prices/ecommerce info +##### +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + +### we're not supporting prices at this time +return + +### but if we were... + +set_the_usual_form_variables +#event_id, maybe price_id + + + +set time_elements " + + Date available: + [_ns_dateentrywidget available_time] [_ns_timeentrywidget available_time] + + Date expires: + [_ns_dateentrywidget expire_time] [_ns_timeentrywidget expire_time] +" + +if {[exists_and_not_null price_id]} { + #we're editing + set adding_p 0 + + set page_title "Edit Price" + set submit_text "Update Price" + set selection [ns_db 1row $db "select + product_id, price, description as product_name, + to_char(available_date, 'YYYY-MM-DD HH24:MI:SS') as available_timestamp, + to_char(expire_date, 'YYYY-MM-DD HH24:MI:SS') as expire_timestamp, + price_id + from events_prices + where price_id = $price_id"] + + set_variables_after_query + + set end_time [db_string unused " + select to_char(end_time, 'YYYY-MM-DD HH24:MI:SS') + from events_events + where event_id = $event_id"] + +} else { + #we're adding + set adding_p 1 + + set page_title "Add New Price" + set submit_text "Add Price" +# set product_id [db_string unused "select ec_product_id_sequence.nextval from dual"] + set product_name "" + set price "" + set price_id [db_string unused "select events_price_id_sequence.nextval from dual"] + + set selection [ns_db 1row $db "select + to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') as available_timestamp, + to_char(end_time, 'YYYY-MM-DD HH24:MI:SS') as expire_timestamp + from events_events, dual + where event_id = $event_id"] + + set_variables_after_query + + set end_time $expire_timestamp +} + +set stuffed_with_a [ns_dbformvalueput $time_elements "available_time" + "timestamp" $available_timestamp] +set times [ns_dbformvalueput $stuffed_with_a "expire_time" + "timestamp" $expire_timestamp] + +set context_bar "[ad_admin_context_bar [list "index.tcl" "Events"] "Pricing"]" + +## Clean up, return the page +db_release_unused_handles + +ReturnHeaders + +ns_write " +[ad_partner_header] +
    +[export_form_vars price_id product_id event_id] + + + + +
    Price Description: + +
    Price: + +$times +(Expiration date can be no later than $end_time) +
    +

    +

    + +
    +
    +[ad_partner_footer]" + +##### EOF Index: openacs-4/contrib/packages/events/www/manage/event-toggle-available-p-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-toggle-available-p-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-toggle-available-p-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,15 @@ + + + + oracle8.1.6 + + + + update ec_products + set active_p = '$event_info(available_p)', last_modified = sysdate, last_modifying_user = :user_id, + modified_ip_address = :peeraddr + where product_id = :product_id + + + + \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/event-toggle-available-p-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-toggle-available-p-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-toggle-available-p-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,17 @@ + + + + postgresql7.1 + + + + update ec_products + set active_p = '$event_info(available_p)', + last_modified = current_timestamp, + last_modifying_user = :user_id, + modified_ip_address = :peeraddr + where product_id = :product_id + + + + \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/event-toggle-available-p.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-toggle-available-p.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-toggle-available-p.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,48 @@ +# events/www/admin/event-toggle-available-p.tcl + +ad_page_contract { + Toggles the availability of an event. + + @param event_id the event whose availability we're toggling + + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: event-toggle-available-p.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {event_id:integer,notnull} +} -validate { + event_exists_p -requires {event_id} { + if { ![events::event::exists_p -event_id $event_id] } { + ad_complain "We couldn't find the event you asked for." + return 0 + } + return 1 + } +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] +set event_admin [permission::permission_p -object_id $event_id -party_id $user_id -privilege "admin"] + +if { $package_admin != 1 && $permission_create != 1 && $event_admin != 1} { + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + +db_transaction { + + events::event::toggle_available_p -event_id $event_id + + events::event::get -event_id $event_id -array event_info + + if { [db_0or1row select_ecommerce_info {}] } { + set user_id [ad_get_user_id] + set peeraddr [ns_conn peeraddr] + + db_dml toggle_active_p_update {} + } + +} + +ad_returnredirect "event?event_id=$event_id" \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/event-toggle-available-p.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event-toggle-available-p.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event-toggle-available-p.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,10 @@ + + + + + + select ec_products.product_id from acs_objects, ec_products where acs_objects.context_id=:event_id and acs_objects.object_id=ec_products.product_id + + + + \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/event.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,166 @@ + +@title;noquote@ +@context;noquote@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Creator@creator_name@
    Location@pretty_location@
    Confirmation Message@event_info.display_after@
    Time@event_info.timespan@
    Registration Deadline@event_info.reg_deadline@
    Event Statistics + + + + + + + + + + + + + + + + + + + + + + + +
    Max AllowedSpots RemainingApprovedPendingWaitingCanceled
    N/A@event_stats.max_people@N/A@count_spotsremaining@@event_stats.approved@@event_stats.pending@@event_stats.waiting@@event_stats.canceled@
    + + + + +
    Registration Cancellable?@event_info.pretty_reg_cancellable_p@
    Registration Needs Approval?@event_info.pretty_reg_needs_approval_p@
    Event Contact Person@event_info.contact_email@
    Availability StatusCurrent + +   (toggle) + + + + Discontinued + +   (toggle) + + +   +
    You may want to + email the registrants for this event + to notify them the event is canceled. +
    + + +
    + + + + +

    Organizers

    + + + + + +

    Agenda Files

    + + +
    + +

    Event Notes

    + + \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/event.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,134 @@ +# events/www/admin/event.tcl + +ad_page_contract { + Purpose: List one event with details, for administration. + (that is, with links for altering and updating the event info) + + @param event_id the event at which we're looking + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: event.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {event_id:integer,notnull} +} -properties { + custom_fields:multirow + org_roles:multirow + event_organizers:onevalue +} -validate { + event_exists_p -requires {event_id} { + if { ![events::event::exists_p -event_id $event_id] } { + ad_complain "We couldn't find the event you asked for." + return 0 + } + return 1 + } +} + + +events::event::get -event_id $event_id -array event_info +events::event::get_stats -event_id $event_id -array event_stats +set count_spotsremaining [expr $event_stats(max_people) - $event_stats(approved)] + +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] +set event_admin [permission::permission_p -object_id $event_id -party_id $user_id -privilege "admin"] + +if { $package_admin != 1 && $permission_create != 1 && $event_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + +set admin_permission [permission::permission_p -object_id $event_id -party_id $user_id -privilege "admin"] +set pretty_location "" +if { [empty_string_p $event_info(city)] } { + append pretty_location "$event_info(name)" +} else { + append pretty_location "$event_info(city)" +} +if { ![empty_string_p $event_info(usps_abbrev)] } { + if { ![empty_string_p $event_info(city)] } { + append pretty_location ", " + } else { + append pretty_location " - " + } + append pretty_location "$event_info(usps_abbrev)" +} +set title "$pretty_location: $event_info(timespan)" +set context [list [list "../event-info?event_id=$event_id" $event_info(name)] $pretty_location] + +set attachments_enabled_p [events::event::attachments_enabled_p] +if {$attachments_enabled_p} { + set attachments [attachments::get_attachments -base_url "../" -object_id $event_id] + set attachment_link "../attach/attach?object_id=$event_id&return_url=../admin/event?event_id=$event_id&pretty_name=$event_info(name)" +} + +set cancelled_p 0 +if {[string compare $event_info(available_p) "f"] == 0 && $event_stats(total_interested) > 0} { + set cancelled_p 1 +} + +#db_multirow custom_fields select_custom_fields {} +db_multirow org_roles select_org_roles {} +set event_organizers [db_string select_event_organizers_count {}] +#db_multirow eoe select_event_organizers_email {} + +events::event::get_creator -event_id $event_id -array creator_info +set creator_name $creator_info(name) +set creator_email $creator_info(email) + +form create event_notes + +element create event_notes event_id \ + -datatype integer \ + -widget hidden + +element create event_notes refreshments_note \ + -label "Refreshments Note" \ + -datatype text \ + -widget textarea \ + -html {cols 65 rows 16 wrap soft} \ + -optional + +element create event_notes av_note \ + -label "Audio/Visual Note" \ + -datatype text \ + -widget textarea \ + -html {cols 65 rows 16 wrap soft} \ + -optional + +element create event_notes additional_note\ + -label "Additional Note" \ + -datatype text \ + -widget textarea \ + -html {cols 65 rows 16 wrap soft} \ + -optional + +element create event_notes submit \ + -label "Update" \ + -datatype text \ + -widget submit + +if {[form is_submission event_notes]} { + template::form get_values event_notes \ + event_id refreshments_note av_note additional_note + + events::event::edit_event_notes \ + -event_id $event_id \ + -refreshments_note $refreshments_note \ + -av_note $av_note \ + -additional_note $additional_note + + ad_returnredirect "event?event_id=$event_id" +} + +element set_properties event_notes event_id -value $event_id +element set_properties event_notes refreshments_note -value $event_info(refreshments_note) +element set_properties event_notes av_note -value $event_info(av_note) +element set_properties event_notes additional_note -value $event_info(additional_note) + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/event.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/event.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/event.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,49 @@ + + + + + + select count(*) + from events_organizers + where event_id = :event_id + and user_id is not null + + + + + + select distinct users.priv_email, users.user_id + from users, events_organizers eo, events_org_role_event_map eorem + where eorem.event_id = :event_id + and eorem.role_id = eo.role_id + and users.user_id = eo.user_id + order by users.user_id + + + + + + select eaam.attribute_id, aa.attribute_name as name, + aa.sort_order as after, aa.datatype, + eac.category_name, eac.category_id + from events_event_attr_map eaam, acs_attributes aa, + events_attr_categories eac, events_attr_category_map eacm + where eaam.event_id = :event_id + and eaam.attribute_id = aa.attribute_id + and eacm.attribute_id = aa.attribute_id + and eacm.category_id = eac.category_id + order by eac.category_name, aa.sort_order asc + + + + + + select column_name, pretty_name, column_type, column_actual_type, + column_extra, sort_key + from events_event_fields + where event_id = :event_id + order by sort_key + + + + Index: openacs-4/contrib/packages/events/www/manage/index-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/index-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/index-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,31 @@ + + + + + + select CASE WHEN to_char(t.start_date, 'YYYY-MM-DD') = to_char(t.end_date, 'YYYY-MM-DD') + THEN to_char(t.start_date, :date_format) || ' (' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :time_format) || ')' + ELSE to_char(t.start_date, :date_format) || ' ' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :date_format) || ' ' || to_char(t.end_date, :time_format) + END as timespan, + nvl(e.name, a.name) as name, + e.event_id, + v.city + from acs_activities a, + acs_events e, + events_activities ea, + events_events ee, + timespans s, + time_intervals t, + events_venues v + where e.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and e.activity_id = a.activity_id + and a.activity_id = ea.activity_id + and e.event_id = ee.event_id + and v.venue_id = ee.venue_id + and ee.available_p = 't' + and ea.package_id = :package_id + + + + Index: openacs-4/contrib/packages/events/www/manage/index-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/index-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/index-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,31 @@ + + + + + + select CASE WHEN to_char(t.start_date, 'YYYY-MM-DD') = to_char(t.end_date, 'YYYY-MM-DD') + THEN to_char(t.start_date, :date_format) || ' (' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :time_format) || ')' + ELSE to_char(t.start_date, :date_format) || ' ' || to_char(t.start_date, :time_format) || ' - ' || to_char(t.end_date, :date_format) || ' ' || to_char(t.end_date, :time_format) + END as timespan, + coalesce(e.name, a.name) as name, + e.event_id, + v.city + from acs_activities a, + acs_events e, + events_activities ea, + events_events ee, + timespans s, + time_intervals t, + events_venues v + where e.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and e.activity_id = a.activity_id + and a.activity_id = ea.activity_id + and e.event_id = ee.event_id + and v.venue_id = ee.venue_id + and ee.available_p = 't' + and ea.package_id = :package_id + + + + Index: openacs-4/contrib/packages/events/www/manage/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/index.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/index.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,42 @@ + +Events +@context_bar;noquote@ + + +

    +(Note: To add/edit an event, you must first go to the +activities page to select the type of +activity for your event. Then, you may add/edit an event +based upon that activity.) + + +

    Current Events Registration Status

    + + +
      +
    • There are no current events to display +
    +
    + + + + + + + + + + + + +
    ActivityLocationDatePermissions
    + @available_events_and_locations.name@@available_events_and_locations.city@@available_events_and_locations.timespan@Permissions
    +
    + +

    + Index: openacs-4/contrib/packages/events/www/manage/index.adp.~1.3.~ =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/Attic/index.adp.~1.3.~,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/index.adp.~1.3.~ 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,42 @@ + +Events Administration +@context_bar;noquote@ + + +

    +(Note: To add/edit an event, you must first go to the +activities page to select the type of +activity for your event. Then, you may add/edit an event +based upon that activity.) + + +

    Current Events Registration Status

    + + +
      +
    • There are no current events to display +
    +
    + + + + + + + + + + + +
    ActivityLocationDate
    + @available_events_and_locations.name@@available_events_and_locations.city@@available_events_and_locations.timespan@
    +
    + +

    Index: openacs-4/contrib/packages/events/www/manage/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/index.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/index.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,44 @@ +# /events/www/admin/index.tcl + +ad_page_contract { + + Displays all upcoming events and the breakdown of registrations + for them. Offers various admin options, such as looking at + registration stats or available venues/activities. New event + creation, and checking out/editing events not currently available to + the public, must be done through subsidiary pages. + @param orderby for ad_table + + This is the index page for events administration. + + @author Matthew Geddert (geddert@yahoo.com) + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs-id $Id index.tcl,v 3.19.2.5 2000/09/22 01:37:37 kevin Exp $ +} { +} -properties { + available_events_and_locations:multirow + context_bar:onevalue +} + +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +#see if user have admin permission for the package +set permission_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] +if { $permission_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + +set context_bar [ad_context_bar] + +set date_format [parameter::get -parameter date_format -default "MM/DD/YYYY"] +set time_format [parameter::get -parameter time_format -default "HH12:MIam"] + +db_multirow available_events_and_locations select_available_events_and_locations {} + +set parameters_edit_url "/admin/site-map/parameter-set?[export_vars { { package_id {[ad_conn package_id]} } }]" + Index: openacs-4/contrib/packages/events/www/manage/one-role.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/one-role.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/one-role.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,49 @@ + +@role_info.role;noquote@ +@context_bar;noquote@ + +

    Event associations

    + +
      + + +
    • @erm.name@ (@erm.pretty_start_date@ - @erm.pretty_end_date@)
    • +
      +
      + +
    • No event mappings for this role
    • +
      +
    + +

    Activity associations

    + +
      + + +
    • @arm.name@
    • +
      +
      + +
    • No activity mappings for this role
    • +
      +
    + +

    Role Description

    + + + + + + + + + + + + + + +
    Role Name@role_info.role@
    Responsibilities@role_info.responsibilities@
    Public Role?YesNo
    + + + Index: openacs-4/contrib/packages/events/www/manage/one-role.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/one-role.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/one-role.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,24 @@ +# events/www/admin/roles.tcl + +ad_page_contract { + Displays a list of roles + Details for specific roles are one click deep. + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: one-role.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ + +} { + {role_id:naturalnum,notnull} +} + +set title "One Role" +set context_bar [ad_context_bar [list "roles" "Roles"] "One Role"] + +events::organizer::get_role -role_id $role_id -array role_info + +db_multirow arm select_activity_role_mappings {} + +db_multirow erm select_event_role_mappings {} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/one-role.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/one-role.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/one-role.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,33 @@ + + + + + + select aa.activity_id, aa.name + from events_activities ea, events_org_role_activity_map eoram, + acs_activities aa + where aa.activity_id = ea.activity_id + and ea.activity_id = eoram.activity_id + and eoram.role_id = :role_id + order by aa.name asc + + + + + + select ee.event_id, aa.name, + to_char(t.start_date, 'Month DD, YYYY HH12:MI PM') as pretty_start_date, + to_char(t.end_date, 'Month DD, YYYY HH12:MI PM') as pretty_end_date + from events_events ee, events_org_role_event_map eorem, + acs_events ae, acs_activities aa, timespans s, time_intervals t + where ee.event_id = eorem.event_id + and eorem.event_id = ae.event_id + and aa.activity_id = ae.activity_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and eorem.role_id = :role_id + order by aa.name asc + + + + Index: openacs-4/contrib/packages/events/www/manage/order-same-person.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/order-same-person.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/order-same-person.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,82 @@ +# File: events/admin/order-same-person.tcl +# Owner: bryanche@arsdigita.com +# Purpose: ... +##### + + +ad_page_contract { + Lists registrations by one user + + @param user_id the user whose registrations we're listing + + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id order-same-person.tcl,v 3.5.2.4 2000/09/22 01:37:38 kevin Exp +} { + {user_id:integer,notnull} +} +set admin_id [ad_maybe_redirect_for_registration] +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +set output_html_page "whole_page" +# this is for events_write_order_summary + +set whole_page "" + + +db_1row sel_names " + select first_names, last_name from users + where user_id = :user_id" + +append whole_page " + [ad_header "Orders by $first_names $last_name"] +

    Orders by $first_names $last_name

    +[ad_context_bar_ws [list "index.tcl" "Events Administration"] "Order History"] +
    + +
      +" + +db_foreach sel_regs " + select r.reg_id, r.reg_state, a.short_name, r.reg_date + from events_registrations r, events_activities a, events_events e, + user_groups ug, user_group_map ugm, events_prices p + where p.event_id = e.event_id + and r.price_id = p.price_id + and e.activity_id = a.activity_id + and r.user_id = :user_id + and a.group_id = ugm.group_id + and ugm.group_id = ug.group_id + and ugm.user_id = :admin_id +union + select r.reg_id, r.reg_state, a.short_name, r.reg_date + from events_registrations r, events_activities a, events_events e, + user_groups ug, user_group_map ugm, events_prices p + where p.event_id = e.event_id + and r.price_id = p.price_id + and e.activity_id = a.activity_id + and r.user_id = :user_id + and a.group_id is null + order by reg_id desc" { + append whole_page "\n
    • " + events_write_order_summary +} + +## clean up, return page. + +append whole_page "
    \n [ad_footer] " + + +doc_return 200 text/html $whole_page + +##### File Over Index: openacs-4/contrib/packages/events/www/manage/order-search.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/order-search.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/order-search.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,101 @@ +# File: events/admin/order-search.tcl +# Owner: bryanche@arsdigita.com +# Purpose: Full text search of existing orders +##### + +ad_page_contract { + Search for existing orders + + @param id_query a registration id to search for + @param name_query a name to search for + + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id order-search.tcl,v 3.9.2.4 2000/09/22 01:37:38 kevin Exp +} { + {id_query:integer,optional} + {name_query:trim,optional} +} + +set admin_id [ad_maybe_redirect_for_registration] +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +set output_html_page "whole_page" +# for events_write_order_summary + +set whole_page "" + +if { [info exists id_query] && [string compare $id_query ""] != 0 } { + ad_returnredirect "reg-view.tcl?reg_id=$id_query" + return +} elseif { ![info exists name_query] || [string compare $name_query ""] == 0 } { + ad_return_warning "Please enter search info" "Please enter either an order # or the customer's last name" + return +} + +append whole_page " + [ad_header "Orders with Last Name Containing \"$name_query\""] +

    Orders with Last Name Containing \"$name_query\"

    +[ad_context_bar_ws [list "index.tcl" "Events Administration"] [list "order-history.tcl" "Order History"] "Search"] +
    + +
      +" + +set n_rows_found 0 + +db_foreach sel_regs " +select u.first_names, u.last_name, r.reg_id, r.reg_state, +a.short_name, v.city, v.usps_abbrev, v.iso +from events_registrations r, events_activities a, events_events e, +events_prices p, events_venues v, users u, +user_group_map ugm +where upper(u.last_name) like upper(:name_query) +and r.user_id = u.user_id +and p.price_id = r.price_id +and e.event_id = p.event_id +and a.activity_id = e.activity_id +and v.venue_id = e.venue_id +and ugm.group_id = a.group_id +and ugm.user_id = :admin_id +union +select u.first_names, u.last_name, r.reg_id, r.reg_state, +a.short_name, v.city, v.usps_abbrev, v.iso +from events_registrations r, events_activities a, events_events e, +events_prices p, events_venues v, users u +where upper(u.last_name) like upper(:name_query) +and r.user_id = u.user_id +and p.price_id = r.price_id +and e.event_id = p.event_id +and a.activity_id = e.activity_id +and v.venue_id = e.venue_id +and a.group_id is null +order by reg_id +" { + incr n_rows_found + append whole_page "
    • " + events_write_order_summary +} + +if { $n_rows_found == 0 } { + append whole_page "no orders found" +} + +## clean up, return + +append whole_page "
    \n [ad_footer] " + + +doc_return 200 text/html $whole_page + +##### EOF Index: openacs-4/contrib/packages/events/www/manage/organizer-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/organizer-edit.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/organizer-edit.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,10 @@ + +@title;noquote@ +@context_bar;noquote@ + +

    Select Organizer for Role

    + +
    + +
    + Index: openacs-4/contrib/packages/events/www/manage/organizer-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/organizer-edit.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/organizer-edit.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,111 @@ +#/packages/events/www/admin/organizer-edit.tcl + +ad_page_contract { + + Edit an organizer for an event role + + @param activity_id the activity in question + @param event_id the event in question + @param role_id the role which we're to edit + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: organizer-edit.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {role_id:naturalnum,notnull} + {event_id:naturalnum,notnull} + {activity_id:naturalnum,notnull} +} + +events::organizer::get_role -role_id $role_id -array org_role_info + +set context_bar [ad_context_bar [list "activities" "Activities"] \ + [list "activity?activity_id=$activity_id" "Activity"] \ + [list "event?event_id=$event_id" "Event"] "Edit Organizer Role"] +set title "Edit Organizer" +set package_id [ad_conn package_id] +set user_id [ad_conn user_id] + +#see if user have admin permission for the package +set permission_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] +if { $permission_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +form create organizer_edit + +element create organizer_edit activity_id \ + -datatype integer \ + -widget hidden \ + -value $activity_id + +element create organizer_edit event_id \ + -datatype integer \ + -widget hidden \ + -value $event_id + +element create organizer_edit role_id \ + -datatype integer \ + -widget hidden \ + -value $role_id + +element create organizer_edit role \ + -label "Role" \ + -datatype text \ + -widget inform \ + -value $org_role_info(role) + +element create organizer_edit user_id \ + -label "User in this role" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::organizer::users_get_options] \ + -optional \ + -search_query { + select distinct u.first_names || ' ' || u.last_name as name, u.user_id + from cc_users u + where upper(decode(u.first_names,' ', '') || decode(u.last_name,' ', '') || u.email || ' ' || decode(u.screen_name, ' ', '')) like upper('%'||:value||'%') + order by name +} + +if {[template::form is_valid organizer_edit]} { + template::form get_values organizer_edit user_id + + set organizer_exists_p [events::organizer::organizer_exists_p \ + -event_id $event_id -role_id $role_id] + + if {$organizer_exists_p && [exists_and_not_null user_id]} { + events::organizer::edit_organizer \ + -event_id $event_id \ + -role_id $role_id \ + -party_id $user_id + } elseif {$organizer_exists_p} { + ns_log Notice "deleting organizer" + events::organizer::delete_organizer \ + -event_id $event_id \ + -role_id $role_id \ + -party_id $user_id + } else { + events::organizer::add_organizer \ + -event_id $event_id \ + -role_id $role_id \ + -party_id $user_id + } + + ad_returnredirect "event?event_id=$event_id" + ad_script_abort +} + +element set_properties organizer_edit user_id -value $org_role_info(user_id) + +ad_return_template + + + + Index: openacs-4/contrib/packages/events/www/manage/permissions-user-add.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/permissions-user-add.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/permissions-user-add.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,6 @@ + + @page_title@ + @context@ + + + Index: openacs-4/contrib/packages/events/www/manage/permissions-user-add.adp~ =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/Attic/permissions-user-add.adp~,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/permissions-user-add.adp~ 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,6 @@ + + @page_title@ + @context@ + + + Index: openacs-4/contrib/packages/events/www/manage/permissions-user-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/permissions-user-add.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/permissions-user-add.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,27 @@ +ad_page_contract { + Redirect page for adding users to the permissions list. + + @author Lars Pind (lars@collaboraid.biz) + @creation-date 2003-06-13 + @cvs-id $Id: permissions-user-add.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + object_id:integer +} + +set page_title "Add User" + +set context [list [list [export_vars -base permissions { object_id }] "Permissions"] $page_title] + +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + Index: openacs-4/contrib/packages/events/www/manage/permissions-user-add.tcl~ =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/Attic/permissions-user-add.tcl~,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/permissions-user-add.tcl~ 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,14 @@ +ad_page_contract { + Redirect page for adding users to the permissions list. + + @author Lars Pind (lars@collaboraid.biz) + @creation-date 2003-06-13 + @cvs-id $Id: permissions-user-add.tcl~,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + object_id:integer +} + +set page_title "Add User" + +set context [list [list [export_vars -base permissions { object_id }] "Permissions"] $page_title] + Index: openacs-4/contrib/packages/events/www/manage/permissions.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/permissions.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/permissions.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,6 @@ + + @page_title@ + @context@ + + + Index: openacs-4/contrib/packages/events/www/manage/permissions.adp~ =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/Attic/permissions.adp~,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/permissions.adp~ 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,7 @@ + +@return_url@ + @page_title@ + @context@ + + + Index: openacs-4/contrib/packages/events/www/manage/permissions.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/permissions.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/permissions.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,25 @@ +ad_page_contract { + Permissions for the subsite itself. + + @creation-date 2004-11-09 + +} { + object_id:integer +} + +set page_title "Permissions" + +set context [list $page_title] +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} +set node_id [ad_conn node_id] +set return_url "[site_node::get_url -node_id $node_id]manage/" \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/permissions.tcl~ =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/Attic/permissions.tcl~,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/permissions.tcl~ 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,25 @@ +ad_page_contract { + Permissions for the subsite itself. + + @creation-date 2004-11-09 + +} { + object_id:integer +} + +set page_title "Permissions" + +set context [list $page_title] +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + +set return_url "index" \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/role-add-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-add-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-add-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,30 @@ + + + + + + select role || ' ' || + decode(public_role_p, 't', ' (public role)', '') as public_role_p, + role_id + from events_organizer_roles + where role_id not in + (select role_id + from events_org_role_activity_map + where activity_id = :activity_id) + + + + + + select role || ' ' || + decode(public_role_p, 't', ' (public role)', '') as public_role_p, + role_id + from events_organizer_roles + where role_id not in + (select role_id + from events_org_role_event_map + where event_id = :event_id) + + + + Index: openacs-4/contrib/packages/events/www/manage/role-add-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-add-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-add-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,28 @@ + + + + + + select role || '' || CASE WHEN public_role_p THEN ' (public role)' ELSE '' END, + role_id + from events_organizer_roles + where role_id not in + (select role_id + from events_org_role_activity_map + where activity_id = :activity_id) + + + + + + select role || '' || CASE WHEN public_role_p = 't' THEN ' (public role)' ELSE '' END, + role_id + from events_organizer_roles + where role_id not in + (select role_id + from events_org_role_event_map + where event_id = :event_id) + + + + Index: openacs-4/contrib/packages/events/www/manage/role-add.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-add.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-add.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,15 @@ + +@title;noquote@ +@context_bar;noquote@ + +

    Choose a role (or roles)

    + +
    + +
    +If you do not see the role you wish to add above, you may add a new role +

    +
    + + + Index: openacs-4/contrib/packages/events/www/manage/role-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-add.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-add.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,102 @@ +# File: events/www/admin/role-add.tcl + +ad_page_contract { + Allows admins to select from existing system roles + + @param activity_id the field's activity + @param event_id the field's event + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: role-add.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {event_id ""} + {activity_id ""} + {role_ids:multiple ""} +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] +set event_admin [permission::permission_p -object_id $event_id -party_id $user_id -privilege "admin"] + +if { $package_admin != 1 && $permission_create != 1 && $event_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +if {[exists_and_not_null event_id]} { + set title "Add Organizer Roles" + set role_create "role-create?activity_id=$activity_id&event_id=$event_id" + set context_bar [ad_context_bar [list "activities" "Activities"] \ + [list "activity?activity_id=$activity_id" "Activity"] \ + [list "event?event_id=$event_id" "Event"] "Add Organizer Roles"] + set roles [db_list_of_lists select_available_event_roles {}] +} else { + set title "Add Default Organizer Roles" + set role_create "role-create?activity_id=$activity_id" + set context_bar [ad_context_bar [list "activities" "Activities"] \ + [list "activity?activity_id=$activity_id" "Activity"] "Add Default Organizer Roles"] + set roles [db_list_of_lists select_available_activity_roles {}] +} + +if {[exists_and_not_null roles]} { + set roles_p t +} else { + set roles_p f +} + +form create role_add + +element create role_add activity_id \ + -optional \ + -widget hidden \ + -datatype integer + +element create role_add event_id \ + -optional \ + -widget hidden \ + -datatype integer + +element create role_add role_ids \ + -label "Available Roles" \ + -widget multiselect \ + -datatype integer \ + -help_text "Select multiple roles by holding down the Control key" \ + -options $roles + +element create role_add submit \ + -label "Add roles" \ + -datatype text \ + -widget submit + +if {[template::form is_valid role_add]} { + + if {[exists_and_not_null event_id]} { + foreach role_id $role_ids { + events::organizer::map_role -event_id $event_id -role_id $role_id + } + set redirect_url "event?event_id=$event_id" + } else { + foreach role_id $role_ids { + events::organizer::map_role -activity_id $activity_id -role_id $role_id + } + set redirect_url "activity?activity_id=$activity_id" + } + + ad_returnredirect $redirect_url + ad_script_abort + +} + +if {[exists_and_not_null event_id]} { + element set_properties role_add activity_id -value $activity_id + element set_properties role_add event_id -value $event_id +} else { + element set_properties role_add activity_id -value $activity_id +} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/role-create.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-create.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-create.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,10 @@ + +@title;noquote@ +@context_bar;noquote@ + +

    Role Description

    + +
    + +
    + Index: openacs-4/contrib/packages/events/www/manage/role-create.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-create.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-create.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,155 @@ +#/packages/events/www/admin/role-create.tcl + +ad_page_contract { + + Create an org role + + @param activity_id the activity in question + @param event_id the event in question + @param role_id the role which we're to edit + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: role-create.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {activity_id:naturalnum,optional} + {event_id:naturalnum,optional} +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] +set event_admin [permission::permission_p -object_id $event_id -party_id $user_id -privilege "admin"] + +if { $package_admin != 1 && $permission_create != 1 && $event_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +if {[exists_and_not_null event_id]} { + set context_bar [ad_context_bar [list "activities" "Activities"] \ + [list "activity?activity_id=$activity_id" "Activity"] \ + [list "event?event_id=$event_id" "Event"] "New Organizer Role"] + set title "Add a New Organizer Role" +} elseif {[exists_and_not_null activity_id]} { + set context_bar [ad_context_bar [list "activities" "Activities"] \ + [list "activity?activity_id=$activity_id" "Activity"] "New Default Organizer Role"] + set title "Add a New Default Organizer Role" +} else { + set context_bar [ad_context_bar [list "roles" "Roles"] "New Organizer Role"] + set title "Add a New Organizer Role" +} + +form create organizer_role + +element create organizer_role activity_id \ + -datatype integer \ + -widget hidden \ + -optional + +element create organizer_role event_id \ + -datatype integer \ + -widget hidden \ + -optional + +element create organizer_role role \ + -label "Role" \ + -datatype text \ + -widget text \ + -html {size 20} \ + -required + +element create organizer_role responsibilities \ + -label "Responsibilities" \ + -datatype text \ + -widget textarea \ + -optional \ + -html {cols 70 rows 10 wrap soft} + +element create organizer_role public_role_p \ + -label "Public Role?" \ + -datatype text \ + -widget select \ + -options {{No f} {Yes t}} + +if {[exists_and_not_null event_id]} { + element create organizer_role user_id \ + -label "User in this role" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::organizer::users_get_options] \ + -optional \ + -search_query { + select distinct u.first_names || ' ' || u.last_name as name, u.user_id + from cc_users u + where upper(decode(u.first_names,' ', '') || decode(u.last_name,' ', '') || u.email || ' ' || decode(u.screen_name, ' ', '')) like upper('%'||:value||'%') + order by name + } + + element create organizer_role submit \ + -label "Add a Role" \ + -datatype text \ + -widget submit + +} else { + element create organizer_role submit \ + -label "Add a Default Role" \ + -datatype text \ + -widget submit + +} + +if {[template::form is_submission organizer_role]} { + + if {[exists_and_not_null event_id]} { + # create role and map to event_id + set redirect_url "event?event_id=$event_id" + template::form get_values organizer_role \ + role responsibilities public_role_p user_id + set role_id [events::organizer::new_role \ + -role $role \ + -responsibilities $responsibilities \ + -public_role_p $public_role_p] + events::organizer::map_role -role_id $role_id -event_id $event_id + if {[exists_and_not_null user_id]} { + # add organizer while we're at it + events::organizer::add_organizer -role_id $role_id \ + -party_id $user_id -event_id $event_id + } + } elseif {[exists_and_not_null activity_id]} { + # create role and map to activity_id + set redirect_url "activity?activity_id=$activity_id" + template::form get_values organizer_role \ + role responsibilities public_role_p + set role_id [events::organizer::new_role \ + -role $role \ + -responsibilities $responsibilities \ + -public_role_p $public_role_p] + events::organizer::map_role -role_id $role_id -activity_id $activity_id + } else { + # no event/activity association; just create the role + set redirect_url "roles" + template::form get_values organizer_role role public_role_p responsibilities + events::organizer::new_role \ + -role $role \ + -responsibilities $responsibilities \ + -public_role_p $public_role_p + } + + ad_returnredirect $redirect_url + ad_script_abort +} + +if {[exists_and_not_null event_id]} { + element set_properties organizer_role event_id -value $event_id + element set_properties organizer_role user_id -value "" +} elseif {[exists_and_not_null activity_id]} { + element set_properties organizer_role activity_id -value $activity_id +} + +ad_return_template + Index: openacs-4/contrib/packages/events/www/manage/role-delete.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-delete.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-delete.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,10 @@ + +@title;noquote@ +@context_bar;noquote@ + +

    @question@

    + +
    + +
    + Index: openacs-4/contrib/packages/events/www/manage/role-delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-delete.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-delete.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,62 @@ +# File: events/www/admin/role-delete.tcl + +ad_page_contract { + Allows admins to confirm the removal of a role + + @param role_id the id of the role + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: role-delete.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {role_id:naturalnum,notnull} +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +events::organizer::get_role -role_id $role_id -array role_info + +set title "Delete Role?" + +set context_bar [ad_context_bar [list "roles" Roles] [list "role?role_id=$role_id" Role] "Delete Role"] + +set question "Delete role from system?" + +form create role_delete + +element create role_delete role \ + -label "Role name" \ + -datatype text \ + -widget inform \ + -value $role_info(role) + +element create role_delete role_id \ + -label "Role" \ + -datatype integer \ + -widget hidden \ + -value $role_id + +element create role_delete submit \ + -label "Delete role" \ + -datatype text \ + -widget submit + +if {[template::form is_valid role_delete]} { + events::organizer::delete_role \ + -role_id $role_id + + ad_returnredirect roles + ad_script_abort +} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/role-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-edit.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-edit.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,10 @@ + +@title;noquote@ +@context_bar;noquote@ + +

    Role Description

    + +
    + +
    + Index: openacs-4/contrib/packages/events/www/manage/role-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-edit.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-edit.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,110 @@ +#/packages/events/www/admin/role-edit.tcl + +ad_page_contract { + + Edit an org role for either an event or an activity + + @param activity_id the activity in question + @param event_id the event in question + @param role_id the role which we're to edit + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: role-edit.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {role_id:naturalnum,notnull} + {event_id:naturalnum,optional} + {activity_id:naturalnum,optional} +} + +events::organizer::get_role -role_id $role_id -array org_role_info + +form create organizer_role + +if {[exists_and_not_null event_id]} { + set context_bar [ad_context_bar [list "activities" "Activities"] \ + [list "activity?activity_id=$activity_id" "Activity"] \ + [list "event?event_id=$event_id" "Event"] "Edit Organizer Role"] + set title "Edit Organizer Role" +} elseif {[exists_and_not_null activity_id]} { + set context_bar [ad_context_bar [list "activities" "Activities"] \ + [list "activity?activity_id=$activity_id" "Activity"] "Edit Organizer Role"] + set title "Edit Default Activity Organizer Role" +} else { + set context_bar [ad_context_bar [list "roles" "Roles"] \ + [list "one-role?role_id=$role_id" "One Role"] "Edit Organizer Role"] + set title "Edit Organizer Role" +} + +element create organizer_role activity_id \ + -datatype integer \ + -widget hidden \ + -optional + +element create organizer_role event_id \ + -datatype integer \ + -widget hidden \ + -optional + +element create organizer_role role_id \ + -datatype integer \ + -widget hidden \ + -value $role_id + +element create organizer_role role \ + -label "Role" \ + -datatype text \ + -widget text \ + -html {size 20} \ + -required + +element create organizer_role responsibilities \ + -label "Responsibilities" \ + -datatype text \ + -widget textarea \ + -html {cols 70 rows 10 wrap soft} + + +element create organizer_role public_role_p \ + -label "Public Role?" \ + -datatype text \ + -widget select \ + -options {{No f} {Yes t}} + +if {[template::form is_valid organizer_role]} { + template::form get_values organizer_role \ + role_id role responsibilities public_role_p event_id + + if {[exists_and_not_null event_id]} { + set redirect_url "event?event_id=$event_id" + } elseif {[exists_and_not_null activity_id]} { + set redirect_url "activity?activity_id=$activity_id" + } else { + set redirect_url "one-role?role_id=$role_id" + } + + events::organizer::edit_role \ + -role_id $role_id \ + -role $role \ + -responsibilities $responsibilities \ + -public_role_p $public_role_p + + ad_returnredirect $redirect_url + ad_script_abort +} + +element set_properties organizer_role role -value $org_role_info(role) +element set_properties organizer_role responsibilities -value $org_role_info(responsibilities) +element set_properties organizer_role public_role_p -value $org_role_info(public_role_p) + +if {[exists_and_not_null event_id]} { + element set_properties organizer_role event_id -value $event_id +} elseif {[exists_and_not_null activity_id]} { + element set_properties organizer_role activity_id -value $activity_id +} + +ad_return_template + + + + Index: openacs-4/contrib/packages/events/www/manage/role-remove.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-remove.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-remove.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,10 @@ + +@title;noquote@ +@context_bar;noquote@ + +

    @question@

    + +
    + +
    + Index: openacs-4/contrib/packages/events/www/manage/role-remove.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/role-remove.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/role-remove.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,89 @@ +# File: events/www/admin/activity-field-delete.tcl + +ad_page_contract { + Allows admins to confirm the removal of a role + associated with the selected activity/event + + @param activity_id the field's activity + @param event_id the field's event + @param attribute_name the name of the field's table column + @param attribute_id the name of the field's table column + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: role-remove.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {event_id ""} + {activity_id ""} + {role_id:integer} +} + +events::organizer::get_role -role_id $role_id -array role_info + +if {[exists_and_not_null event_id]} { + events::event::get -event_id $event_id -array info + set title "Remove Role from Event?" + set context_bar [ad_context_bar [list "activities" Activities] [list "event?event_id=$event_id" Event] "Remove Role"] +} else { + events::activity::get -activity_id $activity_id -array info + set title "Remove Role from Activity?" + set context_bar [ad_context_bar [list "activities" Activities] [list "activity?activity_id=$activity_id" Activity] "Remove Role"] +} + +set question "Remove role from $info(name)?" + +form create role_remove + +element create role_remove activity_id \ + -datatype integer \ + -optional \ + -widget hidden + +element create role_remove event_id \ + -datatype integer \ + -optional \ + -widget hidden + +element create role_remove role \ + -label "Role name" \ + -datatype text \ + -widget inform \ + -value $role_info(role) + +element create role_remove role_id \ + -label "Role" \ + -datatype integer \ + -widget hidden \ + -value $role_id + +element create role_remove submit \ + -label "Remove role" \ + -datatype text \ + -widget submit + +if {[template::form is_valid role_remove]} { + template::form get_values role_remove role_id + if {[exists_and_not_null event_id]} { + set redirect_url "event?event_id=$event_id" + events::organizer::unmap_role \ + -event_id $event_id \ + -role_id $role_id + } else { + set redirect_url "activity?activity_id=$activity_id" + events::organizer::unmap_role \ + -activity_id $activity_id \ + -role_id $role_id + } + + ad_returnredirect $redirect_url + ad_script_abort +} + +if {[exists_and_not_null event_id]} { + element set_properties role_remove activity_id -value $activity_id + element set_properties role_remove event_id -value $event_id +} else { + element set_properties role_remove activity_id -value $activity_id +} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/roles-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/roles-oracle.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/roles-oracle.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,13 @@ + + + + + + select role, role_id, + decode(public_role_p, 't', ' (public role)', '') as public_role_p + from events_organizer_roles + order by role asc + + + + Index: openacs-4/contrib/packages/events/www/manage/roles-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/roles-postgresql.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/roles-postgresql.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,15 @@ + + + + + + select role, role_id, public_role_p, + CASE when public_role_p = 't' then ' (public role)' + ELSE '' + END + from events_organizer_roles + order by role asc + + + + Index: openacs-4/contrib/packages/events/www/manage/roles.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/roles.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/roles.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,24 @@ + +Roles +@context_bar;noquote@ + + + +

    Event Roles

    + + + + + +
      +
    • There are no roles defined in the system. You may create one now.
    • +
    +
    + + Index: openacs-4/contrib/packages/events/www/manage/roles.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/roles.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/roles.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,31 @@ +# events/www/admin/roles.tcl +ad_page_contract { + Displays a list of roles + Details for specific roles are one click deep. + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: roles.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ + +} { +} -properties { + roles:multirow +} + +set context_bar [ad_context_bar Roles] +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] + +if { $package_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +db_multirow roles select_roles {} + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/send-mail.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/send-mail.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/send-mail.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,6 @@ + + +@title;noquote@ +@context;noquote@ + + Index: openacs-4/contrib/packages/events/www/manage/send-mail.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/send-mail.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/send-mail.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,323 @@ +# events/www/admin/send-mail.tcl + +ad_page_contract { + + this page allows you to sending email in bulk to event or activity registrants, + it relies on the bulk-mail package + + @param activty_id + @param event_id + @param return_url + + @author Matthew Geddert + @creation date 2002-11-01 + @cvs-id $Id: send-mail.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {activity_id:integer,optional} + {event_id:integer,optional} + {group ""} + {return_url ""} +} + +# first, lets make sure they have bulk-mail installed. +if { ![apm_package_installed_p bulk-mail] } { + ad_return_warning "Bulk-Mail is not installed" "Sending email message in bulk relies on bulk mail, + please see your webmaster to see if he/she can install it for you." +} + +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set event_admin [permission::permission_p -object_id $event_id -party_id $user_id -privilege "admin"] + +if { $package_admin != 1 && $event_admin !=1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + + +if {[exists_and_not_null event_id]} { + if {[exists_and_not_null activity_id]} { + ad_return_warning "Both Variables Cannot Be Specified" "You must either specify Event_id or Activity_id, not both at the same time." + } + if { ![events::event::exists_p -event_id $event_id] } { + ad_return_warning "Event doesn't exist" "We couldn't find the event you asked for." + } +} else { + if {[exists_and_not_null activity_id]} { + if { ![events::activity::exists_p -activity_id $activity_id] } { + ad_return_warning "Activity doesn't exist" "We couldn't find the activity you asked for." + } + } else { + ad_return_warning "You must supply a variable" "You must either specify Event_id or Activity_id." + } +} + + +if {[exists_and_not_null event_id]} { + # we are sending a message to folks involved with a particular event + events::event::get -event_id $event_id -array event_info + + set title "Send Mail to $event_info(name) [string totitle $group]" + set context [list [list "activities" Activities] [list "activity?activity_id=$event_info(activity_id)" $event_info(name)] [list "event?event_id=$event_id" "$event_info(city)"] "Send Mail"] + + form create send-bulk-mail + + element create send-bulk-mail event_id \ + -datatype integer \ + -widget hidden \ + -value $event_id + + element create send-bulk-mail return_url \ + -datatype text \ + -widget hidden \ + -value $return_url + + db_1row select_event_from_addr_count {} + db_1row select_my_email_address {} + + if { $from_addr_count == "1" } { + + element create send-bulk-mail from_addr \ + -label "Send Mail From" \ + -datatype text \ + -widget inform \ + -value $from_addr + + } else { + + element create send-bulk-mail from_addr \ + -label "Send Mail From" \ + -datatype text \ + -widget select \ + -options [db_list_of_lists select_event_from_addr {}] \ + -value $from_addr + } + + # LARS: + # This is for passing on the initial 'group' page argument to the form processing + element create send-bulk-mail group -datatype text -widget hidden + + if { [form is_valid send-bulk-mail] } { + set group [element get_value send-bulk-mail group] + } + + # are we sending mail to registrants or organizers? + switch $group { + registrants { + element create send-bulk-mail to \ + -label "Send Mail To" \ + -datatype text \ + -widget radio \ + -options { {{All Approved, Waitlisted, and Pending Registrants} all} + {{Approved Registrants} approved} + {{Waitlisted Registrants} waiting} + {{Pending Registrants} pending} + } + } + organizers { + element create send-bulk-mail to \ + -datatype text \ + -widget hidden \ + -value "organizers" + } + } + + element create send-bulk-mail subject \ + -label "Message Subject" \ + -datatype text \ + -widget text \ + -html {size 50} \ + -value "$event_info(name) on $event_info(timespan)" + + element create send-bulk-mail message \ + -label "Enter Message" \ + -datatype text \ + -widget textarea \ + -html {cols 60 rows 8 wrap soft} + + element create send-bulk-mail submit \ + -label "Send Message" \ + -datatype text \ + -widget submit + + if { [form is_request send-bulk-mail] } { + element set_value send-bulk-mail group $group + } + + if {[form is_valid send-bulk-mail]} { + form get_values send-bulk-mail event_id return_url from_addr to subject message + + set query "" + + switch $to { + all { + set query [db_map select_all_event_registrants] + } + approved { + set query [db_map select_event_reg_state_registrants] + } + waiting { + set query [db_map select_event_reg_state_registrants] + } + pending { + set query [db_map select_event_reg_state_registrants] + } + organizers { + set query [db_map select_event_organizers] + } + } + + ns_log notice "EVENTS-MAIL-EVENT-REGS: $query" + + bulk_mail::new \ + -from_addr $from_addr \ + -subject $subject \ + -message $message \ + -query $query + + if {![exists_and_not_null return_url]} { + set return_url "event?event_id=$event_id" + } + + ad_returnredirect $return_url + ad_script_abort + } +} + + + + +if { [exists_and_not_null activity_id] } { +# we are sending a message to everybody involved with an activity + events::activity::get -activity_id $activity_id -array activity_info + + set title "Send Mail To The $activity_info(name) Activity Registrants" + set context [list [list "activities" Activities] [list "activity?activity_id=$activity_id" $activity_info(name)] "Send Mail"] + + form create send-bulk-mail + + element create send-bulk-mail activity_id \ + -datatype integer \ + -widget hidden \ + -value $activity_id + + element create send-bulk-mail return_url \ + -datatype text \ + -widget hidden \ + -value $return_url + + db_1row select_activity_from_addr_count {} + db_1row select_my_email_address {} + + if {[string compare $from_addr_count "1"] == 0} { + + element create send-bulk-mail from_addr \ + -label "Send Mail From" \ + -datatype text \ + -widget inform \ + -value $from_addr + + } else { + + element create send-bulk-mail from_addr \ + -label "Send Mail From" \ + -datatype text \ + -widget select \ + -options [db_list_of_lists select_activity_from_addr {}] \ + -value $from_addr + } + + element create send-bulk-mail to \ + -label "Send Mail To" \ + -datatype text \ + -widget radio \ + -options { {{All Approved, Waitlisted, and Pending Registrants} all} + {{Approved Registrants} approved} + {{Waitlisted Registrants} waiting} + {{Pending Registrants} pending} + } + + element create send-bulk-mail time \ + -label "Registered For" \ + -datatype text \ + -widget select \ + -options { {{All Past and Future Events} all} + {{Future Events} future} + {{Past Events} past} + } \ + -value future + + + element create send-bulk-mail subject \ + -label "Message Subject" \ + -datatype text \ + -widget text \ + -html {size 50} \ + -value "$activity_info(name)" + + element create send-bulk-mail message \ + -label "Enter Message" \ + -datatype text \ + -widget textarea \ + -html {cols 60 rows 8 wrap soft} + + element create send-bulk-mail submit \ + -label "Send Message" \ + -datatype text \ + -widget submit + + if {[template::form is_valid send-bulk-mail]} { + template::form get_values send-bulk-mail activity_id return_url from_addr to time subject message + + set query "" + + switch $time { + all { + if {[string compare $to "all"] == 0} { + set query [db_map select_activity_all_all] + } else { + set query [db_map select_activity_reg_state_all] + } + } + future { + if {[string compare $to "all"] == 0} { + set query [db_map select_activity_all_future] + } else { + set query [db_map select_activity_reg_state_future] + } + } + past { + if {[string compare $to "all"] == 0} { + set query [db_map select_activity_all_past] + } else { + set query [db_map select_activity_reg_state_past] + } + } + } + + ns_log notice "EVENTS-MAIL-ACTIVITY-REGS: $query" + + set package_id [ad_conn package_id] + + bulk_mail::new \ + -package_id $package_id \ + -from_addr $from_addr \ + -subject $subject \ + -message $message \ + -query $query + + if {![exists_and_not_null return_url]} { + set return_url "activity?activity_id=$activity_id" + } + + ad_returnredirect $return_url + ad_script_abort + } +} + + +ad_return_template Index: openacs-4/contrib/packages/events/www/manage/send-mail.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/send-mail.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/send-mail.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,206 @@ + + + + + + select count(*) as from_addr_count + from parties pa, + events_activities ea + where ea.default_contact_user_id = pa.party_id + and ea.activity_id = :activity_id + or pa.party_id = :user_id + + + + + + select CASE WHEN ea.default_contact_user_id = pa.party_id AND ea.default_contact_user_id <> :user_id THEN pa.email || ' (the default contact for this activity)' + ELSE pa.email END as from_addr, pa.email + from parties pa, + events_activities ea + where ea.default_contact_user_id = pa.party_id + and ea.activity_id = :activity_id + or pa.party_id = :user_id + + + + + + select count(*) as from_addr_count + from (select contact_user_id from events_events where event_id = :event_id) ee, + parties pa + where ee.contact_user_id = pa.party_id + or pa.party_id = :user_id + + + + + + select CASE WHEN ee.contact_user_id = pa.party_id AND ee.contact_user_id <> :user_id THEN pa.email || ' (the default contact for this event)' + ELSE pa.email END as from_addr, pa.email + from (select contact_user_id from events_events where event_id = :event_id) ee, + parties pa + where ee.contact_user_id = pa.party_id + or pa.party_id = :user_id + + + + + + select email as from_addr + from parties + where party_id = :user_id + + + + + + select pa.email + from parties pa, + events_registrations er + where er.user_id = pa.party_id + and er.reg_state <> 'canceled' + and event_id = '$event_id' + + + + + + select pa.email + from parties pa, + events_registrations er + where er.user_id = pa.party_id + and er.reg_state = '$to' + and event_id = '$event_id' + + + + + + select pa.email + from parties pa, + events_organizers eo + where eo.user_id = pa.party_id + and eo.event_id = '$event_id' + + + + + + select pa.email + from events_registrations er, + parties pa, + acs_events ae, + timespans s, + time_intervals t, + dual + where er.user_id = pa.party_id + and ae.activity_id = '$activity_id' + and ae.event_id = er.event_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and er.reg_state = '$to' + and t.start_date > sysdate + group by pa.email + + + + + + select pa.email + from events_registrations er, + parties pa, + acs_events ae, + timespans s, + time_intervals t, + dual + where er.user_id = pa.party_id + and ae.activity_id = '$activity_id' + and ae.event_id = er.event_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and er.reg_state <> 'canceled' + and t.start_date > sysdate + group by pa.email + + + + + + select pa.email + from events_registrations er, + parties pa, + acs_events ae, + timespans s, + time_intervals t, + dual + where er.user_id = pa.party_id + and ae.activity_id = '$activity_id' + and ae.event_id = er.event_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and er.reg_state <> 'canceled' + and t.start_date < sysdate + group by pa.email + + + + + + select pa.email + from events_registrations er, + parties pa, + acs_events ae, + timespans s, + time_intervals t, + dual + where er.user_id = pa.party_id + and ae.activity_id = '$activity_id' + and ae.event_id = er.event_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and er.reg_state = '$to' + and t.start_date < sysdate + group by pa.email + + + + + + select pa.email + from events_registrations er, + parties pa, + acs_events ae, + timespans s, + time_intervals t, + dual + where er.user_id = pa.party_id + and ae.activity_id = '$activity_id' + and ae.event_id = er.event_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and er.reg_state = '$to' + group by pa.email + + + + + + select pa.email + from events_registrations er, + parties pa, + acs_events ae, + timespans s, + time_intervals t, + dual + where er.user_id = pa.party_id + and ae.activity_id = '$activity_id' + and ae.event_id = er.event_id + and ae.timespan_id = s.timespan_id + and s.interval_id = t.interval_id + and er.reg_state <> 'canceled' + group by pa.email + + + + Index: openacs-4/contrib/packages/events/www/manage/venue-delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venue-delete.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venue-delete.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,47 @@ +# events/www/admin/venue-delete.tcl + +ad_page_contract { + deletes a venue + + @param venue_id the venue to be deleted + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: venue-delete.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {venue_id:integer,notnull} +} -validate { + exists_p -requires {venue_id} { + if { ![events::venue::exists_p -venue_id $venue_id] } { + ad_complain "We couldn't find the venue you specified." + return 0 + } + return 1 + } + in_use_p -requires {venue_id} { + if { [events::venue::in_use_p -venue_id $venue_id] } { + ad_complain "This venue is being + used by one or more events. You cannot delete this + venue unless no events are located there." + return 0 + } + return 1 + } +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +events::venue::delete -venue_id $venue_id + +ad_returnredirect "venues" + Index: openacs-4/contrib/packages/events/www/manage/venues-ae.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues-ae.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues-ae.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,12 @@ + +@title;noquote@ +@context;noquote@ + +

    Venue Description

    + + + + +

    Delete this Venue

    + +
    Index: openacs-4/contrib/packages/events/www/manage/venues-ae.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues-ae.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues-ae.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,160 @@ +# events/www/admin/venues-ae.tcl + +ad_page_contract { + Add or edit a venue. + + @param venue_id the venue if we're editing a venue + @param return_url the return url if we're adding a venue + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: venues-ae.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + venue_id:integer,optional + {return_url:optional} +} -properties { + title:onevalue + context:onevalue + in_use_p:onevalue +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] + +if { $package_admin != 1 && $permission_create != 1} { + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +set tz_list [db_list_of_lists get_timezones "select tz, tz_id from timezones order by tz"] +set tz_list [linsert $tz_list 0 ""] + +set iso_list [db_list_of_lists get_isos "select default_name, iso from countries order by default_name"] + +ad_form -name venues_ae -export {return_url} -form { + +venue_id:key + +{venue_name:text(text) + {label "Venue Name"} + {html {size 20}}} + +{address1:text(text),optional + {label "Address 1"} + {html {size 50}}} + +{address2:text(text),optional + {label "Address 2"} + {html {size 50}}} + +{city:text(text),optional + {label "City"} + {html {size 50}}} + +{usps_abbrev:text(text),optional + {label "State"} + {html {size 2}}} + +{postal_code:text(text),optional + {label "Postal Code"} + {html {size 20}}} + +{time_zone:text(select),optional + {label "Time Zone"} + {options $tz_list}} + +{iso:text(select) + {label "Country"} + {options $iso_list}} + +{phone_number:text(text),optional + {label "Phone Number"} + {html {size 30}}} + +{fax_number:text(text),optional + {label "Fax Number"} + {html {size 30}}} + +{email:text(text),optional + {label "Email"} + {html {size 30}}} + +{max_people:integer(text),optional + {label "Maximum Capacity"} + {html {size 20}}} + +{needs_reserve_p:text(select) + {label "Needs Reservation"} + {options {{No f} {Yes t}}}} + +{description:text(textarea),optional + {label "Description"} + {html {cols 70 rows 8 wrap soft}} + {help_text "Include directions"}} + +} -select_query_name select_venue -validate { + +} -new_data { + set package_id [ad_conn package_id] + set venue_id [events::venue::new -venue_id $venue_id \ + -package_id $package_id \ + -venue_name $venue_name \ + -address1 $address1 \ + -address2 $address2 \ + -city $city \ + -usps_abbrev $usps_abbrev \ + -postal_code $postal_code \ + -time_zone $time_zone \ + -iso $iso \ + -phone_number $phone_number \ + -fax_number $fax_number \ + -email $email \ + -needs_reserve_p $needs_reserve_p \ + -max_people $max_people \ + -description $description ] + +} -edit_data { + + events::venue::edit -venue_id $venue_id \ + -venue_name $venue_name \ + -address1 $address1 \ + -address2 $address2 \ + -city $city \ + -usps_abbrev $usps_abbrev \ + -postal_code $postal_code \ + -time_zone $time_zone \ + -iso $iso \ + -phone_number $phone_number \ + -fax_number $fax_number \ + -email $email \ + -needs_reserve_p $needs_reserve_p \ + -max_people $max_people \ + -description $description + +} -after_submit { + + if {[exists_and_not_null return_url]} { + ad_returnredirect "$return_url&venue_id=$venue_id" + } else { + ad_returnredirect "venues" + } + ad_script_abort +} + +if { ![ad_form_new_p -key venue_id] } { + set title "Update a Venue" + set context [ad_context_bar [list "venues" "Venues"] " Edit Venue"] + set in_use_p [events::venue::in_use_p -venue_id $venue_id] +} else { + set title "Add a New Venue" + set context [ad_context_bar [list "venues" "Venues"] " New Venue"] + set in_use_p 1 + element set_value venues_ae iso "US" +} + +ad_return_template + + Index: openacs-4/contrib/packages/events/www/manage/venues-ae.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues-ae.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues-ae.xql 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,14 @@ + + + + + + select venue_name, address1, address2, city, usps_abbrev, postal_code, iso, + time_zone, phone_number, fax_number, email, + needs_reserve_p, max_people, description + from events_venues + where venue_id = :venue_id + + + + Index: openacs-4/contrib/packages/events/www/manage/venues-connecting.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues-connecting.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues-connecting.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,11 @@ + +Connecting/Disconnecting Venues +@context_bar;noquote@ + +

    Connecting/Disconnecting Venues

    + +

    Venue : @venue_name@

    + +
    + +
    Index: openacs-4/contrib/packages/events/www/manage/venues-connecting.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues-connecting.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues-connecting.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,78 @@ +# events/www/admin/venues-connecting.tcl + +ad_page_contract { + Allows admins to connect/disconnect venues. + + @param venue_id the venue to edit + + @author Brad Duell (bduell@ncacasi.org) +} { + {venue_id:naturalnum,notnull} +} -validate { + venue_exists -requires {venue_id} { + if { ![db_0or1row activity_exists "select venue_name from events_venues where venue_id=:venue_id"] } { + ad_complain "We couldn't find the venue you asked for." + return 0 + } + return 1 + } +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] + +if { $package_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +set context_bar [ad_context_bar [list "venues" "Venues"] " Venue Connections"] + +form create venue + +element create venue venue_id \ + -label "Venue ID" \ + -datatype integer \ + -widget hidden + +element create venue connect_to_id \ + -label "Connect Venue To" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::venue::venues_get_connecting_options -this_venue_id $venue_id -connecting "t"] \ + -optional \ + -value "" + +element create venue disconnect_from_id \ + -label "Disconnect Venue From" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::venue::venues_get_connecting_options -this_venue_id $venue_id -connecting "f"] \ + -optional \ + -value "" + +if {[template::form is_valid venue]} { + template::form get_values venue \ + venue_id connect_to_id disconnect_from_id + + if { ![empty_string_p $connect_to_id] } { + # Connect + events::venue::connect -left_id $venue_id -right_id $connect_to_id + } + if { ![empty_string_p $disconnect_from_id] } { + # Disconnect + events::venue::disconnect -left_id $venue_id -right_id $disconnect_from_id + } + ad_returnredirect "venues" + ad_script_abort +} + +element set_properties venue venue_id -value $venue_id + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/venues-hierarchy.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues-hierarchy.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues-hierarchy.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,11 @@ + +Venue Hierarchy +@context_bar;noquote@ + +

    Venue Hierarchy

    + +

    Venue : @venue_name@

    + +
    + +
    Index: openacs-4/contrib/packages/events/www/manage/venues-hierarchy.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues-hierarchy.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues-hierarchy.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,108 @@ +# events/www/admin/venues-hierarchy.tcl + +ad_page_contract { + Allows admins to make levels of venues. + + @param venue_id the venue to edit + + @author Brad Duell (bduell@ncacasi.org) +} { + {venue_id:naturalnum,notnull} +} -validate { + venue_exists -requires {venue_id} { + if { ![db_0or1row activity_exists "select venue_name from events_venues where venue_id=:venue_id"] } { + ad_complain "We couldn't find the venue you asked for." + return 0 + } + return 1 + } +} +set user_id [ad_conn user_id] +set package_id [ad_conn package_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] + + +if { $package_admin != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +set context_bar [ad_context_bar [list "venues" "Venues"] " Venue Hierarchy"] + +form create venue + +element create venue venue_id \ + -label "Venue ID" \ + -datatype integer \ + -widget hidden + +element create venue add_parent_id \ + -label "Add Parent" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::venue::venues_get_hierarchy_options -this_venue_id $venue_id -parent_p "t" -add_p "t"] \ + -optional \ + -value "" + +element create venue remove_parent_id \ + -label "Remove Parent" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::venue::venues_get_hierarchy_options -this_venue_id $venue_id -parent_p "t" -add_p "f"] \ + -optional \ + -value "" + +element create venue add_child_id \ + -label "Add Child" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::venue::venues_get_hierarchy_options -this_venue_id $venue_id -parent_p "f" -add_p "t"] \ + -optional \ + -value "" + +element create venue remove_child_id \ + -label "Remove Child" \ + -datatype search \ + -widget search \ + -result_datatype integer \ + -options [events::venue::venues_get_hierarchy_options -this_venue_id $venue_id -parent_p "f" -add_p "f"] \ + -optional \ + -value "" + +if {[template::form is_valid venue]} { + template::form get_values venue \ + venue_id add_parent_id remove_parent_id add_child_id remove_child_id + + if { ![empty_string_p $add_parent_id] } { + # Add Parent + if { $add_parent_id != $add_child_id } { + events::venue::make_child_of -parent_id $add_parent_id -child_id $venue_id + } + } + if { ![empty_string_p $remove_parent_id] } { + # Remove Parent + events::venue::dechildize -parent_id $remove_parent_id -child_id $venue_id + } + if { ![empty_string_p $add_child_id] } { + # Add Child + if { $add_parent_id != $add_child_id } { + events::venue::make_child_of -parent_id $venue_id -child_id $add_child_id + } + } + if { ![empty_string_p $remove_child_id] } { + # Remove Child + events::venue::dechildize -parent_id $venue_id -child_id $remove_child_id + } + ad_returnredirect "venues" + ad_script_abort +} + +element set_properties venue venue_id -value $venue_id + +ad_return_template \ No newline at end of file Index: openacs-4/contrib/packages/events/www/manage/venues.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues.adp 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,14 @@ + +Venues +@context_bar;noquote@ + + + +

    Venues

    + +

    ParentsChildren of Venue : @venue_name@

    + +@table;noquote@ Index: openacs-4/contrib/packages/events/www/manage/venues.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/events/www/manage/venues.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/events/www/manage/venues.tcl 23 Nov 2004 20:05:54 -0000 1.1 @@ -0,0 +1,75 @@ +# File: events/www/admin/venues.tcl + +ad_page_contract { + Lists event venues. + + @param orderby for ad_table + + @author Michael Steigman (michael@steigman.net) + @author Bryan Che (bryanche@arsdigita.com) + @cvs_id $Id: venues.tcl,v 1.1 2004/11/23 20:05:54 annyf Exp $ +} { + {orderby "venue_name"} + {venue_id:optional ""} + {parent_p:optional "f"} +} -validate { + venue_exists -requires {venue_id} { + if { ![db_0or1row activity_exists "select venue_name from events_venues where venue_id=:venue_id"] } { + ad_complain "We couldn't find the venue you asked for." + return 0 + } + return 1 + } +} + +set context_bar [ad_context_bar "Venues"] +set package_id [ad_conn package_id] +set user_id [ad_conn user_id] +set package_admin [permission::permission_p -object_id $package_id -party_id $user_id -privilege "admin"] +set permission_create [permission::permission_p -object_id $package_id -party_id $user_id -privilege "create"] + +if { $package_admin != 1 && $permission_create != 1} { + + doc_return 200 text/html "

    Permission Denied

    + You don't have permission to admin Events Management. " + ad_script_abort +} + + +#the columns for ad_table +set col [list venue_name city state max_people connecting] + +set table_def { + {venue_name "Venue Name" {} {$venue_name}} + {city "City" {} {$city}} + {state "State" {} {$state}} + {max_people "Max People" {} {$max_people}} + {connecting "Connecting" {} {change [events::venue::connecting -venue_id $venue_id]  (parents)  (children)  (add/remove hierarchy)}} +} + +if { [empty_string_p $venue_id] } { + # Select top-level venues only + set sql " + select v.venue_id, v.venue_name, v.city, + v.usps_abbrev as state, max_people + from events_venues v where venue_id not in (select child_venue_id from events_venues_venues_map) and package_id = :package_id + [ad_order_by_from_sort_spec $orderby $table_def]" +} else { + if { $parent_p } { + # Select parent venues (if any) for this venue + set sql " + select v.venue_id, v.venue_name, v.city, + v.usps_abbrev as state, max_people + from events_venues v where venue_id in ([events::venue::all_parents_or_children -venue_id $venue_id -parent_p "t" -sql_p "t"]) + [ad_order_by_from_sort_spec $orderby $table_def]" + } else { + # Select children venues (if any) for this venue + set sql " + select v.venue_id, v.venue_name, v.city, + v.usps_abbrev as state, max_people + from events_venues v where venue_id in ([events::venue::all_parents_or_children -venue_id $venue_id -parent_p "f" -sql_p "t"]) + [ad_order_by_from_sort_spec $orderby $table_def]" + } +} + +set table [ad_table -Tcolumns $col -Tmissing_text "There are no venues to display" -Torderby $orderby venues_list $sql $table_def]