_calendar__cal_item_edit_recurrence (private)

 _calendar__cal_item_edit_recurrence

Defined in packages/calendar/tcl/test/cal-item-procs.tcl

Partial Call Graph (max 5 caller/called nodes):
%3 aa_equals aa_equals (public) aa_false aa_false (public) aa_log aa_log (public) aa_log_result aa_log_result (public) aa_run_with_teardown aa_run_with_teardown (public) _calendar__cal_item_edit_recurrence _calendar__cal_item_edit_recurrence _calendar__cal_item_edit_recurrence->aa_equals _calendar__cal_item_edit_recurrence->aa_false _calendar__cal_item_edit_recurrence->aa_log _calendar__cal_item_edit_recurrence->aa_log_result _calendar__cal_item_edit_recurrence->aa_run_with_teardown

Testcases:
No testcase defined.
Source code:
        
        set _aa_export {}
        set body_count 1
        foreach testcase_body {{
    aa_run_with_teardown  -rollback  -test_code {
            # create a test calendar
            set calendar_id [calendar::create [ad_conn user_id] t]

            # create a recurring calendar item
            set ci_start_date [clock format [clock seconds] -format "%Y-%m-%d"]
            set ci_end_date [clock format [clock scan "tomorrow" -base [clock seconds]] -format "%Y-%m-%d"]
            set recur_until [clock format [clock scan "10 days" -base [clock seconds]] -format "%Y-%m-%d"]
            set ci_name "name"
            set ci_description "description"
            set cal_item_id  [calendar::item::new  -start_date $ci_start_date  -end_date $ci_end_date  -name $ci_name  -description $ci_description  -calendar_id $calendar_id]

            calendar::item::get  -cal_item_id $cal_item_id -array cal_item
            aa_equals "Name is correct"  $ci_name $cal_item(name)
            aa_equals "Description is correct"  $ci_description $cal_item(description)
            # edit the time of the event
            set recurrence_id  [calendar::item::add_recurrence  -cal_item_id $cal_item_id  -interval_type "day"  -every_n 1  -days_of_week ""  -recur_until $recur_until]

            aa_log "Recurrence_id = '${recurrence_id}'"

            # compare recurrent events
            set passed 1
            set recurrence_event_ids [list]
            set name ""
            set recurrence_event_ids [db_list q {
                select cal_item_id as cal_item_id from acs_events, cal_items
                where cal_item_id=event_id and recurrence_id=:recurrence_id
            }]
            foreach event_id $recurrence_event_ids {
                 calendar::item::get -cal_item_id $event_id -array cal_item
                set passed [expr {$passed && $ci_name eq $cal_item(name)}]
                # for some reason the description is not set

                set passed [expr {$passed && $ci_description eq $cal_item(description)}]
                lappend recurrence_event_ids $event_id
            }
            aa_true "Name correct on all recurrences" $passed
            # aa_log $recurrence_event_ids
            # update time only
            set ci_start_date [clock format [clock scan "1 month" -base [clock scan $ci_start_date]] -format "%Y-%m-%d"]
            set ci_end_date [clock format [clock scan "1 month" -base [clock scan $ci_end_date]] -format "%Y-%m-%d"]

            calendar::item::edit  -cal_item_id $cal_item_id  -start_date $ci_start_date  -end_date $ci_end_date  -name $ci_name  -description $ci_description  -edit_all_p t

            set passed 1

            foreach event_id $recurrence_event_ids {
                 calendar::item::get -cal_item_id $event_id -array cal_item
                set passed [expr {$passed && $ci_name eq $cal_item(name)}]
                # for some reason the description is not set
                set passed [expr {$passed && $ci_description eq $cal_item(description)}]
            }
            aa_true "Name correct on all recurrences 2" $passed

            # Update name to be unique per instance
            # aa_log "Recurrence event_ids $recurrence_event_ids"
            foreach event_id $recurrence_event_ids {
                calendar::item::get -cal_item_id $event_id -array cal_item
                set new_names($event_id"name $event_id"
                calendar::item::edit  -cal_item_id $event_id  -start_date $cal_item(start_date)  -end_date $cal_item(end_date)  -name $new_names($event_id)  -description $cal_item(description)
            }
            set passed 1

            foreach event_id $recurrence_event_ids {
                calendar::item::get -cal_item_id $event_id -array cal_item
                set passed [expr {$passed && $new_names($event_id) eq $cal_item(name)}]
                set passed [expr {$passed && $ci_description eq $cal_item(description)}]
            }
            aa_true "New individual names are correct" $passed

            # don't edit name!
            calendar::item::get -cal_item_id $cal_item_id -array cal_item
            calendar::item::edit  -cal_item_id $cal_item_id  -start_date $ci_start_date  -end_date $ci_end_date  -name $cal_item(name)  -description $cal_item(description)  -edit_all_p t

            set passed 1
            foreach event_id $recurrence_event_ids {
                 calendar::item::get -cal_item_id $event_id -array cal_item
                set passed [expr {$passed && $new_names($event_id) eq $cal_item(name)}]
                set passed [expr {$passed && $ci_description eq $cal_item(description)}]
            }
            aa_true "Edited item and New individual names are correct" $passed

            calendar::item::edit  -cal_item_id $cal_item_id  -start_date $ci_start_date  -end_date $ci_end_date  -name "New Name"  -description $cal_item(description)  -edit_all_p t

            set passed 1
            foreach event_id $recurrence_event_ids {
                 calendar::item::get -cal_item_id $event_id -array cal_item
                set passed [expr {$passed && "New Name" eq $cal_item(name)}]
                set passed [expr {$passed && $ci_description eq $cal_item(description)}]
            }
            aa_true "Edited item name and New individual names are updated" $passed

            aa_log "Deleting recurrence"
            calendar::item::delete_recurrence -recurrence_id $recurrence_id
            aa_false "All recurring events have been deleted" [db_0or1row check [subst {
                select 1 from acs_objects where object_id in ([join $recurrence_event_ids ,])
                fetch first 1 rows only
            }]]
        }
}} {
          aa_log "Running testcase body $body_count"
          set ::__aa_test_indent [info level]
          set catch_val [catch $testcase_body msg]
          if {$catch_val != 0 && $catch_val != 2} {
              aa_log_result "fail" "cal_item_edit_recurrence (body $body_count): Error during execution: $msg, stack trace: \n$::errorInfo"
          }
          incr body_count
        }
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: