Index: openacs-4/packages/glossary/sql/postgresql/glossary-workflows.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/glossary/sql/postgresql/glossary-workflows.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/glossary/sql/postgresql/glossary-workflows.sql 31 Oct 2001 20:46:59 -0000 1.1 +++ openacs-4/packages/glossary/sql/postgresql/glossary-workflows.sql 19 Nov 2001 22:26:07 -0000 1.2 @@ -1,329 +1,3 @@ --- glossary/sql/glossary-workflows.sql --- walter@arsdigita.com, 11-26-2000 - --- load some default workflows for the glossary package --- each glossary decides on a workflow - --- create the full term publishing process workflow --- the alternative is a simple workflow (i.e. submit -> approve) - - -create table full_term_publish_proces_cases ( - case_id integer primary key - constraint full_term_publish_proc_case_fk - references wf_cases on delete cascade -); - -select workflow__create_workflow( - 'full_term_publish_process_wf', - 'Full Term Publish Process', - 'Full Term Publish Processes', - 'Fairly sophisticatd standard glossary term publishing. Publisher or Editor create a term. Author writes definition. Editor edits definition. Graphic designer adds and illustration. Editor or publisher approve or reject new term.', - 'full_term_publish_proces_cases', - 'case_id' - ); - -begin; -insert into wf_places ( -place_key, workflow_key, place_name, sort_order -) values ( -'start', 'full_term_publish_process_wf', 'Ready to Author Definition.', 1 -); - -insert into wf_places ( -place_key, workflow_key, place_name, sort_order -) values ( -'before_edit_definiton', 'full_term_publish_process_wf', 'Ready to Edit Definiton', 2 -); - -insert into wf_places ( -place_key, workflow_key, place_name, sort_order -) values ( -'before_add_illustration', 'full_term_publish_process_wf', 'Ready to Add Illustration', 3 -); - -insert into wf_places ( -place_key, workflow_key, place_name, sort_order -) values ( -'before_approve_new_term', 'full_term_publish_process_wf', 'Ready to Approve New Term', 4 -); - -insert into wf_places ( -place_key, workflow_key, place_name, sort_order -) values ( -'end', 'full_term_publish_process_wf', 'Process finished', 5 -); -end; - -begin; -insert into wf_transitions ( -transition_key, transition_name, workflow_key, sort_order, trigger_type -) values ( -'author_definition', 'Author Definition.', 'full_term_publish_process_wf', 1, 'user' -); - -insert into wf_transitions ( -transition_key, transition_name, workflow_key, sort_order, trigger_type -) values ( -'edit_definiton', 'Edit Definiton', 'full_term_publish_process_wf', 2, 'user' -); - -insert into wf_transitions ( -transition_key, transition_name, workflow_key, sort_order, trigger_type -) values ( -'add_illustration', 'Add Illustration', 'full_term_publish_process_wf', 3, 'user' -); - -insert into wf_transitions ( -transition_key, transition_name, workflow_key, sort_order, trigger_type -) values ( -'approve_new_term', 'Approve New Term', 'full_term_publish_process_wf', 4, 'user' -); -end; - -begin; -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction -) values ( -'full_term_publish_process_wf', 'author_definition', 'start', 'in' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction -) values ( -'full_term_publish_process_wf', 'author_definition', -'before_edit_definiton', 'out' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction -) values ( -'full_term_publish_process_wf', 'edit_definiton', -'before_edit_definiton', 'in' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction, guard_callback, guard_description -) values ( -'full_term_publish_process_wf', 'edit_definiton', -'start', 'out', '#', 'Not Is definition correct' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction, -guard_callback, guard_custom_arg, guard_description -) values ( -'full_term_publish_process_wf', 'edit_definiton', 'before_add_illustration', 'out', -'wf_callback.guard_attribute_true', 'edit_definiton_is_definition_correct_p', 'Is definition correct' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction -) values ( -'full_term_publish_process_wf', 'add_illustration', -'before_add_illustration', 'in' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction -) values ( -'full_term_publish_process_wf', 'add_illustration', -'before_approve_new_term', 'out' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction -) values ( -'full_term_publish_process_wf', 'approve_new_term', -'before_approve_new_term', 'in' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction, guard_callback, guard_description -) values ( -'full_term_publish_process_wf', 'approve_new_term', -'before_edit_definiton', 'out', '#', 'Not Approved' -); - -insert into wf_arcs ( -workflow_key, transition_key, place_key, direction, -guard_callback, guard_custom_arg, guard_description -) values ( -'full_term_publish_process_wf', 'approve_new_term', 'end', 'out', -'wf_callback.guard_attribute_true', 'approve_new_term_approved_p', 'Approved' -); -end; - -create function inline_0() returns integer as ' -declare - v_attribute_id integer; -begin - v_attribute_id := workflow__create_attribute( - ''full_term_publish_process_wf'', - ''edit_definiton_is_definition_correct_p'', - ''boolean'', - ''Is definition correct'', - NULL, - NULL, - NULL, - ''t'', - 1, - 1, - NULL, - ''generic'', - ''none'' - ); - - insert into wf_transition_attribute_map ( - workflow_key, transition_key, attribute_id, sort_order - ) values ( - ''full_term_publish_process_wf'', ''edit_definiton'', v_attribute_id, 1); - - return 0; - -end;' language 'plpgsql'; - -select inline_0(); -drop function inline_0(); - -create function inline_0() returns integer as ' -declare - v_attribute_id integer; -begin - v_attribute_id := workflow__create_attribute( - ''full_term_publish_process_wf'', - ''approve_new_term_approved_p'', - ''boolean'', - ''Approved'', - NULL, - NULL, - NULL, - ''t'', - 1, - 1, - NULL, - ''generic'', - ''none'' - ); - - insert into wf_transition_attribute_map ( - workflow_key, transition_key, attribute_id, sort_order - ) values ( - ''full_term_publish_process_wf'', ''approve_new_term'', v_attribute_id, 1 - ); - - return 0; - -end;' language 'plpgsql'; - -select inline_0(); -drop function inline_0(); - -begin; -insert into wf_transition_assignment_map ( -workflow_key, transition_key, assign_transition_key -) values ( -'full_term_publish_process_wf', 'edit_definiton', 'add_illustration' -); - -insert into wf_context_transition_info ( -context_key, workflow_key, transition_key, estimated_minutes -) values ( -'default', 'full_term_publish_process_wf', 'author_definition', 60 -); - -insert into wf_context_transition_info ( -context_key, workflow_key, transition_key, estimated_minutes -) values ( -'default', 'full_term_publish_process_wf', 'edit_definiton', 20 -); - -insert into wf_context_transition_info ( -context_key, workflow_key, transition_key, estimated_minutes -) values ( -'default', 'full_term_publish_process_wf', 'add_illustration', 120 -); - -insert into wf_context_transition_info ( -context_key, workflow_key, transition_key, estimated_minutes -) values ( -'default', 'full_term_publish_process_wf', 'approve_new_term', 10 -); -end; - --- simple term submission process - -create table term_submission_process_cases ( - case_id integer primary key - constraint term_submission_proces_case_fk - references wf_cases on delete cascade -); - -select workflow__create_workflow( - 'term_submission_process_wf', - 'Term Submission Process', - 'Term Submission Processes', - 'User submits new term and its definition (and maybe illustration). Administrator approves or rejects submission.', - 'term_submission_process_cases', - 'case_id' - ); - -begin; - insert into wf_places ( - place_key, workflow_key, place_name, sort_order - ) values ( - 'start', 'term_submission_process_wf', 'Ready to Approve', 1 - ); - - insert into wf_places ( - place_key, workflow_key, place_name, sort_order - ) values ( - 'end', 'term_submission_process_wf', 'Process finished', 2 - ); - - insert into wf_transitions ( - transition_key, transition_name, workflow_key, sort_order, trigger_type - ) values ( - 'approve', 'Approve', 'term_submission_process_wf', 1, 'user' - ); - - insert into wf_arcs ( - workflow_key, transition_key, place_key, direction - ) values ( - 'term_submission_process_wf', 'approve', 'start', 'in' - ); - - insert into wf_arcs ( - workflow_key, transition_key, place_key, direction - ) values ( - 'term_submission_process_wf', 'approve', 'end', 'out' - ); - - insert into wf_context_transition_info ( - context_key, workflow_key, transition_key, estimated_minutes - ) values ( - 'default', 'term_submission_process_wf', 'approve', 10 - ); -end; - --- this is a special case inorder to maintain --- constraint integrity --- has the disadvantage, that is shows up on the workflow pages --- when it is really just a deadend --- oh well - -create table term_go_live_process_cases ( - case_id integer primary key - constraint term_go_live_proces_case_fk - references wf_cases on delete cascade -); - -select workflow__create_workflow( - 'term_go_live_wf', - 'Term Go Live Process', - 'Term Go Live Processes', - 'User submits new term and its definition (and maybe illustration) and it goes live immediately.', - 'term_go_live_process_cases', - 'case_id' - ); - +\i wf-full-term-publish-create.sql +\i wf-term-go-live.sql +\i wf-term-submission.sql \ No newline at end of file