From f0f5688adac46361bb0e252e92a38f2ed40a5556 Mon Sep 17 00:00:00 2001 From: Yves Christian Kpakpo <yveschristian.kpakpo@maarch.org> Date: Tue, 19 Feb 2013 18:50:11 +0000 Subject: [PATCH] =?UTF-8?q?Update:=20Ajout=20des=20fonctionnalit=C3=A9s=20?= =?UTF-8?q?de=20workflow=20dossiers=20au=20trunk=20(core)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/trunk/core/class/StatusControler.php | 6 ++++++ core/trunk/core/class/class_security.php | 4 +++- core/trunk/core/manage_action.php | 10 ++++++++-- core/trunk/core/xml/actions_pages.xml | 16 ++++++++++++++++ core/trunk/data_en.sql | 4 ++-- core/trunk/data_fr.sql | 4 ++-- core/trunk/data_mlb_fr.sql | 10 +++++----- core/trunk/structure.sql | 9 ++++++++- 8 files changed, 50 insertions(+), 13 deletions(-) diff --git a/core/trunk/core/class/StatusControler.php b/core/trunk/core/class/StatusControler.php index 0e59b3b6d6f..e21269e8d8b 100644 --- a/core/trunk/core/class/StatusControler.php +++ b/core/trunk/core/class/StatusControler.php @@ -257,6 +257,12 @@ class Maarch_Core_Class_StatusControler && $status->can_be_modified != 'N')) { $status->can_be_modified = 'Y'; } + + if (!isset($status->is_folder_status) + || ($status->is_folder_status != 'N' + && $status->is_folder_status != 'Y')) { + $status->is_folder_status = 'N'; + } $_SESSION['service_tag'] = 'status_check'; $core = new core_tools(); diff --git a/core/trunk/core/class/class_security.php b/core/trunk/core/class/class_security.php index 97177d5a94b..ffc192bfaac 100644 --- a/core/trunk/core/class/class_security.php +++ b/core/trunk/core/class/class_security.php @@ -761,7 +761,9 @@ class security extends dbquery if( isset($_SESSION['user']['baskets'][$ind_bask]['clause']) && trim($_SESSION['user']['baskets'][$ind_bask]['clause'] - ) <> '') { + ) <> '' + && $_SESSION['user']['baskets'][$ind_bask]['is_folder_basket'] == 'N' + ) { $basketQuery .= ' or (' . $_SESSION['user']['baskets'][$ind_bask]['clause'] . ')'; diff --git a/core/trunk/core/manage_action.php b/core/trunk/core/manage_action.php index cdce605b1c1..dcfc42e9321 100644 --- a/core/trunk/core/manage_action.php +++ b/core/trunk/core/manage_action.php @@ -140,7 +140,10 @@ elseif(trim($_POST['req']) == 'change_status' && !empty($_POST['values']) && !em $arr_id[$i] = str_replace('#', '', $arr_id[$i]); $result .= $arr_id[$i].'#'; if (trim($_POST['new_status']) <> '') { - if ($_POST['table'] == 'rm_ios') { + if ($_POST['table'] == 'folders') { + $query_str = "update " . $_POST['table'] . " set status = '" + . $_POST['new_status'] . "' where folders_system_id = " . $arr_id[$i]; + } else if ($_POST['table'] == 'rm_ios') { $query_str = "update " . $_POST['table'] . " set status = '" . $_POST['new_status'] . "' where io_id = " . $arr_id[$i]; } else { @@ -216,7 +219,10 @@ else $arr_id[$i] = str_replace('#', '', $arr_id[$i]); $result .= $arr_id[$i].'#'; if (trim($status) <> '') { - if ($_POST['table'] == 'rm_ios') { + if ($_POST['table'] == 'folders') { + $query_str = "update " . $_POST['table'] . " set status = '" + . $status . "' where folders_system_id = " . $arr_id[$i]; + } else if ($_POST['table'] == 'rm_ios') { $query_str = "update " . $_POST['table'] . " set status = '" . $status . "' where io_id = " . $arr_id[$i]; } else { diff --git a/core/trunk/core/xml/actions_pages.xml b/core/trunk/core/xml/actions_pages.xml index 6dafa1605e9..8e1a0bfb178 100644 --- a/core/trunk/core/xml/actions_pages.xml +++ b/core/trunk/core/xml/actions_pages.xml @@ -159,4 +159,20 @@ An action page is described in a ACTIONPAGE tag : <MODULE>records_management</MODULE> <FLAG_CREATE>false</FLAG_CREATE> </ACTIONPAGE> + <ACTIONPAGE> + <ID>confirm_folder_status</ID> + <LABEL>_CONFIRM_FOLDER_STATUS</LABEL> + <NAME>confirm_folder_status</NAME> + <ORIGIN>module</ORIGIN> + <MODULE>folder</MODULE> + <FLAG_CREATE>false</FLAG_CREATE> + </ACTIONPAGE> + <ACTIONPAGE> + <ID>redirect_folder</ID> + <LABEL>_REDIRECT_FOLDER</LABEL> + <NAME>redirect_folder</NAME> + <ORIGIN>module</ORIGIN> + <MODULE>folder</MODULE> + <FLAG_CREATE>false</FLAG_CREATE> + </ACTIONPAGE> </ROOT> diff --git a/core/trunk/data_en.sql b/core/trunk/data_en.sql index 27cd5bbee4d..2cb77f54711 100644 --- a/core/trunk/data_en.sql +++ b/core/trunk/data_en.sql @@ -141,7 +141,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', 'ph INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', 'physical_archive_batch_manage'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', '_print_sep'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'my_alerts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'use_alerts_on_doc'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'use_alerts_on_folder'); @@ -156,7 +156,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'clo INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'print_details'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'my_alerts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'use_alerts_on_doc'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'use_alerts_on_folder'); diff --git a/core/trunk/data_fr.sql b/core/trunk/data_fr.sql index 1b0665320e8..d871f8e6b6e 100644 --- a/core/trunk/data_fr.sql +++ b/core/trunk/data_fr.sql @@ -141,7 +141,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', 'ph INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', 'physical_archive_batch_manage'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('ARCHIVISTS', '_print_sep'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'my_alerts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'use_alerts_on_doc'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'use_alerts_on_folder'); @@ -156,7 +156,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'clo INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'print_details'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('EMPLOYEES', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'my_alerts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'use_alerts_on_doc'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('MANAGERS', 'use_alerts_on_folder'); diff --git a/core/trunk/data_mlb_fr.sql b/core/trunk/data_mlb_fr.sql index 7d021cf7870..7896ecbd0e0 100644 --- a/core/trunk/data_mlb_fr.sql +++ b/core/trunk/data_mlb_fr.sql @@ -90,7 +90,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'c INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'add_copy_in_process'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'admin_templates'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'view_versions'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'add_links'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESPONSABLE', 'update_case'); @@ -113,7 +113,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'add_cas INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'update_list_diff_in_details'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'create_folder'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'add_new_version'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'add_links'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('AGENT', 'update_case'); @@ -136,7 +136,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'upda INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'reports'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'add_new_version'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'admin'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'admin_architecture'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'my_contacts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('COURRIER', 'put_in_validation'); @@ -171,7 +171,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('ELU', 'tag_view' INSERT INTO usergroups_services (group_id, service_id) VALUES ('ELU', 'add_tag_to_res'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'adv_search_mlb'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'view_technical_infos'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'add_links'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('FINANCE', 'view_baskets'); @@ -203,7 +203,7 @@ INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'update_list_diff_in_details'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'reports'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'admin'); -INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'search_customer'); +INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'view_folder_tree'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'my_contacts'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'view_baskets'); INSERT INTO usergroups_services (group_id, service_id) VALUES ('RESP_COURRIER', 'join_res_case'); diff --git a/core/trunk/structure.sql b/core/trunk/structure.sql index 2d6483d2449..ba2c163062a 100644 --- a/core/trunk/structure.sql +++ b/core/trunk/structure.sql @@ -27,6 +27,7 @@ CREATE TABLE actions label_action character varying(255), id_status character varying(10), is_system character(1) NOT NULL DEFAULT 'N'::bpchar, + is_folder_action character(1) NOT NULL DEFAULT 'N'::bpchar, enabled character(1) NOT NULL DEFAULT 'Y'::bpchar, action_page character varying(255), history character(1) NOT NULL DEFAULT 'N'::bpchar, @@ -235,6 +236,7 @@ CREATE TABLE status id character varying(10) NOT NULL, label_status character varying(50) NOT NULL, is_system character(1) NOT NULL DEFAULT 'Y'::bpchar, + is_folder_status character(1) NOT NULL default 'N'::bpchar, img_filename character varying(255), maarch_module character varying(255) NOT NULL DEFAULT 'apps'::character varying, can_be_searched character(1) NOT NULL DEFAULT 'Y'::bpchar, @@ -683,6 +685,7 @@ CREATE TABLE baskets basket_clause text NOT NULL, is_generic character varying(6) NOT NULL DEFAULT 'N'::character varying, is_visible character(1) NOT NULL DEFAULT 'Y'::bpchar, + is_folder_basket character (1) NOT NULL default 'N'::bpchar, enabled character(1) NOT NULL DEFAULT 'Y'::bpchar, CONSTRAINT baskets_pkey PRIMARY KEY (coll_id, basket_id) ) @@ -709,6 +712,8 @@ CREATE TABLE groupbasket can_redirect character(1) NOT NULL DEFAULT 'N'::bpchar, can_delete character(1) NOT NULL DEFAULT 'N'::bpchar, can_insert character(1) NOT NULL DEFAULT 'N'::bpchar, + list_lock_clause text, + sublist_lock_clause text, CONSTRAINT groupbasket_pkey PRIMARY KEY (group_id, basket_id) ) WITH (OIDS=FALSE); @@ -894,9 +899,11 @@ CREATE TABLE folders description character varying(255) DEFAULT NULL::character varying, author character varying(255) DEFAULT NULL::character varying, typist character varying(255) DEFAULT NULL::character varying, - status character varying(50) NOT NULL DEFAULT 'NEW'::character varying, + status character varying(50) NOT NULL DEFAULT 'FOLDNEW'::character varying, folder_level smallint DEFAULT (1)::smallint, creation_date timestamp without time zone NOT NULL, + destination character varying(50) DEFAULT NULL, + dest_user character varying(128) DEFAULT NULL, folder_out_id bigint, video_status character varying(10) DEFAULT NULL, video_user character varying(128) DEFAULT NULL, -- GitLab