OpenACS Calendar

The OpenACS calendar package is a web-based calendar package. In its current form it provides a UI for storing events that have a time or that last a day, and it offers a list view, a day, week, and month view.

 

The Data Model

Permissions

Calendar uses a lot of custom permissions. Most of them are unused and will be removed eventually. It will then use a Unix-like set of read, write, create, admin permissions.

Calendars

A calendar has a name and an owner and belongs to a package, it also is an acs_object. This goes into the table calendars. A calendar is created via the usual constructor - a "new" function" - and destroyed via the usual destructor - a "delete" function.

The calendar package currently uses its own little category system: calendar item types can be created per package, they are stored in the table cal_item_types

The table cal_party_prefs allows storing customization information per calendar and per user. It is completely unused and I couldn't find any traces of it ever having been used. A similar table will be used in a future version of calendar to store user options though.

Package Documentation

Procedure Files

tcl/apm-callback-procs.tcl       Calendar Package APM callbacks library Procedures that deal with installing, instantiating, mounting. 
tcl/cal-item-procs.tcl       Utility functions for Calendar Applications 
tcl/calendar-callback-procs.tcl       Callbacks for the search package. 
tcl/calendar-compatibility-procs.tcl       These procs are there to ensure backwards compatibility for possible API breakages. 
tcl/calendar-install-procs.tcl       Calendar install callbacks 
tcl/calendar-outlook-procs.tcl       Utility functions for syncing Calendar with Outlook taken from SloanSpace v1, hacked for OpenACS by Ben. 
tcl/calendar-procs.tcl       Utility functions for Calendar Applications 
tcl/calendar-sc-procs.tcl       Calendar service contract bindings 

Procedures

calendar::adjust_date        
calendar::apm::package_after_upgrade       Upgrade script for the calendar package 
calendar::assign_permissions       given a calendar_id, party_id and a permission this proc will assign the permission to the party the legal permissions are public, private, calendar_read, calendar_write, calendar_delete if the revoke is set, then the given permission will be removed for the party 
calendar::attachments_enabled_p        
calendar::calendar_list        
calendar::compare_day_items_by_current_hour       Compare a day item by the current hour (field 0). 
calendar::create       create a new calendar private_p is default to true since the default calendar is a private calendar 
calendar::delete       Delete a calendar 
calendar::do_notifications        
calendar::from_sql_datetime        
calendar::fts::datasource       returns a datasource for a calendar event to be indexed by the full text search engine. 
calendar::fts::url       returns a url for an event to the search package 
calendar::get       Get calendar info 
calendar::get_item_types       return the item types 
calendar::get_month_multirow_information        
calendar::have_private_p       Check to see if the user has a private calendar. 
calendar::install::package_install       package install callback 
calendar::install::package_uninstall       package uninstall callback 
calendar::install::package_upgrade       Package before-upgrade callback 
calendar::item::add_recurrence       Adds a recurrence for a calendar item 
calendar::item::assign_permission       update the permission of the specific cal_item if revoke is set to revoke, then we revoke all permissions 
calendar::item::dates_valid_p       A sanity check that the start time is before the end time. 
calendar::item::delete       Delete the calendar item 
calendar::item::delete_recurrence       delete a recurrence 
calendar::item::edit       Edit the item 
calendar::item::edit_recurrence       edit a recurrence 
calendar::item::get       Get the data for a calendar item 
calendar::item::new        
calendar::item_type_delete        
calendar::item_type_new       creates a new item type 
calendar::make_datetime       given a date, and a time, construct the proper date string to be imported into oracle. 
calendar::name       Return a calendar's name 
calendar::new        
calendar::notification::get_url       Returns a full URL to the object_id 
calendar::outlook::cal_outlook_gmt_sql       formats the hours to subtract or add to make the date_time be in gmt 
calendar::outlook::format_item       the cal_item_id is obvious. 
calendar::outlook::ics_timestamp_format       the timestamp must be in the format YYYY-MM-DD HH24:MI:SS 
calendar::personal_p       Returns true (1) if this is the user's personal calendar, false (0) otherwise. 
calendar::rename       rename a calendar 
calendar::sc::register_acs_event_fts_impl        
calendar::sc::register_cal_item_fts_impl        
calendar::sc::register_implementations       Register the cal_item content type fts contract 
calendar::sc::unregister_implementations        
calendar::to_sql_datetime       This takes two date chunks, one for date one for time, and combines them correctly. 
calendar_assign_permissions        
calendar_create        
calendar_have_private_p        
calendar_item_add_recurrence       Adds a recurrence for a calendar item 
calendar_make_datetime       given a date, and a time, construct the proper date string to be imported into oracle. 
callback::merge::MergePackageUser::impl::calendar       Merge the calendars of two users. 
callback::merge::MergeShowUserInfo::impl::calendar       Shows the calendar tables user info 

