Emmanuel BENOîT
d28f5741fe
In addition to normal dependencies, the application now supports sub-tasks. Sub-tasks can be added into any existing task (including other sub-tasks, Inception-style). Dependencies can only be added between global tasks, or between sub-tasks of the same task. It is no longer possible to mark a task as finished if it has incomplete sub-tasks, and conversedly, it is not possible to reactivate a sub-task if its parent is marked as completed. A pair of buttons allowing tasks to be moved up and down in the task hierarachy have been added.
43 lines
990 B
PL/PgSQL
43 lines
990 B
PL/PgSQL
/*
|
|
* Triggers to handle task containers
|
|
*/
|
|
|
|
|
|
DROP FUNCTION IF EXISTS tgf_item_tc_ai( ) CASCADE;
|
|
CREATE FUNCTION tgf_item_tc_ai( )
|
|
RETURNS TRIGGER
|
|
LANGUAGE PLPGSQL
|
|
SECURITY DEFINER
|
|
AS $tgf_item_tc_ai$
|
|
BEGIN
|
|
INSERT INTO task_containers ( item_id )
|
|
VALUES ( NEW.item_id );
|
|
RETURN NEW;
|
|
END;
|
|
$tgf_item_tc_ai$;
|
|
|
|
REVOKE EXECUTE ON FUNCTION tgf_item_tc_ai( ) FROM PUBLIC;
|
|
|
|
CREATE TRIGGER tg_item_tc_ai AFTER INSERT ON items
|
|
FOR EACH ROW EXECUTE PROCEDURE tgf_item_tc_ai( );
|
|
|
|
|
|
DROP FUNCTION IF EXISTS tgf_task_tc_ai( ) CASCADE;
|
|
CREATE FUNCTION tgf_task_tc_ai( )
|
|
RETURNS TRIGGER
|
|
LANGUAGE PLPGSQL
|
|
SECURITY DEFINER
|
|
AS $tgf_task_tc_ai$
|
|
BEGIN
|
|
INSERT INTO task_containers ( task_id )
|
|
VALUES ( NEW.task_id );
|
|
INSERT INTO logical_task_containers ( task_id )
|
|
VALUES ( NEW.task_id );
|
|
RETURN NEW;
|
|
END;
|
|
$tgf_task_tc_ai$;
|
|
|
|
REVOKE EXECUTE ON FUNCTION tgf_task_tc_ai( ) FROM PUBLIC;
|
|
|
|
CREATE TRIGGER tg_task_tc_ai AFTER INSERT ON tasks
|
|
FOR EACH ROW EXECUTE PROCEDURE tgf_task_tc_ai( );
|