diff --git a/.env b/.env
index 722f745b2c63f..e7fecb46b96e2 100644
--- a/.env
+++ b/.env
@@ -69,6 +69,10 @@ ODOO_CRM_DB=
ODOO_CRM_USER=
ODOO_CRM_PASSWORD=
+# No need to have it running, it's just to compose a URL
+# you might also use the .net service
+NUTRIPATROL_URL=nutripatrol.localhost
+
BUILD_CACHE_REPO=openfoodfacts/openfoodfacts-build-cache
# If you want the rate limiter to block requests (return 429) instead of doing nothing,
diff --git a/cgi/product_multilingual.pl b/cgi/product_multilingual.pl
index 9c8b9f80281db..da63b402adcb7 100755
--- a/cgi/product_multilingual.pl
+++ b/cgi/product_multilingual.pl
@@ -1638,7 +1638,7 @@ ($product_ref, $field, $language, $request_ref)
$template_data_ref_process->{edited_product_url}
= $url_prefix . get_owner_pretty_path() . product_url($product_ref);
- $template_data_ref_process->{edit_product_url} = $url_prefix . product_action_url($product_ref->{code}, "");
+ $template_data_ref_process->{edit_product_url} = $url_prefix . product_action_url($product_ref->{code});
if ($type ne 'delete') {
# adding contribution card
diff --git a/conf/apache-2.4/modperl.conf b/conf/apache-2.4/modperl.conf
index fab32e5e2cd52..486c211c80dc2 100644
--- a/conf/apache-2.4/modperl.conf
+++ b/conf/apache-2.4/modperl.conf
@@ -24,6 +24,7 @@ PerlPassEnv POSTGRES_PASSWORD
PerlPassEnv LOG_LEVEL_ROOT
PerlPassEnv LOG_LEVEL_MONGODB
PerlPassEnv LOG_LEVEL_RATE_LIMITER
+PerlPassEnv NUTRIPATROL_URL
PerlPassEnv OFF_LOG_EMAILS
PerlPassEnv BUILD_CACHE_REPO
PerlPassEnv RATE_LIMITER_BLOCKING_ENABLED
diff --git a/docker-compose.yml b/docker-compose.yml
index 66546f4bfd182..448f41eb8de8e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -28,6 +28,7 @@ x-backend-conf: &backend-conf
- LOG_LEVEL_ROOT
- LOG_LEVEL_MONGODB
- LOG_LEVEL_RATE_LIMITER
+ - NUTRIPATROL_URL
- INFLUXDB_HOST
- BUILD_CACHE_REPO
- RATE_LIMITER_BLOCKING_ENABLED
diff --git a/env/env.obf b/env/env.obf
index b6395d07f86c7..4e43a8e03ecb5 100644
--- a/env/env.obf
+++ b/env/env.obf
@@ -5,4 +5,5 @@ COMPOSE_PROJECT_NAME=po_obf
PRODUCT_OPENER_FLAVOR=openbeautyfacts
PRODUCT_OPENER_FLAVOR_SHORT=obf
-ROBOTOFF_URL=https://robotoff.openfoodfacts.org
\ No newline at end of file
+ROBOTOFF_URL=https://robotoff.openfoodfacts.org
+NUTRIPATROL_URL=https://nutripatrol.openfoodfacts.org/
\ No newline at end of file
diff --git a/env/env.off b/env/env.off
index 1d75dd85c3f79..049c5d157cb45 100644
--- a/env/env.off
+++ b/env/env.off
@@ -5,3 +5,5 @@ COMPOSE_PROJECT_NAME=po_off
PRODUCT_OPENER_FLAVOR=openfoodfacts
PRODUCT_OPENER_FLAVOR_SHORT=off
+
+NUTRIPATROL_URL=https://nutripatrol.openfoodfacts.org/
\ No newline at end of file
diff --git a/env/env.opf b/env/env.opf
index 16e5396804d28..679340860fb0d 100644
--- a/env/env.opf
+++ b/env/env.opf
@@ -5,3 +5,5 @@ COMPOSE_PROJECT_NAME=po_opf
PRODUCT_OPENER_FLAVOR=openproductfacts
PRODUCT_OPENER_FLAVOR_SHORT=opf
+
+NUTRIPATROL_URL=https://nutripatrol.openfoodfacts.org/
\ No newline at end of file
diff --git a/env/env.opff b/env/env.opff
index e5758776cbb31..a4da1805e07e8 100644
--- a/env/env.opff
+++ b/env/env.opff
@@ -5,3 +5,5 @@ COMPOSE_PROJECT_NAME=po_opff
PRODUCT_OPENER_FLAVOR=openpetfoodfacts
PRODUCT_OPENER_FLAVOR_SHORT=opff
+
+NUTRIPATROL_URL=https://nutripatrol.openfoodfacts.org/
\ No newline at end of file
diff --git a/lib/ProductOpener/ConfigEnv.pm b/lib/ProductOpener/ConfigEnv.pm
new file mode 100644
index 0000000000000..49804b9035a3f
--- /dev/null
+++ b/lib/ProductOpener/ConfigEnv.pm
@@ -0,0 +1,37 @@
+# This file is part of Product Opener.
+#
+# Product Opener
+# Copyright (C) 2011-2024 Association Open Food Facts
+# Contact: contact@openfoodfacts.org
+# Address: 21 rue des Iles, 94100 Saint-Maur des Fossés, France
+#
+# Product Opener is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+package ProductOpener::ConfigEnv;
+
+use ProductOpener::PerlStandards;
+use Exporter qw< import >;
+
+BEGIN {
+ use vars qw(@ISA @EXPORT_OK %EXPORT_TAGS);
+ @EXPORT_OK = qw(
+ $nutripatrol_url
+ );
+ %EXPORT_TAGS = (all => [@EXPORT_OK]);
+}
+use vars @EXPORT_OK; # no 'my' keyword for these
+
+$nutripatrol_url = $ENV{NUTRIPATROL_URL};
+
+1;
diff --git a/lib/ProductOpener/KnowledgePanelsReportProblem.pm b/lib/ProductOpener/KnowledgePanelsReportProblem.pm
index e9e9884bff7ff..03858722d4a3f 100644
--- a/lib/ProductOpener/KnowledgePanelsReportProblem.pm
+++ b/lib/ProductOpener/KnowledgePanelsReportProblem.pm
@@ -48,7 +48,8 @@ BEGIN {
use vars @EXPORT_OK;
use ProductOpener::KnowledgePanels qw(create_panel_from_json_template);
-use ProductOpener::Tags qw(:all);
+use ProductOpener::Tags qw/:all/;
+use ProductOpener::ConfigEnv qw/:all/;
use Encode;
use Data::DeepAccess qw(deep_get);
@@ -87,16 +88,15 @@ sub create_report_problem_card_panel ($product_ref, $target_lc, $target_cc, $opt
# + add promo message for the pro platform ("Are you the owner? Add your contact information")
# Panel to tell users that they can fix the data themselves
-
+ # or report to nutripatrol
create_panel_from_json_template(
"incomplete_or_incorrect_data",
"api/knowledge-panels/report_problem/incomplete_or_incorrect_data.tt.json",
- {}, $product_ref, $target_lc, $target_cc, $options_ref
+ {nutripatrol_enabled => !!$nutripatrol_url},
+ $product_ref, $target_lc, $target_cc, $options_ref
);
push(@panels, "incomplete_or_incorrect_data");
- # TODO: add a panel for Nutri-Patrol once it is ready
-
# Panels to report product issues to local authorities
# France - SignalConso
diff --git a/lib/ProductOpener/Products.pm b/lib/ProductOpener/Products.pm
index 8f1781309af76..9012abd817787 100644
--- a/lib/ProductOpener/Products.pm
+++ b/lib/ProductOpener/Products.pm
@@ -126,6 +126,7 @@ use vars @EXPORT_OK;
use ProductOpener::Store qw/get_string_id_for_lang get_url_id_for_lang retrieve store/;
use ProductOpener::Config qw/:all/;
+use ProductOpener::ConfigEnv qw/:all/;
use ProductOpener::Paths qw/%BASE_DIRS ensure_dir_created_or_die/;
use ProductOpener::Users qw/$Org_id $Owner_id $User_id %User init_user/;
use ProductOpener::Orgs qw/retrieve_org/;
@@ -2828,20 +2829,31 @@ my %actions_urls = (
add_packager_codes_image => "#packager_codes",
add_labels => "#labels",
add_countries => "#countries",
+ # this is for web rendering so source is web
+ report_product_to_nutripatrol => "$nutripatrol_url/flag/product/?barcode=PRODUCT_CODE&source=web&flavor=$flavor"
);
-sub product_action_url ($code, $action) {
-
- my $url = "/cgi/product.pl?type=edit&code=" . $code;
+sub product_action_url ($code, $action = "edit_product") {
+ my $url;
if (defined $actions_urls{$action}) {
- $url .= $actions_urls{$action};
+ my $action_url = $actions_urls{$action};
+ if (($action_url eq '') || ($action_url =~ /^#/)) {
+ # link to the edit form
+ $url = "/cgi/product.pl?type=edit&code=" . $code;
+ $url .= $action_url;
+ }
+ else {
+ # full url
+ $url = $action_url;
+ $url =~ s/PRODUCT_CODE/$code/;
+ }
}
else {
$log->error("unknown product action", {code => $code, action => $action});
}
- return $url;
+ return $url // "";
}
sub compute_keywords ($product_ref) {
diff --git a/po/common/common.pot b/po/common/common.pot
index 23f62f229f7f0..ee2a57ac6aae5 100644
--- a/po/common/common.pot
+++ b/po/common/common.pot
@@ -6359,6 +6359,10 @@ msgctxt "action_packager_codes_image"
msgid "Take a photo of traceability codes"
msgstr "Take a photo of traceability codes"
+msgctxt "action_report_product_to_nutripatrol"
+msgid "Report this product to our moderators"
+msgstr "Report this product to our moderators"
+
# Used as a header for key facts
msgctxt "knowledge_panels_facts"
msgid "What you need to know"
@@ -6961,6 +6965,10 @@ msgctxt "incomplete_or_incorrect_data_content_correct_off"
msgid "Open Food Facts is a collaborative database, and every contribution is useful for all."
msgstr "Open Food Facts is a collaborative database, and every contribution is useful for all."
+msgctxt "report_to_nutripatrol_explain"
+msgid "If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team."
+msgstr "If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team."
+
msgctxt "description"
msgid "Description"
msgstr "Description"
diff --git a/po/common/en.po b/po/common/en.po
index 1558801637a6e..53a7ec7d5c06e 100644
--- a/po/common/en.po
+++ b/po/common/en.po
@@ -6378,6 +6378,10 @@ msgctxt "action_packager_codes_image"
msgid "Take a photo of traceability codes"
msgstr "Take a photo of traceability codes"
+msgctxt "action_report_product_to_nutripatrol"
+msgid "Report this product to our moderators"
+msgstr "Report this product to our moderators"
+
# Used as a header for key facts
msgctxt "knowledge_panels_facts"
msgid "What you need to know"
@@ -6974,6 +6978,10 @@ msgctxt "incomplete_or_incorrect_data_content_correct_off"
msgid "Open Food Facts is a collaborative database, and every contribution is useful for all."
msgstr "Open Food Facts is a collaborative database, and every contribution is useful for all."
+msgctxt "report_to_nutripatrol_explain"
+msgid "If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team."
+msgstr "If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team."
+
msgctxt "description"
msgid "Description"
msgstr "Description"
diff --git a/templates/api/knowledge-panels/report_problem/incomplete_or_incorrect_data.tt.json b/templates/api/knowledge-panels/report_problem/incomplete_or_incorrect_data.tt.json
index 13015bf8fcad5..011706e2e8498 100644
--- a/templates/api/knowledge-panels/report_problem/incomplete_or_incorrect_data.tt.json
+++ b/templates/api/knowledge-panels/report_problem/incomplete_or_incorrect_data.tt.json
@@ -17,7 +17,7 @@
"html": `
[% lang('incomplete_or_incorrect_data_content_correct') %]
[% lang('incomplete_or_incorrect_data_content_correct_off') %]
- `
+ `
},
},
{
@@ -26,6 +26,23 @@
"html": "",
"actions": ["edit_product"]
}
- }
+ },
+ [% IF panel.nutripatrol_enabled %]
+ {
+ "element_type": "text",
+ "text_element": {
+ "html": `
+ [% lang('report_to_nutripatrol_explain') %]
+ `
+ },
+ },
+ {
+ "element_type": "action",
+ "action_element": {
+ "html": "",
+ "actions": ["report_product_to_nutripatrol"]
+ }
+ },
+ [% END %]
]
-}
+}
\ No newline at end of file
diff --git a/tests/integration/expected_test_results/api_v2_product_read/get-fields-all-knowledge-panels.json b/tests/integration/expected_test_results/api_v2_product_read/get-fields-all-knowledge-panels.json
index 42c4e6b3d4894..42e66e3caa9c2 100644
--- a/tests/integration/expected_test_results/api_v2_product_read/get-fields-all-knowledge-panels.json
+++ b/tests/integration/expected_test_results/api_v2_product_read/get-fields-all-knowledge-panels.json
@@ -1351,6 +1351,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v2_product_read/get-fields-attribute-groups-all-knowledge-panels.json b/tests/integration/expected_test_results/api_v2_product_read/get-fields-attribute-groups-all-knowledge-panels.json
index 3145d85084916..824a1f8ef942b 100644
--- a/tests/integration/expected_test_results/api_v2_product_read/get-fields-attribute-groups-all-knowledge-panels.json
+++ b/tests/integration/expected_test_results/api_v2_product_read/get-fields-attribute-groups-all-knowledge-panels.json
@@ -2007,6 +2007,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v2_product_read/get-fields-knowledge-panels-knowledge-panels_excluded-environment_card.json b/tests/integration/expected_test_results/api_v2_product_read/get-fields-knowledge-panels-knowledge-panels_excluded-environment_card.json
index b43b03a271b47..726a1d70c7e8a 100644
--- a/tests/integration/expected_test_results/api_v2_product_read/get-fields-knowledge-panels-knowledge-panels_excluded-environment_card.json
+++ b/tests/integration/expected_test_results/api_v2_product_read/get-fields-knowledge-panels-knowledge-panels_excluded-environment_card.json
@@ -82,6 +82,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v2_product_read/get-knowledge-panels-fr.json b/tests/integration/expected_test_results/api_v2_product_read/get-knowledge-panels-fr.json
index 13d87b3a1496f..c0277a41f52aa 100644
--- a/tests/integration/expected_test_results/api_v2_product_read/get-knowledge-panels-fr.json
+++ b/tests/integration/expected_test_results/api_v2_product_read/get-knowledge-panels-fr.json
@@ -645,6 +645,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v2_product_read/get-knowledge-panels.json b/tests/integration/expected_test_results/api_v2_product_read/get-knowledge-panels.json
index 57602bedbbea4..e86c65f270f58 100644
--- a/tests/integration/expected_test_results/api_v2_product_read/get-knowledge-panels.json
+++ b/tests/integration/expected_test_results/api_v2_product_read/get-knowledge-panels.json
@@ -645,6 +645,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v3_product_read/get-fields-all-knowledge-panels.json b/tests/integration/expected_test_results/api_v3_product_read/get-fields-all-knowledge-panels.json
index 39b0d6a150c13..182516fa0c7b6 100644
--- a/tests/integration/expected_test_results/api_v3_product_read/get-fields-all-knowledge-panels.json
+++ b/tests/integration/expected_test_results/api_v3_product_read/get-fields-all-knowledge-panels.json
@@ -1344,6 +1344,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v3_product_read/get-fields-attribute-groups-all-knowledge-panels.json b/tests/integration/expected_test_results/api_v3_product_read/get-fields-attribute-groups-all-knowledge-panels.json
index 14561dcfad3b8..7322d3fe17edd 100644
--- a/tests/integration/expected_test_results/api_v3_product_read/get-fields-attribute-groups-all-knowledge-panels.json
+++ b/tests/integration/expected_test_results/api_v3_product_read/get-fields-attribute-groups-all-knowledge-panels.json
@@ -1992,6 +1992,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v3_product_read/get-fields-knowledge-panels-knowledge-panels_excluded-environment_card.json b/tests/integration/expected_test_results/api_v3_product_read/get-fields-knowledge-panels-knowledge-panels_excluded-environment_card.json
index a3d17dcb6a29d..255506fec5a40 100644
--- a/tests/integration/expected_test_results/api_v3_product_read/get-fields-knowledge-panels-knowledge-panels_excluded-environment_card.json
+++ b/tests/integration/expected_test_results/api_v3_product_read/get-fields-knowledge-panels-knowledge-panels_excluded-environment_card.json
@@ -82,6 +82,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v3_product_read/get-knowledge-panels-fr.json b/tests/integration/expected_test_results/api_v3_product_read/get-knowledge-panels-fr.json
index 410d2591623e8..33a70337e3561 100644
--- a/tests/integration/expected_test_results/api_v3_product_read/get-knowledge-panels-fr.json
+++ b/tests/integration/expected_test_results/api_v3_product_read/get-knowledge-panels-fr.json
@@ -645,6 +645,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v3_product_read/get-knowledge-panels.json b/tests/integration/expected_test_results/api_v3_product_read/get-knowledge-panels.json
index 85e26389d7c9d..ab111f13f562b 100644
--- a/tests/integration/expected_test_results/api_v3_product_read/get-knowledge-panels.json
+++ b/tests/integration/expected_test_results/api_v3_product_read/get-knowledge-panels.json
@@ -645,6 +645,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/api_v3_product_write/patch-request-fields-updated-attribute-groups-knowledge-panels.json b/tests/integration/expected_test_results/api_v3_product_write/patch-request-fields-updated-attribute-groups-knowledge-panels.json
index d2c61ef7076f0..694c28c58e299 100644
--- a/tests/integration/expected_test_results/api_v3_product_write/patch-request-fields-updated-attribute-groups-knowledge-panels.json
+++ b/tests/integration/expected_test_results/api_v3_product_write/patch-request-fields-updated-attribute-groups-knowledge-panels.json
@@ -460,6 +460,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/data_quality_knowledge_panel/data-quality.json b/tests/integration/expected_test_results/data_quality_knowledge_panel/data-quality.json
index 22414cbb8217f..1ebb2ca5d90dd 100644
--- a/tests/integration/expected_test_results/data_quality_knowledge_panel/data-quality.json
+++ b/tests/integration/expected_test_results/data_quality_knowledge_panel/data-quality.json
@@ -314,6 +314,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/data_quality_knowledge_panel/no-data-quality.json b/tests/integration/expected_test_results/data_quality_knowledge_panel/no-data-quality.json
index e532ef647655d..4e6f3ce36ddf6 100644
--- a/tests/integration/expected_test_results/data_quality_knowledge_panel/no-data-quality.json
+++ b/tests/integration/expected_test_results/data_quality_knowledge_panel/no-data-quality.json
@@ -276,6 +276,21 @@
"html" : ""
},
"element_type" : "action"
+ },
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "report_product_to_nutripatrol"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
}
],
"evaluation" : "neutral",
diff --git a/tests/integration/expected_test_results/page_crawler/crawler-access-product-page.html b/tests/integration/expected_test_results/page_crawler/crawler-access-product-page.html
index e6bbaf3540177..6d35aff61bcf2 100644
--- a/tests/integration/expected_test_results/page_crawler/crawler-access-product-page.html
+++ b/tests/integration/expected_test_results/page_crawler/crawler-access-product-page.html
@@ -3482,6 +3482,42 @@
Report a problem
+
+
+
+
+
+
+
+
+
+
+
+ If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/integration/expected_test_results/page_crawler/normal-user-access-product-page.html b/tests/integration/expected_test_results/page_crawler/normal-user-access-product-page.html
index e6bbaf3540177..6d35aff61bcf2 100644
--- a/tests/integration/expected_test_results/page_crawler/normal-user-access-product-page.html
+++ b/tests/integration/expected_test_results/page_crawler/normal-user-access-product-page.html
@@ -3482,6 +3482,42 @@ Report a problem
+
+
+
+
+
+
+
+
+
+
+
+ If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/integration/expected_test_results/product_read/get-existing-product.html b/tests/integration/expected_test_results/product_read/get-existing-product.html
index 4199f152be616..580100666e95f 100644
--- a/tests/integration/expected_test_results/product_read/get-existing-product.html
+++ b/tests/integration/expected_test_results/product_read/get-existing-product.html
@@ -4658,6 +4658,42 @@ Report a problem
+
+
+
+
+
+
+
+
+
+
+
+ If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/integration/expected_test_results/web_html/fr-product-2.html b/tests/integration/expected_test_results/web_html/fr-product-2.html
index 9ec9d1b5f9657..de9ca85a6ce95 100644
--- a/tests/integration/expected_test_results/web_html/fr-product-2.html
+++ b/tests/integration/expected_test_results/web_html/fr-product-2.html
@@ -3625,6 +3625,42 @@ Signaler un problème
+
+
+
+
+
+
+
+
+
+
+
+ If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/integration/expected_test_results/web_html/fr-product.html b/tests/integration/expected_test_results/web_html/fr-product.html
index e63ff3fc1dbb3..82c15dc2dc112 100644
--- a/tests/integration/expected_test_results/web_html/fr-product.html
+++ b/tests/integration/expected_test_results/web_html/fr-product.html
@@ -3639,6 +3639,42 @@ Signaler un problème
+
+
+
+
+
+
+
+
+
+
+
+ If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/integration/expected_test_results/web_html/world-product.html b/tests/integration/expected_test_results/web_html/world-product.html
index 30bea26b97c90..0f40a38546ffb 100644
--- a/tests/integration/expected_test_results/web_html/world-product.html
+++ b/tests/integration/expected_test_results/web_html/world-product.html
@@ -4213,6 +4213,42 @@ Report a problem
+
+
+
+
+
+
+
+
+
+
+
+ If you want to report vandalism, inappropriate content or erroneous data you can't fix yourself, report it to our moderators team.
+
+
+
+
+
+
+
+
+
+