From 0887483ba5bb8b4b941c8e55095c30ceb8f7dc00 Mon Sep 17 00:00:00 2001 From: v-dumas Date: Tue, 4 Nov 2025 10:49:43 +0100 Subject: [PATCH 1/4] =?UTF-8?q?N=C2=B05882=20-=20Audit=20Rule:=20Add=20"Ow?= =?UTF-8?q?ner"=20and=20"Process=20description"=20fields?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/audit.category.class.inc.php | 2 +- application/audit.rule.class.inc.php | 6 +++--- dictionaries/cs.dictionary.itop.ui.php | 4 +++- dictionaries/da.dictionary.itop.ui.php | 2 ++ dictionaries/de.dictionary.itop.ui.php | 2 ++ dictionaries/en.dictionary.itop.ui.php | 2 ++ dictionaries/en_gb.dictionary.itop.ui.php | 2 ++ dictionaries/es_cr.dictionary.itop.ui.php | 2 ++ dictionaries/fr.dictionary.itop.ui.php | 2 ++ dictionaries/hu.dictionary.itop.ui.php | 2 ++ dictionaries/it.dictionary.itop.ui.php | 2 ++ dictionaries/ja.dictionary.itop.ui.php | 2 ++ dictionaries/nl.dictionary.itop.ui.php | 2 ++ dictionaries/pl.dictionary.itop.ui.php | 2 ++ dictionaries/pt_br.dictionary.itop.ui.php | 2 ++ dictionaries/ru.dictionary.itop.ui.php | 2 ++ dictionaries/sk.dictionary.itop.ui.php | 2 ++ dictionaries/tr.dictionary.itop.ui.php | 2 ++ dictionaries/zh_cn.dictionary.itop.ui.php | 2 ++ 19 files changed, 39 insertions(+), 5 deletions(-) diff --git a/application/audit.category.class.inc.php b/application/audit.category.class.inc.php index d5549b8f8e..c61a7dbdce 100644 --- a/application/audit.category.class.inc.php +++ b/application/audit.category.class.inc.php @@ -48,7 +48,7 @@ public static function Init() MetaModel::Init_AddAttribute(new AttributeString("name", ["description" => "Short name for this category", "allowed_values" => null, "sql" => "name", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeOQL("definition_set", ["allowed_values" => null, "sql" => "definition_set", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeLinkedSet("rules_list", ["linked_class" => "AuditRule", "ext_key_to_me" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "edit_mode" => LINKSET_EDITMODE_INPLACE, "tracking_level" => LINKSET_TRACKING_ALL])); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("rules_list", ["linked_class" => "AuditRule", "ext_key_to_me" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "edit_mode" => LINKSET_EDITMODE_INPLACE, "edit_when"=>LINKSET_EDITWHEN_ON_HOST_DISPLAY, "tracking_level" => LINKSET_TRACKING_ALL])); MetaModel::Init_AddAttribute(new AttributeInteger("ok_error_tolerance", ["allowed_values" => null, "sql" => "ok_error_tolerance", "default_value" => 5, "is_null_allowed" => true, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeInteger("warning_error_tolerance", ["allowed_values" => null, "sql" => "warning_error_tolerance", "default_value" => 25, "is_null_allowed" => true, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect( diff --git a/application/audit.rule.class.inc.php b/application/audit.rule.class.inc.php index 2da2e28eff..0d1422d261 100644 --- a/application/audit.rule.class.inc.php +++ b/application/audit.rule.class.inc.php @@ -52,13 +52,13 @@ public static function Init() MetaModel::Init_AddAttribute(new AttributeEnum("valid_flag", ["allowed_values" => new ValueSetEnum('true,false'), "sql" => "valid_flag", "default_value" => "true", "is_null_allowed" => false, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeExternalKey("category_id", ["allowed_values" => null, "sql" => "category_id", "targetclass" => "AuditCategory", "is_null_allowed" => false, "on_target_delete" => DEL_MANUAL, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeExternalField("category_name", ["allowed_values" => null, "extkey_attcode" => 'category_id', "target_attcode" => "name"])); - + MetaModel::Init_AddAttribute(new AttributeExternalKey("contact_id", ["allowed_values" => null, "sql" => "contact_id", "targetclass" => "Contact", "is_null_allowed" => true, "on_target_delete" => DEL_MANUAL, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', ['category_id', 'name', 'description', 'query', 'valid_flag']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('details', ['category_id', 'name', 'description', 'query', 'valid_flag', 'process', 'contact_id']); // Attributes to be displayed for the complete details MetaModel::Init_SetZListItems('list', ['category_id', 'description', 'valid_flag']); // Attributes to be displayed for a list // Search criteria MetaModel::Init_SetZListItems('standard_search', ['category_id', 'name', 'description', 'valid_flag', 'query']); // Criteria of the std search form - MetaModel::Init_SetZListItems('default_search', ['name', 'description', 'category_id']); // Criteria of the advanced search form + MetaModel::Init_SetZListItems('default_search', ['name', 'description', 'category_id', 'contact_id', 'query']); // Criteria of the advanced search form } public static function GetShortcutActions($sFinalClass) diff --git a/dictionaries/cs.dictionary.itop.ui.php b/dictionaries/cs.dictionary.itop.ui.php index c9336120c4..c4905409f2 100755 --- a/dictionaries/cs.dictionary.itop.ui.php +++ b/dictionaries/cs.dictionary.itop.ui.php @@ -52,7 +52,9 @@ 'Class:AuditRule/Attribute:category_id+' => 'Kategorie pro toto pravidlo', 'Class:AuditRule/Attribute:category_name' => 'Kategorie', 'Class:AuditRule/Attribute:category_name+' => 'Název kategorie pro toto pravidlo', -]); + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', + ]); // // Class: AuditDomain diff --git a/dictionaries/da.dictionary.itop.ui.php b/dictionaries/da.dictionary.itop.ui.php index 9211abedf8..a5cd5fbad5 100644 --- a/dictionaries/da.dictionary.itop.ui.php +++ b/dictionaries/da.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'Kategori for denne regel', 'Class:AuditRule/Attribute:category_name' => 'Kategori', 'Class:AuditRule/Attribute:category_name+' => 'Kategorinavn for denne regel', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/de.dictionary.itop.ui.php b/dictionaries/de.dictionary.itop.ui.php index bbff18973f..bb93eb1190 100644 --- a/dictionaries/de.dictionary.itop.ui.php +++ b/dictionaries/de.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'Kategorie für diese Regel', 'Class:AuditRule/Attribute:category_name' => 'Kategorie', 'Class:AuditRule/Attribute:category_name+' => 'Kategoriename für diese Regel', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/en.dictionary.itop.ui.php b/dictionaries/en.dictionary.itop.ui.php index f563c32193..e5db1d0a22 100644 --- a/dictionaries/en.dictionary.itop.ui.php +++ b/dictionaries/en.dictionary.itop.ui.php @@ -65,6 +65,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'The category of this rule', 'Class:AuditRule/Attribute:category_name' => 'Category name', 'Class:AuditRule/Attribute:category_name+' => 'Name of the category of this rule', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/en_gb.dictionary.itop.ui.php b/dictionaries/en_gb.dictionary.itop.ui.php index 073f04e7d7..df5d1e3f90 100644 --- a/dictionaries/en_gb.dictionary.itop.ui.php +++ b/dictionaries/en_gb.dictionary.itop.ui.php @@ -65,6 +65,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'The category of this rule', 'Class:AuditRule/Attribute:category_name' => 'Category name', 'Class:AuditRule/Attribute:category_name+' => 'Name of the category of this rule', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php index 616e269883..0f14d35cda 100644 --- a/dictionaries/es_cr.dictionary.itop.ui.php +++ b/dictionaries/es_cr.dictionary.itop.ui.php @@ -50,6 +50,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'La categoría para esta regla', 'Class:AuditRule/Attribute:category_name' => 'Categoría', 'Class:AuditRule/Attribute:category_name+' => 'Nombre de la categoría para esta regla', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php index 8edc9739f0..10f9f2d164 100644 --- a/dictionaries/fr.dictionary.itop.ui.php +++ b/dictionaries/fr.dictionary.itop.ui.php @@ -56,6 +56,8 @@ 'Class:AuditRule/Attribute:category_id+' => '', 'Class:AuditRule/Attribute:category_name' => 'Nom de la catégorie', 'Class:AuditRule/Attribute:category_name+' => '', + 'Class:AuditRule/Attribute:contact_id' => 'Responsable', + 'Class:AuditRule/Attribute:contact_id+' => 'Personne ou équipe responsable de la correction des erreurs détectées par cette règle', ]); // diff --git a/dictionaries/hu.dictionary.itop.ui.php b/dictionaries/hu.dictionary.itop.ui.php index 8e18eefab5..479fb9ab8e 100755 --- a/dictionaries/hu.dictionary.itop.ui.php +++ b/dictionaries/hu.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => '', 'Class:AuditRule/Attribute:category_name' => 'Kategórianév', 'Class:AuditRule/Attribute:category_name+' => '', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/it.dictionary.itop.ui.php b/dictionaries/it.dictionary.itop.ui.php index ece2d21030..cf94950338 100644 --- a/dictionaries/it.dictionary.itop.ui.php +++ b/dictionaries/it.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'Categoria per questa regola', 'Class:AuditRule/Attribute:category_name' => 'Categoria', 'Class:AuditRule/Attribute:category_name+' => 'Nome della categoria per questa regola', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/ja.dictionary.itop.ui.php b/dictionaries/ja.dictionary.itop.ui.php index 70505084b4..8218158a7b 100644 --- a/dictionaries/ja.dictionary.itop.ui.php +++ b/dictionaries/ja.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'このルールのカテゴリ', 'Class:AuditRule/Attribute:category_name' => 'カテゴリ', 'Class:AuditRule/Attribute:category_name+' => 'このルールのカテゴリ名', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/nl.dictionary.itop.ui.php b/dictionaries/nl.dictionary.itop.ui.php index 5c5856c47b..bba718655f 100644 --- a/dictionaries/nl.dictionary.itop.ui.php +++ b/dictionaries/nl.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'De categorie voor deze regel', 'Class:AuditRule/Attribute:category_name' => 'Categorie', 'Class:AuditRule/Attribute:category_name+' => 'Naam van de categorie voor deze regel', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/pl.dictionary.itop.ui.php b/dictionaries/pl.dictionary.itop.ui.php index 4d484f87d6..b05e40e683 100644 --- a/dictionaries/pl.dictionary.itop.ui.php +++ b/dictionaries/pl.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'Kategoria dla reguły', 'Class:AuditRule/Attribute:category_name' => 'Kategoria', 'Class:AuditRule/Attribute:category_name+' => 'Nazwa kategorii dla reguły', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/pt_br.dictionary.itop.ui.php b/dictionaries/pt_br.dictionary.itop.ui.php index cfce7e213e..3eea354fb6 100644 --- a/dictionaries/pt_br.dictionary.itop.ui.php +++ b/dictionaries/pt_br.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'A categoria para esta regra', 'Class:AuditRule/Attribute:category_name' => 'Categoria', 'Class:AuditRule/Attribute:category_name+' => 'Nome da categoria para essa regra', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/ru.dictionary.itop.ui.php b/dictionaries/ru.dictionary.itop.ui.php index 4a2be25d5b..16e94c3041 100644 --- a/dictionaries/ru.dictionary.itop.ui.php +++ b/dictionaries/ru.dictionary.itop.ui.php @@ -53,6 +53,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'Категория для этого правила', 'Class:AuditRule/Attribute:category_name' => 'Категория', 'Class:AuditRule/Attribute:category_name+' => 'Категория для этого правила', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/sk.dictionary.itop.ui.php b/dictionaries/sk.dictionary.itop.ui.php index 9df9ac1426..5ade2105df 100644 --- a/dictionaries/sk.dictionary.itop.ui.php +++ b/dictionaries/sk.dictionary.itop.ui.php @@ -56,6 +56,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'The category of this rule~~', 'Class:AuditRule/Attribute:category_name' => 'Kategória', 'Class:AuditRule/Attribute:category_name+' => 'Name of the category of this rule~~', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/tr.dictionary.itop.ui.php b/dictionaries/tr.dictionary.itop.ui.php index 51cdd89f91..3bfcca8dc4 100644 --- a/dictionaries/tr.dictionary.itop.ui.php +++ b/dictionaries/tr.dictionary.itop.ui.php @@ -52,6 +52,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'Kuralın kategorisi', 'Class:AuditRule/Attribute:category_name' => 'Kategori', 'Class:AuditRule/Attribute:category_name+' => 'Kural için kategori adı', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // diff --git a/dictionaries/zh_cn.dictionary.itop.ui.php b/dictionaries/zh_cn.dictionary.itop.ui.php index 720f21be4a..faa99260df 100644 --- a/dictionaries/zh_cn.dictionary.itop.ui.php +++ b/dictionaries/zh_cn.dictionary.itop.ui.php @@ -54,6 +54,8 @@ 'Class:AuditRule/Attribute:category_id+' => '该规则对应的类别', 'Class:AuditRule/Attribute:category_name' => '类别', 'Class:AuditRule/Attribute:category_name+' => '该规则对应的类名称', + 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', ]); // From d8686dbf598111438270bc11181aa334e6a5435f Mon Sep 17 00:00:00 2001 From: v-dumas Date: Tue, 4 Nov 2025 12:19:52 +0100 Subject: [PATCH 2/4] =?UTF-8?q?N=C2=B05882=20-=20Audit=20Rule:=20Add=20"Ow?= =?UTF-8?q?ner"=20and=20"Process=20description"=20fields?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/audit.category.class.inc.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/application/audit.category.class.inc.php b/application/audit.category.class.inc.php index c61a7dbdce..b15977a22a 100644 --- a/application/audit.category.class.inc.php +++ b/application/audit.category.class.inc.php @@ -48,11 +48,10 @@ public static function Init() MetaModel::Init_AddAttribute(new AttributeString("name", ["description" => "Short name for this category", "allowed_values" => null, "sql" => "name", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeOQL("definition_set", ["allowed_values" => null, "sql" => "definition_set", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeLinkedSet("rules_list", ["linked_class" => "AuditRule", "ext_key_to_me" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "edit_mode" => LINKSET_EDITMODE_INPLACE, "edit_when"=>LINKSET_EDITWHEN_ON_HOST_DISPLAY, "tracking_level" => LINKSET_TRACKING_ALL])); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("rules_list", ["linked_class" => "AuditRule", "ext_key_to_me" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "edit_mode" => LINKSET_EDITMODE_INPLACE, "edit_when"=>LINKSET_EDITWHEN_ALWAYS, "tracking_level" => LINKSET_TRACKING_ALL])); MetaModel::Init_AddAttribute(new AttributeInteger("ok_error_tolerance", ["allowed_values" => null, "sql" => "ok_error_tolerance", "default_value" => 5, "is_null_allowed" => true, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeInteger("warning_error_tolerance", ["allowed_values" => null, "sql" => "warning_error_tolerance", "default_value" => 25, "is_null_allowed" => true, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect( - "domains_list", + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("domains_list", ["linked_class" => "lnkAuditCategoryToAuditDomain", "ext_key_to_me" => "category_id", "ext_key_to_remote" => "domain_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "display_style" => 'property'] )); From 29d5a2ac65ff15c199ffb8b19c6cd5e9ec8e2b87 Mon Sep 17 00:00:00 2001 From: v-dumas Date: Mon, 10 Nov 2025 10:32:20 +0100 Subject: [PATCH 3/4] =?UTF-8?q?N=C2=B05882=20-=20Audit=20Rule:=20Add=20"Ow?= =?UTF-8?q?ner"=20and=20"Process=20description"=20fields?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/audit.rule.class.inc.php | 3 ++- dictionaries/cs.dictionary.itop.ui.php | 2 ++ dictionaries/da.dictionary.itop.ui.php | 2 ++ dictionaries/de.dictionary.itop.ui.php | 2 ++ dictionaries/en.dictionary.itop.ui.php | 8 +++++--- dictionaries/en_gb.dictionary.itop.ui.php | 4 +++- dictionaries/es_cr.dictionary.itop.ui.php | 2 ++ dictionaries/fr.dictionary.itop.ui.php | 4 +++- dictionaries/hu.dictionary.itop.ui.php | 2 ++ dictionaries/it.dictionary.itop.ui.php | 2 ++ dictionaries/ja.dictionary.itop.ui.php | 2 ++ dictionaries/nl.dictionary.itop.ui.php | 2 ++ dictionaries/pl.dictionary.itop.ui.php | 2 ++ dictionaries/pt_br.dictionary.itop.ui.php | 2 ++ dictionaries/ru.dictionary.itop.ui.php | 2 ++ dictionaries/sk.dictionary.itop.ui.php | 4 +++- dictionaries/tr.dictionary.itop.ui.php | 2 ++ dictionaries/zh_cn.dictionary.itop.ui.php | 2 ++ 18 files changed, 42 insertions(+), 7 deletions(-) diff --git a/application/audit.rule.class.inc.php b/application/audit.rule.class.inc.php index 0d1422d261..e442a19532 100644 --- a/application/audit.rule.class.inc.php +++ b/application/audit.rule.class.inc.php @@ -53,9 +53,10 @@ public static function Init() MetaModel::Init_AddAttribute(new AttributeExternalKey("category_id", ["allowed_values" => null, "sql" => "category_id", "targetclass" => "AuditCategory", "is_null_allowed" => false, "on_target_delete" => DEL_MANUAL, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeExternalField("category_name", ["allowed_values" => null, "extkey_attcode" => 'category_id', "target_attcode" => "name"])); MetaModel::Init_AddAttribute(new AttributeExternalKey("contact_id", ["allowed_values" => null, "sql" => "contact_id", "targetclass" => "Contact", "is_null_allowed" => true, "on_target_delete" => DEL_MANUAL, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeHTML("process", ["allowed_values" => null, "sql" => "process", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); // Display lists MetaModel::Init_SetZListItems('details', ['category_id', 'name', 'description', 'query', 'valid_flag', 'process', 'contact_id']); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', ['category_id', 'description', 'valid_flag']); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('list', ['category_id', 'description', 'query']); // Attributes to be displayed for a list // Search criteria MetaModel::Init_SetZListItems('standard_search', ['category_id', 'name', 'description', 'valid_flag', 'query']); // Criteria of the std search form MetaModel::Init_SetZListItems('default_search', ['name', 'description', 'category_id', 'contact_id', 'query']); // Criteria of the advanced search form diff --git a/dictionaries/cs.dictionary.itop.ui.php b/dictionaries/cs.dictionary.itop.ui.php index c4905409f2..1befaac79b 100755 --- a/dictionaries/cs.dictionary.itop.ui.php +++ b/dictionaries/cs.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => 'Krátký název pro toto pravidlo', 'Class:AuditRule/Attribute:description' => 'Popis pravidla', 'Class:AuditRule/Attribute:description+' => 'Dlouhý popis tohoto pravidla auditu', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Dotaz ke spuštění', 'Class:AuditRule/Attribute:query+' => 'OQL výraz ke spuštění', 'Class:AuditRule/Attribute:valid_flag' => 'Interpretace', diff --git a/dictionaries/da.dictionary.itop.ui.php b/dictionaries/da.dictionary.itop.ui.php index a5cd5fbad5..9c21bcb04e 100644 --- a/dictionaries/da.dictionary.itop.ui.php +++ b/dictionaries/da.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => 'Kort navn for denne regel', 'Class:AuditRule/Attribute:description' => 'Audit-regel beskrivelse', 'Class:AuditRule/Attribute:description+' => 'Udførlig beskrivelse af denne Audit-regel', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Søgning at udføre', 'Class:AuditRule/Attribute:query+' => 'Den OQL forespørgsel, der skal udføres', 'Class:AuditRule/Attribute:valid_flag' => 'Gyldige objekter?', diff --git a/dictionaries/de.dictionary.itop.ui.php b/dictionaries/de.dictionary.itop.ui.php index bb93eb1190..314bc16738 100644 --- a/dictionaries/de.dictionary.itop.ui.php +++ b/dictionaries/de.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => 'Kurzname für diese Regel', 'Class:AuditRule/Attribute:description' => 'Beschreibung der Audit-Regel', 'Class:AuditRule/Attribute:description+' => 'Ausführliche Beschreibung dieser Audit-Regel', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Durchzuführende Abfrage', 'Class:AuditRule/Attribute:query+' => 'Die auszuführende OQL-Abfrage', 'Class:AuditRule/Attribute:valid_flag' => 'Gültiges Objekt?', diff --git a/dictionaries/en.dictionary.itop.ui.php b/dictionaries/en.dictionary.itop.ui.php index e5db1d0a22..f42fa2322f 100644 --- a/dictionaries/en.dictionary.itop.ui.php +++ b/dictionaries/en.dictionary.itop.ui.php @@ -50,7 +50,9 @@ 'Class:AuditRule/Attribute:name' => 'Rule name', 'Class:AuditRule/Attribute:name+' => 'Short name for this rule', 'Class:AuditRule/Attribute:description' => 'Description', - 'Class:AuditRule/Attribute:description+' => 'What is checked? How should it be fixed? Who should do it? ...', + 'Class:AuditRule/Attribute:description+' => 'What is checked?', + 'Class:AuditRule/Attribute:process' => 'Correction process', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...', 'Class:AuditRule/Attribute:query' => 'Query to run', 'Class:AuditRule/Attribute:query+' => 'The OQL expression to run. Returned classes must be aligned with those of the category\'s scope', 'Class:AuditRule/Attribute:valid_flag' => 'Returned objects: ', @@ -65,8 +67,8 @@ 'Class:AuditRule/Attribute:category_id+' => 'The category of this rule', 'Class:AuditRule/Attribute:category_name' => 'Category name', 'Class:AuditRule/Attribute:category_name+' => 'Name of the category of this rule', - 'Class:AuditRule/Attribute:contact_id' => 'Owner~~', - 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule~~', + 'Class:AuditRule/Attribute:contact_id' => 'Owner', + 'Class:AuditRule/Attribute:contact_id+' => 'Team or person in charge of fixing the errors detected by this rule', ]); // diff --git a/dictionaries/en_gb.dictionary.itop.ui.php b/dictionaries/en_gb.dictionary.itop.ui.php index df5d1e3f90..9b08ae3038 100644 --- a/dictionaries/en_gb.dictionary.itop.ui.php +++ b/dictionaries/en_gb.dictionary.itop.ui.php @@ -50,7 +50,9 @@ 'Class:AuditRule/Attribute:name' => 'Rule name', 'Class:AuditRule/Attribute:name+' => 'Short name for this rule', 'Class:AuditRule/Attribute:description' => 'Description', - 'Class:AuditRule/Attribute:description+' => 'What is checked? How should it be fixed? Who should do it? ...', + 'Class:AuditRule/Attribute:description+' => 'What is checked?~~', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Query to run', 'Class:AuditRule/Attribute:query+' => 'The OQL expression to run. Returned classes must be aligned with those of the category\'s scope', 'Class:AuditRule/Attribute:valid_flag' => 'Returned objects: ', diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php index 0f14d35cda..943ccb1ded 100644 --- a/dictionaries/es_cr.dictionary.itop.ui.php +++ b/dictionaries/es_cr.dictionary.itop.ui.php @@ -38,6 +38,8 @@ 'Class:AuditRule/Attribute:name+' => 'Nombre corto para esta regla', 'Class:AuditRule/Attribute:description' => 'Descripción de regla de auditoría', 'Class:AuditRule/Attribute:description+' => 'Descripción larga para esta regla de auditoría', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Consulta a Ejecutar', 'Class:AuditRule/Attribute:query+' => 'Expresión OQL a ejecutar', 'Class:AuditRule/Attribute:valid_flag' => '¿Objetos Válidos?', diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php index 10f9f2d164..9cd01d9c45 100644 --- a/dictionaries/fr.dictionary.itop.ui.php +++ b/dictionaries/fr.dictionary.itop.ui.php @@ -41,7 +41,9 @@ 'Class:AuditRule/Attribute:name' => 'Nom', 'Class:AuditRule/Attribute:name+' => 'Une vérification particulière', 'Class:AuditRule/Attribute:description' => 'Description', - 'Class:AuditRule/Attribute:description+' => 'Qu\'est ce qu\'on vérifie ? Comment le corriger ? Qui doit le faire ? ...', + 'Class:AuditRule/Attribute:description+' => 'Qu\'est ce qu\'on vérifie ?', + 'Class:AuditRule/Attribute:process' => 'Processus de correction', + 'Class:AuditRule/Attribute:process+' => 'Comment le corriger ? Qui doit le faire ? ...', 'Class:AuditRule/Attribute:query' => 'Requête', 'Class:AuditRule/Attribute:query+' => 'Requête OQL à executer. Les classes retournées doivent être cohérentes avec celles définies dans le périmètre de la catégorie', 'Class:AuditRule/Attribute:valid_flag' => 'Objets retournés :', diff --git a/dictionaries/hu.dictionary.itop.ui.php b/dictionaries/hu.dictionary.itop.ui.php index 479fb9ab8e..b532b0e7ed 100755 --- a/dictionaries/hu.dictionary.itop.ui.php +++ b/dictionaries/hu.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => '', 'Class:AuditRule/Attribute:description' => 'Leírás', 'Class:AuditRule/Attribute:description+' => '', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Lekérdezés', 'Class:AuditRule/Attribute:query+' => '', 'Class:AuditRule/Attribute:valid_flag' => 'Érvényes objektum?', diff --git a/dictionaries/it.dictionary.itop.ui.php b/dictionaries/it.dictionary.itop.ui.php index cf94950338..8eef4acbe6 100644 --- a/dictionaries/it.dictionary.itop.ui.php +++ b/dictionaries/it.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => '', 'Class:AuditRule/Attribute:description' => 'Descrizione della regola di Audit', 'Class:AuditRule/Attribute:description+' => 'Descrizione dettagliata per questa regola di audit ', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Query da eseguire', 'Class:AuditRule/Attribute:query+' => 'Espressio OQL da eseguire', 'Class:AuditRule/Attribute:valid_flag' => 'Oggetti validi?', diff --git a/dictionaries/ja.dictionary.itop.ui.php b/dictionaries/ja.dictionary.itop.ui.php index 8218158a7b..d18df50028 100644 --- a/dictionaries/ja.dictionary.itop.ui.php +++ b/dictionaries/ja.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => 'ルールの短縮名', 'Class:AuditRule/Attribute:description' => '監査ルール説明', 'Class:AuditRule/Attribute:description+' => 'この監査ルールの長い説明', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => '実行するクエリ', 'Class:AuditRule/Attribute:query+' => '実行するOQL式', 'Class:AuditRule/Attribute:valid_flag' => '有効なオブジェクト', diff --git a/dictionaries/nl.dictionary.itop.ui.php b/dictionaries/nl.dictionary.itop.ui.php index bba718655f..28f84cbd0b 100644 --- a/dictionaries/nl.dictionary.itop.ui.php +++ b/dictionaries/nl.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => 'Naam van de regel', 'Class:AuditRule/Attribute:description' => 'Beschrijving', 'Class:AuditRule/Attribute:description+' => 'Uitgebreide beschrijving van deze Auditregel', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Query om uit te voeren', 'Class:AuditRule/Attribute:query+' => 'De OQL-expressie voor het uitvoeren', 'Class:AuditRule/Attribute:valid_flag' => 'Geldige objecten?', diff --git a/dictionaries/pl.dictionary.itop.ui.php b/dictionaries/pl.dictionary.itop.ui.php index b05e40e683..a102e0a6ed 100644 --- a/dictionaries/pl.dictionary.itop.ui.php +++ b/dictionaries/pl.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => 'Krótka nazwa reguły', 'Class:AuditRule/Attribute:description' => 'Opis reguły audytu', 'Class:AuditRule/Attribute:description+' => 'Długi opis reguły inspekcji', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Zapytanie do wykonania', 'Class:AuditRule/Attribute:query+' => 'Wyrażenie OQL do wykonania', 'Class:AuditRule/Attribute:valid_flag' => 'Prawidłowe obiekty?', diff --git a/dictionaries/pt_br.dictionary.itop.ui.php b/dictionaries/pt_br.dictionary.itop.ui.php index 3eea354fb6..8fc66488bc 100644 --- a/dictionaries/pt_br.dictionary.itop.ui.php +++ b/dictionaries/pt_br.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => 'Nome curto para esta regra', 'Class:AuditRule/Attribute:description' => 'Descrição', 'Class:AuditRule/Attribute:description+' => 'Descrição longa para essa regra', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Executar consulta', 'Class:AuditRule/Attribute:query+' => 'Executar a expressão OQL', 'Class:AuditRule/Attribute:valid_flag' => 'Objetos válidos?', diff --git a/dictionaries/ru.dictionary.itop.ui.php b/dictionaries/ru.dictionary.itop.ui.php index 16e94c3041..77560b23ca 100644 --- a/dictionaries/ru.dictionary.itop.ui.php +++ b/dictionaries/ru.dictionary.itop.ui.php @@ -41,6 +41,8 @@ 'Class:AuditRule/Attribute:name+' => 'Краткое название этого правила', 'Class:AuditRule/Attribute:description' => 'Описание правила аудита', 'Class:AuditRule/Attribute:description+' => 'Полное описание этого правила аудита', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Запрос для выполнения', 'Class:AuditRule/Attribute:query+' => 'OQL выражение, выполняющее проверку набора объектов категории аудита', 'Class:AuditRule/Attribute:valid_flag' => 'Валидные объекты?', diff --git a/dictionaries/sk.dictionary.itop.ui.php b/dictionaries/sk.dictionary.itop.ui.php index 5ade2105df..79c9a287bd 100644 --- a/dictionaries/sk.dictionary.itop.ui.php +++ b/dictionaries/sk.dictionary.itop.ui.php @@ -41,7 +41,9 @@ 'Class:AuditRule/Attribute:name' => 'Názov pravidla', 'Class:AuditRule/Attribute:name+' => 'Short name for this rule~~', 'Class:AuditRule/Attribute:description' => 'Popis pravidla auditu', - 'Class:AuditRule/Attribute:description+' => 'What is checked? How should it be fixed? Who should do it? ...~~', + 'Class:AuditRule/Attribute:description+' => 'What is checked?~~', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Spustenie dopytu', 'Class:AuditRule/Attribute:query+' => 'The OQL expression to run. Returned classes must be aligned with those of the category\'s scope~~', 'Class:AuditRule/Attribute:valid_flag' => 'Platný objekt?', diff --git a/dictionaries/tr.dictionary.itop.ui.php b/dictionaries/tr.dictionary.itop.ui.php index 3bfcca8dc4..f3b953065b 100644 --- a/dictionaries/tr.dictionary.itop.ui.php +++ b/dictionaries/tr.dictionary.itop.ui.php @@ -40,6 +40,8 @@ 'Class:AuditRule/Attribute:name+' => 'Kural Adı', 'Class:AuditRule/Attribute:description' => 'Kural tanımlaması', 'Class:AuditRule/Attribute:description+' => 'Kural tanımlaması', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => 'Çalıştırılacak Sorgu', 'Class:AuditRule/Attribute:query+' => 'Çalıştırılcak OQL ifadesi', 'Class:AuditRule/Attribute:valid_flag' => 'Geçerli nesneler?', diff --git a/dictionaries/zh_cn.dictionary.itop.ui.php b/dictionaries/zh_cn.dictionary.itop.ui.php index faa99260df..e60fb82c6d 100644 --- a/dictionaries/zh_cn.dictionary.itop.ui.php +++ b/dictionaries/zh_cn.dictionary.itop.ui.php @@ -42,6 +42,8 @@ 'Class:AuditRule/Attribute:name+' => '规则名称', 'Class:AuditRule/Attribute:description' => '描述', 'Class:AuditRule/Attribute:description+' => '检查什么? 如何修复? 谁去做? ...', + 'Class:AuditRule/Attribute:process' => 'Correction process~~', + 'Class:AuditRule/Attribute:process+' => 'How should it be fixed? Who should do it? ...~~', 'Class:AuditRule/Attribute:query' => '要运行的查询', 'Class:AuditRule/Attribute:query+' => '要运行的OQL表达式', 'Class:AuditRule/Attribute:valid_flag' => '是否有效?', From d4a276bceb08d890711f88fb65a96377d496bb7c Mon Sep 17 00:00:00 2001 From: v-dumas Date: Fri, 14 Nov 2025 16:09:10 +0100 Subject: [PATCH 4/4] Fix PHP CS --- application/audit.category.class.inc.php | 5 +++-- application/exceptions/oql/CoreOqlException.php | 2 +- .../oql/CoreOqlMultipleResultsForbiddenException.php | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/application/audit.category.class.inc.php b/application/audit.category.class.inc.php index b15977a22a..ef02210cb8 100644 --- a/application/audit.category.class.inc.php +++ b/application/audit.category.class.inc.php @@ -48,10 +48,11 @@ public static function Init() MetaModel::Init_AddAttribute(new AttributeString("name", ["description" => "Short name for this category", "allowed_values" => null, "sql" => "name", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeOQL("definition_set", ["allowed_values" => null, "sql" => "definition_set", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeLinkedSet("rules_list", ["linked_class" => "AuditRule", "ext_key_to_me" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "edit_mode" => LINKSET_EDITMODE_INPLACE, "edit_when"=>LINKSET_EDITWHEN_ALWAYS, "tracking_level" => LINKSET_TRACKING_ALL])); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("rules_list", ["linked_class" => "AuditRule", "ext_key_to_me" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "edit_mode" => LINKSET_EDITMODE_INPLACE, "edit_when" => LINKSET_EDITWHEN_ALWAYS, "tracking_level" => LINKSET_TRACKING_ALL])); MetaModel::Init_AddAttribute(new AttributeInteger("ok_error_tolerance", ["allowed_values" => null, "sql" => "ok_error_tolerance", "default_value" => 5, "is_null_allowed" => true, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeInteger("warning_error_tolerance", ["allowed_values" => null, "sql" => "warning_error_tolerance", "default_value" => 25, "is_null_allowed" => true, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("domains_list", + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect( + "domains_list", ["linked_class" => "lnkAuditCategoryToAuditDomain", "ext_key_to_me" => "category_id", "ext_key_to_remote" => "domain_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "display_style" => 'property'] )); diff --git a/application/exceptions/oql/CoreOqlException.php b/application/exceptions/oql/CoreOqlException.php index c9cbdf2e09..c59b50d372 100644 --- a/application/exceptions/oql/CoreOqlException.php +++ b/application/exceptions/oql/CoreOqlException.php @@ -1,4 +1,5 @@