Forum OpenACS Development: Calendar Problems

Collapse
Posted by Kurt Schwarz on
I'm trying to get my Calendar to work with little success. Is there a fix or update? I am running v1.0 of the calendar, postgres 7.3, acs 4.5:

The first problem is that there is a function call for NEXT_DAY which is not understood. I couldn't not find it in the database functions. This happens in the weekly view.

The second problem I am running into is when I try to enter a new event. I get the following:

Database operation "0or1row" failed (exception NSDB, "Query was   
not a statement returning rows.")   
    while executing   
"ns_pg_bind 0or1row nsdb0 {   
        select timespan__new (       
                                        timestamp(:start_date),   
                                        timestamp(:end_date)   
        )    
   
      }"   
    ("uplevel" body line 1)   
    invoked from within   
"uplevel $ulevel [list ns_pg_bind $type $db $sql"   
    invoked from within   
"db_exec 0or1row $db $full_statement_name $sql"   
    invoked from within   
"if {[regexp -nocase -- {^s*select} $test_sql match]} {   
            db_qd_log Debug "PLPGSQL: bypassed anon function"   
            set selection [db_ex..."   
    ("uplevel" body line 6)   
    invoked from within   
"uplevel 1 $code_block "   
    invoked from within   
"db_with_handle db {   
        # plsql calls that are simple selects bypass the plpgsql    
        # mechanism for creating anonymous functions (OpenACS - ..."   
    (procedure "db_exec_plsql" line 13)   
    invoked from within   
"db_exec_plsql insert_timespan {   
        begin   
        :1 := timespan.new(   
          start_date => to_date(:start_date,:date_format),   
          end_date   => to_date(:end_date,:da..."   
    (procedure "cal_item_create" line 21)   
    invoked from within   
"cal_item_create $start_datetime  $end_datetime  $name  $description    
$calendar_id  $creation_ip  $creation_user"   
    invoked from within   
"set cal_item_id [cal_item_create $start_datetime  $end_datetime    
$name  $description  $calendar_id  $creation_ip  $creation_user]"   
    ("uplevel" body line 112)   
    invoked from within   
"uplevel {   
          # /packages/calendar/www/cal-item-create.tcl   
   
ad_page_contract {   
       
    Creation of new calendar item   
       
    @author Gary Jin (gj..."   
    (procedure   
"code::tcl::/web/myserver/packages/calendar/www/cal-item-cre..."   
line 2)   
    invoked from within   
"code::tcl::$__adp_stub"   
    invoked from within   
"if { [file exists $__adp_stub.tcl] } {   
   
      # ensure that data source preparation procedure exists and is   
up-to-date   
      adp_init tcl $__adp_stub   
..."   
    ("uplevel" body line 3)   
    invoked from within   
"uplevel {   
   
    if { [file exists $__adp_stub.tcl] } {   
   
      # ensure that data source preparation procedure exists and is   
up-to-date   
      adp_init t..."   
    (procedure "adp_prepare" line 3)   
    invoked from within   
"adp_prepare "   
    (procedure "template::adp_parse" line 30)   
    invoked from within   
"template::adp_parse [file root [ad_conn file]] {}"   
    (procedure "adp_parse_ad_conn_file" line 7)   
    invoked from within   
"$handler"   
    ("uplevel" body line 2)   
    invoked from within   
"uplevel $code"   
    invoked from within   
"ad_try {   
        $handler   
      } ad_script_abort val {   
        # do nothing   
      }"   
    invoked from within   
"rp_serve_concrete_file [ad_conn file]"   
    (procedure "rp_serve_abstract_file" line 60)   
    invoked from within   
"rp_serve_abstract_file "$root/$path""   
    ("uplevel" body line 2)   
    invoked from within   
"uplevel $code"   
    invoked from within   
"ad_try {   
        rp_serve_abstract_file "$root/$path"   
        set tcl_url2file([ad_conn url]) [ad_conn file]   
        set tcl_url2path_info([ad_conn url]) [ad_conn   
path_inf..."

Any help is appreciated.

Collapse
Posted by Dan Wickstrom on
Timespan__new is defined in the acs-events package, and the .info file for calendar had a typo, so the events package was not required to install calendar.  I assume that you don't have acs-events installed yet?  I've fixed the .info file, and you should be able to fix your problem by installing acs-events from the package manager.
Collapse
Posted by Ben Adida on
Kurt,

calendar in acs 4.5 has bugs and annoying aspects. Thanks to the dotLRN
effort and Tom, though the one in acs 4.6 should be better. If you can use the
CVS head instead of the tarball for now, you'll be in better shape.

Collapse
Posted by Tom Jackson on

You also need the most recent acs-datetime from cvs. I'll try to fix the few non-critical calendar bugs that I know about this weekend, in time for the freeze.

Collapse
Posted by Kurt Schwarz on
I hate to be ignorant...but since ignorance is bliss, I'm happy to say: I'm confused
:-

Between tarball and cvs, not sure which is which and what is what and where is where???

I downloaded the nightly tarball. Now what? (how pathetic is that?)

Collapse
Posted by Tom Jackson on

If I could figure out how to get the cvs method to work more often than once every few months, I would help, but I can't. I think you have to do things like set CVS_ROOT to something, use cvs login, then cvs checkout. But then there is other stuff to know.

Collapse
Posted by Jeff Davis on
One command to rule them all and in the darkness bind them:
cvs -z3 -d :pserver:anonymous@openacs.org:/cvsroot co acs-datetime
You don't need to do anything more than this to check out a module (other than be in a place where you want it to create the directory). Instead of acs-datetime you could type "acs-core" to get the core or "openacs-4" to get the whole thing. The -z3 flag tells cvs to compress the data it sends which can speed up a large checkout.

Once you have a checkout you no longer need to provide the -d flag cvs will get the information from the files in the CVS directories.

Other useful commands:

  • cvs update -Pd to update your checkout to the current cvs version including any new directories.
  • cvs log file to see the log messages for file
  • cvs annotate file Useful for assigning blame.
  • cvs diff file will diff your local file versus the repository.
One thing to keep in mind is that with an anonymous checkout, nothing you do will affect the server so you should go ahead and play around with the commands to figure out what they do...
Collapse
Posted by Kurt Schwarz on
You guys rock!

How does the version control module figure into this if at all?