diff --git a/html/images/panels/report_problem/signalconso-button.png b/html/images/panels/report_problem/signalconso-button.png
new file mode 100644
index 0000000000000..16265b21d6b04
Binary files /dev/null and b/html/images/panels/report_problem/signalconso-button.png differ
diff --git a/html/images/panels/report_problem/signalconso.png b/html/images/panels/report_problem/signalconso.png
new file mode 100644
index 0000000000000..8c9cc70bf6b8a
Binary files /dev/null and b/html/images/panels/report_problem/signalconso.png differ
diff --git a/lib/ProductOpener/Display.pm b/lib/ProductOpener/Display.pm
index 6905c7ea2a18a..228b72978d972 100644
--- a/lib/ProductOpener/Display.pm
+++ b/lib/ProductOpener/Display.pm
@@ -7655,6 +7655,8 @@ JS
= display_knowledge_panel($product_ref, $product_ref->{"knowledge_panels_" . $lc}, "environment_card");
$template_data_ref->{health_card_panel}
= display_knowledge_panel($product_ref, $product_ref->{"knowledge_panels_" . $lc}, "health_card");
+ $template_data_ref->{report_problem_card_panel}
+ = display_knowledge_panel($product_ref, $product_ref->{"knowledge_panels_" . $lc}, "report_problem_card");
if ($product_ref->{"knowledge_panels_" . $lc}{"contribution_card"}) {
$template_data_ref->{contribution_card_panel}
= display_knowledge_panel($product_ref, $product_ref->{"knowledge_panels_" . $lc}, "contribution_card");
diff --git a/lib/ProductOpener/KnowledgePanels.pm b/lib/ProductOpener/KnowledgePanels.pm
index 0470409dea523..6b4affdb8f414 100644
--- a/lib/ProductOpener/KnowledgePanels.pm
+++ b/lib/ProductOpener/KnowledgePanels.pm
@@ -67,6 +67,7 @@ use ProductOpener::Display qw/:all/;
use ProductOpener::Ecoscore qw/is_ecoscore_extended_data_more_precise_than_agribalyse/;
use ProductOpener::PackagerCodes qw/%packager_codes/;
use ProductOpener::KnowledgePanelsContribution qw/create_contribution_card_panel/;
+use ProductOpener::KnowledgePanelsReportProblem qw/create_report_problem_card_panel/;
use JSON::PP;
use Encode;
@@ -196,6 +197,7 @@ sub create_knowledge_panels ($product_ref, $target_lc, $target_cc, $options_ref)
create_health_card_panel($product_ref, $target_lc, $target_cc, $options_ref);
create_environment_card_panel($product_ref, $target_lc, $target_cc, $options_ref);
+ create_report_problem_card_panel($product_ref, $target_lc, $target_cc, $options_ref);
my $has_contribution_card = create_contribution_card_panel($product_ref, $target_lc, $target_cc, $options_ref);
# Create the root panel that contains the panels we want to show directly on the product page
diff --git a/lib/ProductOpener/KnowledgePanelsReportProblem.pm b/lib/ProductOpener/KnowledgePanelsReportProblem.pm
new file mode 100644
index 0000000000000..75ce17b8abcb5
--- /dev/null
+++ b/lib/ProductOpener/KnowledgePanelsReportProblem.pm
@@ -0,0 +1,123 @@
+# This file is part of Product Opener.
+#
+# Product Opener
+# Copyright (C) 2011-2023 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 .
+
+=head1 NAME
+
+ProductOpener::KnowledgePanelsReportProblem - Generate knowledge panels to report a problem with the data or the product
+
+=head1 SYNOPSIS
+
+Knowledge panels to indicate how to report a problem with the product data,
+or with the product (e.g. link to report to authorities like SignalConso in France)
+
+=cut
+
+package ProductOpener::KnowledgePanelsReportProblem;
+
+use ProductOpener::PerlStandards;
+use Exporter qw< import >;
+
+use Log::Any qw($log);
+
+BEGIN {
+ use vars qw(@ISA @EXPORT_OK %EXPORT_TAGS);
+ @EXPORT_OK = qw(
+ &create_report_problem_card_panel
+ &create_data_quality_panel
+ ); # symbols to export on request
+ %EXPORT_TAGS = (all => [@EXPORT_OK]);
+}
+
+use vars @EXPORT_OK;
+
+use ProductOpener::KnowledgePanels qw(create_panel_from_json_template);
+use ProductOpener::Tags qw(:all);
+
+use Encode;
+use Data::DeepAccess qw(deep_get);
+
+=head2 create_report_problem_card_panel ( $product_ref, $target_lc, $target_cc, $options_ref )
+
+Creates a knowledge panel card that contains all knowledge panels related to reporting problems.
+
+=head3 Arguments
+
+=head4 product reference $product_ref
+
+Loaded from the MongoDB database, Storable files, or the OFF API.
+
+=head4 language code $target_lc
+
+Returned attributes contain both data and strings intended to be displayed to users.
+This parameter sets the desired language for the user facing strings.
+
+=head4 country code $target_cc
+
+We may display country specific recommendations from health authorities, or country specific scores.
+
+=head4 options reference $options_ref
+
+=cut
+
+sub create_report_problem_card_panel ($product_ref, $target_lc, $target_cc, $options_ref) {
+
+ $log->debug("create contribution card panel", {code => $product_ref->{code}}) if $log->is_debug();
+
+ my @panels = ();
+ my $panel_data_ref = {};
+
+ # TODO: add a panel to display the consumer service contact information if we have it
+ # for the owner of the product. Otherwise, warn that we don't make or sell the product
+ # + 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
+
+ create_panel_from_json_template(
+ "incomplete_or_incorrect_data",
+ "api/knowledge-panels/report_problem/incomplete_or_incorrect_data.tt.json",
+ $panel_data_ref, $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
+
+ if (($target_cc eq "fr") and ($target_lc eq "fr")) {
+
+ create_panel_from_json_template(
+ "fr_report_product_signalconso",
+ "api/knowledge-panels/report_problem/fr_report_product_signalconso.tt.json",
+ $panel_data_ref, $product_ref, $target_lc, $target_cc, $options_ref
+ );
+ push(@panels, "fr_report_product_signalconso");
+ }
+
+ my $panel_data_ref = {report_problem_panels => \@panels,};
+ create_panel_from_json_template("report_problem_card",
+ "api/knowledge-panels/report_problem/report_problem_card.tt.json",
+ $panel_data_ref, $product_ref, $target_lc, $target_cc, $options_ref);
+
+ return;
+}
+
+1;
diff --git a/lib/ProductOpener/Products.pm b/lib/ProductOpener/Products.pm
index d4e2d66051ade..2e76577022b11 100644
--- a/lib/ProductOpener/Products.pm
+++ b/lib/ProductOpener/Products.pm
@@ -2798,54 +2798,31 @@ This function is called by the web/panels/panel.tt.html template for knowledge p
=cut
+my %actions_urls = (
+ edit_product => "",
+ add_categories => "#categories",
+ add_ingredients_image => "#ingredients",
+ add_ingredients_text => "#ingredients",
+ add_nutrition_facts_image => "#nutrition",
+ add_nutrition_facts => "#nutrition",
+ add_packaging_image => "#packaging",
+ add_packaging_text => "#packaging",
+ add_packaging_components => "#packaging",
+ add_origins => "#origins",
+ add_quantity => "#product_characteristics",
+ add_stores => "#stores",
+ add_packager_codes_image => "#packager_codes",
+ add_labels => "#labels",
+ add_countries => "#countries",
+);
+
sub product_action_url ($code, $action) {
my $url = "/cgi/product.pl?type=edit&code=" . $code;
- if ($action eq "add_categories") {
- $url .= "#categories";
- }
- elsif ($action eq "add_ingredients_image") {
- $url .= "#ingredients";
- }
- elsif ($action eq "add_ingredients_text") {
- $url .= "#ingredients";
- }
- elsif ($action eq "add_nutrition_facts_image") {
- $url .= "#nutrition";
- }
- elsif ($action eq "add_nutrition_facts") {
- $url .= "#nutrition";
- }
- elsif ($action eq "add_packaging_image") {
- $url .= "#packaging";
- }
- elsif ($action eq "add_packaging_text") {
- $url .= "#packaging";
- }
- elsif ($action eq "add_packaging_components") {
- $url .= "#packaging";
- }
- # Note: 27/11/2022 - Pierre - The following HTML anchors links will do nothing unless a matching custom HTML anchor is added in the future to the product edition template
- elsif ($action eq "add_origins") {
- $url .= "#origins";
- }
- elsif ($action eq "add_quantity") {
- $url .= "#product_characteristics";
- }
- elsif ($action eq "add_stores") {
- $url .= "#stores";
- }
- elsif ($action eq "add_packager_codes_image") {
- $url .= "#packager_codes";
- }
- elsif ($action eq "add_labels") {
- $url .= "#labels";
- }
- elsif ($action eq "add_countries") {
- $url .= "#countries";
+ if (defined $actions_urls{$action}) {
+ $url .= $actions_urls{$action};
}
- # END will do nothing unless a custom section is added
else {
$log->error("unknown product action", {code => $code, action => $action});
}
diff --git a/lib/ProductOpener/Store.pm b/lib/ProductOpener/Store.pm
index a0ba10a07eaf9..a204590093762 100644
--- a/lib/ProductOpener/Store.pm
+++ b/lib/ProductOpener/Store.pm
@@ -45,6 +45,7 @@ use ProductOpener::Config qw/:all/;
use ProductOpener::Paths qw/:all/;
use Storable qw(lock_store lock_nstore lock_retrieve);
+
use URI::Escape::XS;
use Unicode::Normalize;
use Log::Any qw($log);
diff --git a/po/common/common.pot b/po/common/common.pot
index ca2be7d6adf6d..cfafad15b760d 100644
--- a/po/common/common.pot
+++ b/po/common/common.pot
@@ -6842,6 +6842,34 @@ msgctxt "sweetener"
msgid "sweetener"
msgstr ""
+msgctxt "action_edit_product"
+msgid "Complete or correct product information"
+msgstr "Complete or correct product information"
+
+msgctxt "report_problem_panel_title"
+msgid "Report a problem"
+msgstr "Report a problem"
+
+msgctxt "incomplete_or_incorrect_data_title"
+msgid "Incomplete or incorrect information?"
+msgstr "Incomplete or incorrect information?"
+
+msgctxt "incomplete_or_incorrect_data_subtitle_off"
+msgid "Category, labels, ingredients, allergens, nutritional information, photos etc."
+msgstr "Category, labels, ingredients, allergens, nutritional information, photos etc."
+
+msgctxt "incomplete_or_incorrect_data_content_correct"
+msgid "If the information does not match the information on the packaging, you can complete or correct it. Thank you!"
+msgstr "If the information does not match the information on the packaging, you can complete or correct it. Thank you!"
+
+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 "description"
msgid "Description"
msgstr "Description"
+
+msgctxt "report_problem_navigation"
+msgid "Report a problem"
+msgstr "Report a problem"
diff --git a/po/common/en.po b/po/common/en.po
index aebe9ddf1ec6a..251bc80996604 100644
--- a/po/common/en.po
+++ b/po/common/en.po
@@ -6861,6 +6861,36 @@ msgctxt "sweetener"
msgid "sweetener"
msgstr "sweetener"
+msgctxt "action_edit_product"
+msgid "Complete or correct product information"
+msgstr "Complete or correct product information"
+
+msgctxt "report_problem_panel_title"
+msgid "Report a problem"
+msgstr "Report a problem"
+
+msgctxt "incomplete_or_incorrect_data_title"
+msgid "Incomplete or incorrect information?"
+msgstr "Incomplete or incorrect information?"
+
+msgctxt "incomplete_or_incorrect_data_subtitle_off"
+msgid "Category, labels, ingredients, allergens, nutritional information, photos etc."
+msgstr "Category, labels, ingredients, allergens, nutritional information, photos etc."
+
+msgctxt "incomplete_or_incorrect_data_content_correct"
+msgid "If the information does not match the information on the packaging, please complete or correct it."
+msgstr "If the information does not match the information on the packaging, please complete or correct it."
+
+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 "description"
msgid "Description"
-msgstr "Description"
\ No newline at end of file
+msgstr "Description"
+
+msgctxt "report_problem_navigation"
+msgid "Report a problem"
+msgstr "Report a problem"
+
+
diff --git a/po/common/fr.po b/po/common/fr.po
index d7e5c74c6026f..b42c3dc9439f8 100644
--- a/po/common/fr.po
+++ b/po/common/fr.po
@@ -6829,4 +6829,30 @@ msgctxt "api_result_product_reverted"
msgid "Product reverted to the specified revision"
msgstr "Produit rétabli à la version spécifiée"
+msgctxt "action_edit_product"
+msgid "Complete or correct product information"
+msgstr "Compléter ou corriger les informations du produit"
+msgctxt "report_problem_panel_title"
+msgid "Report a problem"
+msgstr "Signaler un problème"
+
+msgctxt "incomplete_or_incorrect_data_title"
+msgid "Incomplete or incorrect information?"
+msgstr "Informations incomplètes ou incorrectes ?"
+
+msgctxt "incomplete_or_incorrect_data_subtitle_off"
+msgid "Category, labels, ingredients, allergens, nutritional information, photos etc."
+msgstr "Catégorie, labels, ingrédients, allergènes, informations nutritionnelles, photos etc."
+
+msgctxt "incomplete_or_incorrect_data_content_correct"
+msgid "If the information does not match the information on the packaging, you can complete or correct it. Thank you!"
+msgstr "Si les informations ne correspondent pas aux informations présentes sur l'emballage, vous pouvez les compléter ou de les corriger. Merci !"
+
+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 est une base de données collaborative, et chaque contribution est utile à tous."
+
+msgctxt "report_problem_navigation"
+msgid "Signaler un problème"
+msgstr "Signaler un problème"
\ No newline at end of file
diff --git a/stop_words.txt b/stop_words.txt
index 9986eb2c4c626..8194f07261249 100644
--- a/stop_words.txt
+++ b/stop_words.txt
@@ -228,6 +228,7 @@ scrypt
Scrypt
serverTimePretty
sftp
+SignalConso
sirop
slad
Sonnenblumen
diff --git a/templates/api/knowledge-panels/report_problem/fr_report_product_signalconso.tt.json b/templates/api/knowledge-panels/report_problem/fr_report_product_signalconso.tt.json
new file mode 100644
index 0000000000000..def790d4b53b5
--- /dev/null
+++ b/templates/api/knowledge-panels/report_problem/fr_report_product_signalconso.tt.json
@@ -0,0 +1,35 @@
+{
+ "level": "info",
+ "topics": [
+ "problem"
+ ],
+ "expand_for": "large",
+ "evaluation": "neutral",
+ "title_element": {
+ "title": "Faire un signalement sur SignalConso",
+ "subtitle": "Etiquetage non conforme, vente d'un produit périmé, présence d'un corps étranger, etc.",
+ "icon_url": "[% static_subdomain %]/images/panels/report_problem/signalconso.png",
+ },
+ "elements": [
+ {
+ "element_type": "text",
+ "text_element": {
+ "html": `
+Vous avez rencontré un problème avec ce produit : étiquetage non conforme, produit périmé encore en vente,
+présence d'un corps étranger, etc. ?
+Faites un signalement à l'entreprise et à la répression des fraudes sur SignalConso, un outil de la
+Direction générale de la concurrence, de la consommation et de la répression des fraudes (DGCCRF).
+ `
+ },
+ },
+ {
+ "element_type": "image",
+ "image_element": {
+ "url": "[% static_subdomain %]/images/panels/report_problem/signalconso-button.png",
+ "alt": "Je fais un signalement sur SignalConso",
+ "link_url": "https://signal.conso.gouv.fr/fr/alimentaire-codebarres/faire-un-signalement?gtin=[% product.code %]&utm_source=openfoodfacts&utm_campaign=product_page_panel"
+ }
+
+ }
+ ]
+}
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
new file mode 100644
index 0000000000000..13015bf8fcad5
--- /dev/null
+++ b/templates/api/knowledge-panels/report_problem/incomplete_or_incorrect_data.tt.json
@@ -0,0 +1,31 @@
+{
+ "level": "info",
+ "topics": [
+ "problem"
+ ],
+ "expand_for": "large",
+ "evaluation": "neutral",
+ "title_element": {
+ "title": "[% edq(lang('incomplete_or_incorrect_data_title')) %]",
+ "subtitle": "[% edq(lang('incomplete_or_incorrect_data_subtitle_off')) %]",
+ "icon_url": "[% static_subdomain %]/images/logos/off-logo-icon-light.svg",
+ },
+ "elements": [
+ {
+ "element_type": "text",
+ "text_element": {
+ "html": `
+ [% lang('incomplete_or_incorrect_data_content_correct') %]
+ [% lang('incomplete_or_incorrect_data_content_correct_off') %]
+ `
+ },
+ },
+ {
+ "element_type": "action",
+ "action_element": {
+ "html": "",
+ "actions": ["edit_product"]
+ }
+ }
+ ]
+}
diff --git a/templates/api/knowledge-panels/report_problem/report_problem_card.tt.json b/templates/api/knowledge-panels/report_problem/report_problem_card.tt.json
new file mode 100644
index 0000000000000..182f26242bfb9
--- /dev/null
+++ b/templates/api/knowledge-panels/report_problem/report_problem_card.tt.json
@@ -0,0 +1,21 @@
+[%# A panel to indicate how to report problems with the product or its data %]
+{
+ "type": "card",
+ "expanded": true,
+ "topics": [
+ "problems"
+ ],
+ "title_element": {
+ "title": "[% edq(lang('report_problem_panel_title')) %]",
+ },
+ "elements": [
+ [% FOREACH panel_name IN panel.report_problem_panels %]
+ {
+ "element_type": "panel",
+ "panel_element": {
+ "panel_id": "[% panel_name %]",
+ },
+ },
+ [% END %]
+ ],
+}
\ No newline at end of file
diff --git a/templates/api/knowledge-panels/root.tt.json b/templates/api/knowledge-panels/root.tt.json
index cc070f60e2c07..e17e24d623071 100644
--- a/templates/api/knowledge-panels/root.tt.json
+++ b/templates/api/knowledge-panels/root.tt.json
@@ -14,6 +14,12 @@
"panel_id": "environment_card",
},
},
+ {
+ "element_type": "panel",
+ "panel_element": {
+ "panel_id": "report_problem_card",
+ },
+ },
[% IF panel.has_contribution_card %]
{
"element_type": "panel",
diff --git a/templates/web/pages/product/product_page.tt.html b/templates/web/pages/product/product_page.tt.html
index c912c87404607..5c20fcc2e0458 100755
--- a/templates/web/pages/product/product_page.tt.html
+++ b/templates/web/pages/product/product_page.tt.html
@@ -86,6 +86,7 @@
[% title %]
[% lang("your_criteria") %]
[% lang("health") %]
[% lang("environment") %]
+ [% lang("report_problem_navigation") %]
[% lang("contribution_navigation") %]
@@ -222,9 +223,6 @@ [% lang('matching_with_your_preferences') %]
-
-
-
[% IF other_fields != "" %]
@@ -247,7 +245,15 @@ [% lang('product_other_in
[% END %]
-
+
+
+
+
+ [% report_problem_card_panel %]
+
+
+
+
[% IF server_options_producers_platform %]
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 91bf421ff2575..9e02bf78a6fc9 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
@@ -1313,6 +1313,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -1966,6 +1996,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -1979,6 +2027,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 7f7a13f763f64..f1049c039a058 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
@@ -1961,6 +1961,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -2614,6 +2644,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -2627,6 +2675,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 965a9fb3ab45c..9548fe5c6ac56 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
@@ -627,6 +627,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n Si les informations ne correspondent pas aux informations présentes sur l'emballage, vous pouvez les compléter ou de les corriger. Merci !\n Open Food Facts est une base de données collaborative, et chaque contribution est utile à tous.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Catégorie, labels, ingrédients, allergènes, informations nutritionnelles, photos etc.",
+ "title" : "Informations incomplètes ou incorrectes ?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -1280,6 +1310,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Signaler un problème"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -1293,6 +1341,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 66d0ea58d5f20..e329b055a92be 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
@@ -627,6 +627,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -1280,6 +1310,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -1293,6 +1341,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 819eaf1dde919..70694b067c742 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
@@ -1315,6 +1315,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -1968,6 +1998,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -1981,6 +2029,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 c64fc37593c20..370e7e9b41d74 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
@@ -1963,6 +1963,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -2616,6 +2646,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -2629,6 +2677,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 54966d8f3f6bd..1467559f66f5e 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
@@ -628,6 +628,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n Si les informations ne correspondent pas aux informations présentes sur l'emballage, vous pouvez les compléter ou de les corriger. Merci !\n Open Food Facts est une base de données collaborative, et chaque contribution est utile à tous.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Catégorie, labels, ingrédients, allergènes, informations nutritionnelles, photos etc.",
+ "title" : "Informations incomplètes ou incorrectes ?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -1281,6 +1311,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Signaler un problème"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -1294,6 +1342,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 e0777e948f0e8..c806ed564da0a 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
@@ -628,6 +628,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -1281,6 +1311,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -1294,6 +1342,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 f9325b254c176..866acc4cb3111 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
@@ -444,6 +444,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -829,6 +859,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -842,6 +890,12 @@
"panel_element" : {
"panel_id" : "environment_card"
}
+ },
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
}
],
"expanded" : true,
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 156ec02bc6052..368f4417e0247 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
@@ -298,6 +298,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -937,6 +967,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -951,6 +999,12 @@
"panel_id" : "environment_card"
}
},
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
+ },
{
"element_type" : "panel",
"panel_element" : {
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 d13f4dd71cccb..0dce49cba2c04 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
@@ -260,6 +260,36 @@
],
"type" : "card"
},
+ "incomplete_or_incorrect_data" : {
+ "elements" : [
+ {
+ "element_type" : "text",
+ "text_element" : {
+ "html" : "\n If the information does not match the information on the packaging, please complete or correct it.\n Open Food Facts is a collaborative database, and every contribution is useful for all.\n "
+ }
+ },
+ {
+ "action_element" : {
+ "actions" : [
+ "edit_product"
+ ],
+ "html" : ""
+ },
+ "element_type" : "action"
+ }
+ ],
+ "evaluation" : "neutral",
+ "expand_for" : "large",
+ "level" : "info",
+ "title_element" : {
+ "icon_url" : "http://static.openfoodfacts.localhost/images/logos/off-logo-icon-light.svg",
+ "subtitle" : "Category, labels, ingredients, allergens, nutritional information, photos etc.",
+ "title" : "Incomplete or incorrect information?"
+ },
+ "topics" : [
+ "problem"
+ ]
+ },
"ingredients" : {
"elements" : [
{
@@ -840,6 +870,24 @@
"environment"
]
},
+ "report_problem_card" : {
+ "elements" : [
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "incomplete_or_incorrect_data"
+ }
+ }
+ ],
+ "expanded" : true,
+ "title_element" : {
+ "title" : "Report a problem"
+ },
+ "topics" : [
+ "problems"
+ ],
+ "type" : "card"
+ },
"root" : {
"elements" : [
{
@@ -854,6 +902,12 @@
"panel_id" : "environment_card"
}
},
+ {
+ "element_type" : "panel",
+ "panel_element" : {
+ "panel_id" : "report_problem_card"
+ }
+ },
{
"element_type" : "panel",
"panel_element" : {
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 d9841b0254b94..3455a5c120ff9 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
@@ -379,6 +379,7 @@ Only-Product - Nutella
Your criteria
Health
Environment
+ Report a problem
Contribution
@@ -3253,13 +3254,126 @@ Transportation
+
+
+
+
+
+
-
+
+
+
+
+
+
+
Report a problem
+
+
+
+
+
+
+
+
+
+
+
+
+
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 d9841b0254b94..3455a5c120ff9 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
@@ -379,6 +379,7 @@ Only-Product - Nutella
Your criteria
Health
Environment
+ Report a problem
Contribution
@@ -3253,13 +3254,126 @@ Transportation
+
+
+
+
+
+
-
+
+
+
+
+
+
+
Report a problem
+
+
+
+
+
+
+
+
+
+
+
+
+
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 d44104867fa52..bb61fd9b2427b 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
@@ -377,6 +377,7 @@ Some product - 100 g
Your criteria
Health
Environment
+ Report a problem
Contribution
@@ -3848,13 +3849,126 @@ Threatened species
+
+
+
+
+
+
-
+
+
+
+
+
+
+
Report a problem
+
+
+
+
+
+
+
+
+
+
+
+
+
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 1d5bbd7c22735..45699b031dbce 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
@@ -379,6 +379,7 @@ Tarte aux pommes et aux
Vos critères
Santé
Environnement
+ Signaler un problème
Contribution
@@ -3449,13 +3450,203 @@ Espèces menacées
+
+
+
+
+
+
+
+
-
+
+
+
+
+
Signaler un problème
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 c8e0c3c09a32f..9f53971987956 100644
--- a/tests/integration/expected_test_results/web_html/fr-product.html
+++ b/tests/integration/expected_test_results/web_html/fr-product.html
@@ -379,6 +379,7 @@ Apple pie - Bob's pies
Vos critères
Santé
Environnement
+ Signaler un problème
Contribution
@@ -3463,13 +3464,203 @@ Espèces menacées
+
+
+
+
+
+
+
+
-
+
+
+
+
+
Signaler un problème
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 154406e188400..a98b02be367d5 100644
--- a/tests/integration/expected_test_results/web_html/world-product.html
+++ b/tests/integration/expected_test_results/web_html/world-product.html
@@ -379,6 +379,7 @@ Apple pie - Bob's pies
Your criteria
Health
Environment
+ Report a problem
Contribution
@@ -3478,13 +3479,126 @@ Threatened species
+
+
+
+
+
+
-
+
+
+
+
+
+
+
Report a problem
+
+
+
+
+
+
+
+
+
+
+
+
+