Add a 'status' column to the calendar_item table which gets the STATUS property.

This commit is contained in:
Andrew McMillan 2007-02-13 11:37:25 +13:00
parent 1aaff0bb1d
commit c89d724058
3 changed files with 14 additions and 3 deletions

View File

@ -18,6 +18,16 @@ UPDATE relationship SET rt_id=4 WHERE rt_id=5;
DELETE FROM relationship_type WHERE rt_id = 5;
-- Add a 'status' column to calendar_item which will contain the parsed value of the STATUS property
ALTER TABLE calendar_item ADD COLUMN status TEXT;
UPDATE calendar_item SET status = 'CONFIRMED';
UPDATE calendar_item SET status = 'CANCELLED' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*CANCELLED');
UPDATE calendar_item SET status = 'TENTATIVE' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*TENTATIVE');
UPDATE calendar_item SET status = 'NEEDS-ACTION' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*NEEDS-ACTION');
UPDATE calendar_item SET status = 'IN-PROCESS' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*IN-PROCESS');
UPDATE calendar_item SET status = 'DRAFT' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*DRAFT');
UPDATE calendar_item SET status = 'FINAL' WHERE calendar_item.dav_name IN (SELECT dav_name FROM caldav_data WHERE caldav_data.caldav_data ~ 'STATUS.*:.*FINAL');
SELECT new_db_revision(1,1,7, 'July' );
COMMIT;
ROLLBACK;

View File

@ -54,6 +54,7 @@ CREATE TABLE calendar_item (
url TEXT,
percent_complete NUMERIC(7,2),
tz_id TEXT REFERENCES time_zone( tz_id ),
status TEXT,
-- Cascade updates / deletes from the caldav_data table
CONSTRAINT caldav_exists FOREIGN KEY ( user_no, dav_name )

View File

@ -178,8 +178,8 @@ if ( $put_action_type != 'INSERT' ) {
}
$sql .= <<<EOSQL
INSERT INTO calendar_item (user_no, dav_name, dav_etag, uid, dtstamp, dtstart, dtend, summary, location, class, transp,
description, rrule, tz_id, last_modified, url, priority, created, due, percent_complete )
VALUES ( ?, ?, ?, ?, ?, ?, $dtend, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
description, rrule, tz_id, last_modified, url, priority, created, due, percent_complete, status )
VALUES ( ?, ?, ?, ?, ?, ?, $dtend, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
COMMIT;
EOSQL;
@ -187,7 +187,7 @@ $qry = new PgQuery( $sql, $request->user_no, $request->path, $etag, $ic->Get('ui
$ic->Get('dtstart'), $ic->Get('summary'), $ic->Get('location'),
$ic->Get('class'), $ic->Get('transp'), $ic->Get('description'), $ic->Get('rrule'), $ic->Get('tz_id'),
$last_modified, $ic->Get('url'), $ic->Get('priority'), $ic->Get('created'),
$ic->Get('due'), $ic->Get('percent-complete')
$ic->Get('due'), $ic->Get('percent-complete'), $ic->Get('status')
);
$qry->Exec("PUT");
dbg_error_log( "PUT", "User: %d, ETag: %s, Path: %s", $session->user_no, $etag, $request->path);