SQL Files

sql/postgresql/cal-item-create.sql        
sql/postgresql/cal-item-drop.sql        
sql/postgresql/cal-table-create.sql        
sql/postgresql/cal-table-drop.sql        
sql/postgresql/calendar-create.sql        
sql/postgresql/calendar-drop.sql        
sql/postgresql/calendar-notifications-init.sql        
sql/postgresql/upgrade/upgrade-2.0d1-2.0b2.sql        
sql/postgresql/upgrade/upgrade-2.1.0b4-2.1.0b5.sql        
sql/postgresql/upgrade/upgrade-2.6.1d2-2.6.1d3.sql        

Content Pages

www/
     admin/
           calendar-create.tcl generation of new group calendar when a party_wide calendar is generated the default permission is that this calendar is
           calendar-delete.tcl Delete calendar
           calendar-edit.adp
           calendar-edit.tcl Add/Edit calendar
           index.adp
           index.tcl Main Calendar Admin Page.
           permissions-user-add.adp
           permissions-user-add.tcl Redirect page for adding users to the permissions list.
           permissions.adp
           permissions.tcl Permissions for the subsite itself.
      cal-item-create-recurrence.adp
      cal-item-create-recurrence.tcl Creation of new recurrence for cal item
      cal-item-delete-all-occurrences.tcl delete all occurrences of a recurring item
      cal-item-delete-confirm.adp
      cal-item-delete-confirm.tcl Confirm Deletion
      cal-item-delete.tcl Delete a calendar item
      cal-item-new.adp
      cal-item-new.tcl Creating a new Calendar Item
      cal-item-outlook.tcl Output an item as ics for Outlook
      cal-item-view.adp
      cal-item-view.tcl View one event
      cal-nav.adp
      cal-nav.tcl Nav page
      cal-options.adp
      cal-options.tcl List all the calendars for which the user has the read privilege.
      calendar-item-types.adp
      calendar-item-types.tcl Manage the calendar item types
     ics/
           index.vuh Output an item as ics for Outlook The expected URL is <cal_item_id>.ics
      index.tcl Main Calendar Page totally redone by Ben
      item-type-delete.tcl Delete an item type
      item-type-new.tcl Add an item type
      mini-calendar.adp
      mini-calendar.tcl
      navbar.adp
      navbar.tcl
      view-list-display.adp
      view-list-display.tcl
      view-month-display.adp
      view-month-display.tcl
      view-one-day-display.adp
      view-one-day-display.tcl
      view-print-display.adp
      view-print-display.tcl
      view-week-display.adp
      view-week-display.tcl
      view.adp
      view.tcl Viewing Calendar Information.
 

 

 

  Contact Us
  Project Open Business Solutions S.L.

Calle Aprestadora 19, 12o-2a

08902 Hospitalet de Llobregat (Barcelona)

Spain

 Tel Europe: +34 609 953 751
 Tel US: +1 415 200 2465
 Mail: info@project-open.com