diff --git a/apps/transport/lib/transport_web/controllers/dataset_controller.ex b/apps/transport/lib/transport_web/controllers/dataset_controller.ex
index 3b5a0de4f6..b0f6dc00b5 100644
--- a/apps/transport/lib/transport_web/controllers/dataset_controller.ex
+++ b/apps/transport/lib/transport_web/controllers/dataset_controller.ex
@@ -140,7 +140,8 @@ defmodule TransportWeb.DatasetController do
Transport.Validators.GTFSRT,
Transport.Validators.TableSchema,
Transport.Validators.EXJSONSchema,
- Transport.Validators.GBFSValidator
+ Transport.Validators.GBFSValidator,
+ Transport.Validators.NeTEx
]
def resources_infos(dataset) do
diff --git a/apps/transport/lib/transport_web/templates/dataset/_resource.html.heex b/apps/transport/lib/transport_web/templates/dataset/_resource.html.heex
index 4e712e2f74..a49bdc5cde 100644
--- a/apps/transport/lib/transport_web/templates/dataset/_resource.html.heex
+++ b/apps/transport/lib/transport_web/templates/dataset/_resource.html.heex
@@ -98,24 +98,22 @@
<% end %>
<%= if Resource.gtfs?(@resource) do %>
- <%= if GTFSTransport.mine?(validation) do %>
-
- <% end %>
+ <%= render(TransportWeb.DatasetView, "_resource_validation_summary_gtfs.html",
+ conn: @conn,
+ resource: @resource,
+ validation: validation
+ ) %>
+ <% end %>
+
+ <%= if Resource.netex?(@resource) do %>
+ <%= render(TransportWeb.DatasetView, "_resource_validation_summary_netex.html",
+ conn: @conn,
+ resource: @resource,
+ validation: validation
+ ) %>
<% end %>
- <%= unless Resource.gtfs?(@resource) do %>
+ <%= unless Resource.gtfs?(@resource) or Resource.netex?(@resource) do %>
<%= if multi_validation_performed?(validation) do %>
<% nb_warnings = warnings_count(validation) %>
<% nb_errors = errors_count(validation) %>
diff --git a/apps/transport/lib/transport_web/templates/dataset/_resource_validation_summary_gtfs.html.heex b/apps/transport/lib/transport_web/templates/dataset/_resource_validation_summary_gtfs.html.heex
new file mode 100644
index 0000000000..c9b52f6f83
--- /dev/null
+++ b/apps/transport/lib/transport_web/templates/dataset/_resource_validation_summary_gtfs.html.heex
@@ -0,0 +1,16 @@
+<%= if GTFSTransport.mine?(@validation) do %>
+
+<% end %>
diff --git a/apps/transport/lib/transport_web/templates/dataset/_resource_validation_summary_netex.html.heex b/apps/transport/lib/transport_web/templates/dataset/_resource_validation_summary_netex.html.heex
new file mode 100644
index 0000000000..4412cf714c
--- /dev/null
+++ b/apps/transport/lib/transport_web/templates/dataset/_resource_validation_summary_netex.html.heex
@@ -0,0 +1,14 @@
+
diff --git a/apps/transport/lib/transport_web/views/dataset_view.ex b/apps/transport/lib/transport_web/views/dataset_view.ex
index 8d07657bf2..f9d2552def 100644
--- a/apps/transport/lib/transport_web/views/dataset_view.ex
+++ b/apps/transport/lib/transport_web/views/dataset_view.ex
@@ -11,6 +11,7 @@ defmodule TransportWeb.DatasetView do
import DB.MultiValidation, only: [get_metadata_info: 2, get_metadata_info: 3]
alias Shared.DateTimeDisplay
alias Transport.Validators.GTFSTransport
+ alias Transport.Validators.NeTEx
@gtfs_rt_validator_name Transport.Validators.GTFSRT.validator_name()
diff --git a/apps/transport/lib/validators/gtfs_transport_validator.ex b/apps/transport/lib/validators/gtfs_transport_validator.ex
index 66f37f7933..a44f2a27d1 100644
--- a/apps/transport/lib/validators/gtfs_transport_validator.ex
+++ b/apps/transport/lib/validators/gtfs_transport_validator.ex
@@ -174,6 +174,8 @@ defmodule Transport.Validators.GTFSTransport do
|> Enum.min_by(fn {severity, _count} -> severity |> severity() |> Map.get(:level) end)
end
+ def no_error?(severity), do: @no_error == severity
+
@spec mine?(any) :: boolean()
def mine?(%{validator: validator}), do: validator == validator_name()
def mine?(_), do: false
diff --git a/apps/transport/lib/validators/netex_validator.ex b/apps/transport/lib/validators/netex_validator.ex
index cc7bb0fa9d..ae2e5b69bd 100644
--- a/apps/transport/lib/validators/netex_validator.ex
+++ b/apps/transport/lib/validators/netex_validator.ex
@@ -179,6 +179,8 @@ defmodule Transport.Validators.NeTEx do
|> Enum.min_by(fn {severity, _count} -> severity |> severity() |> Map.get(:level) end)
end
+ def no_error?(severity), do: @no_error == severity
+
@spec severities_map() :: map()
def severities_map,
do: %{
diff --git a/apps/transport/test/transport_web/controllers/dataset_controller_test.exs b/apps/transport/test/transport_web/controllers/dataset_controller_test.exs
index 46d10ad2c4..171530ef9f 100644
--- a/apps/transport/test/transport_web/controllers/dataset_controller_test.exs
+++ b/apps/transport/test/transport_web/controllers/dataset_controller_test.exs
@@ -401,6 +401,30 @@ defmodule TransportWeb.DatasetControllerTest do
assert conn |> html_response(200) =~ "1 erreur"
end
+ test "show NeTEx number of errors", %{conn: conn} do
+ %{id: dataset_id} = insert(:dataset, %{slug: slug = "dataset-slug", aom: build(:aom)})
+
+ %{id: resource_id} = insert(:resource, %{dataset_id: dataset_id, format: "NeTEx", url: "url"})
+
+ %{id: resource_history_id} = insert(:resource_history, %{resource_id: resource_id})
+
+ insert(:multi_validation, %{
+ resource_history_id: resource_history_id,
+ validator: Transport.Validators.NeTEx.validator_name(),
+ result: %{"xsd-1871" => [%{"criticity" => "error"}]},
+ metadata: %DB.ResourceMetadata{
+ metadata: %{"elapsed_seconds" => 42},
+ modes: [],
+ features: []
+ }
+ })
+
+ mock_empty_history_resources()
+
+ conn = conn |> get(dataset_path(conn, :details, slug))
+ assert conn |> html_response(200) =~ "1 erreurs"
+ end
+
test "GTFS-RT without validation", %{conn: conn} do
%{id: dataset_id} = insert(:dataset, %{slug: slug = "dataset-slug"})
insert(:resource, %{dataset_id: dataset_id, format: "gtfs-rt", url: "url"})