diff --git a/app/controllers/gobierto_data/api/v1/datasets_controller.rb b/app/controllers/gobierto_data/api/v1/datasets_controller.rb
index 85c6aedff6..4e52fe9297 100644
--- a/app/controllers/gobierto_data/api/v1/datasets_controller.rb
+++ b/app/controllers/gobierto_data/api/v1/datasets_controller.rb
@@ -15,8 +15,8 @@ class DatasetsController < BaseController
def catalog
@catalog = DatasetPresenter.new(current_site).build_catalog
respond_to do |format|
- format.xml
- end
+ format.xml
+ end
end
# GET /api/v1/data/datasets
diff --git a/app/presenters/gobierto_data/dataset_presenter.rb b/app/presenters/gobierto_data/dataset_presenter.rb
index 73e0153893..733d995a5a 100644
--- a/app/presenters/gobierto_data/dataset_presenter.rb
+++ b/app/presenters/gobierto_data/dataset_presenter.rb
@@ -1,6 +1,7 @@
module GobiertoData
class DatasetPresenter
include ActionView::Helpers::UrlHelper
+ include ActionView::Helpers::TranslationHelper
attr_reader :site
@@ -11,13 +12,12 @@ def initialize(site)
def build_catalog
catalog = {
identifier_uri: url_helpers.gobierto_data_root_url(host: site.domain),
- title: "dcat catalog for #{site}",
- description: "this is catalog published by #{@catalog_identifier_uri} which contains datasets",
+ title: I18n.t('presenters.gobierto_data.catalog.title',site: site),
+ description: I18n.t('presenters.gobierto_data.catalog.description',site: site, publisher_url: url_helpers.gobierto_data_root_url(host: site.domain)),
issued: site.created_at,
- modified: GobiertoData::Dataset.where(site_id: site.id).maximum(:created_at) || site.created_at,
- languages: site["configuration_data"]["available_locales"],
+ modified: site.updated_at,
+ language: site_locale,
homepage: url_helpers.gobierto_data_root_url(host: site.domain),
- license_url: "https://opendatacommons.org/licenses/odbl/",
datasets: build_datasets_for_catalog
}
end
@@ -25,34 +25,30 @@ def build_catalog
private
def build_datasets_for_catalog
- datasets = []
- Dataset.where(site_id: site.id).visibles.each do |dataset|
- datasets << build_dataset_for_catalog(dataset)
+ site.datasets.visibles.map do |dataset|
+ build_dataset_for_catalog(dataset)
end
- datasets
end
def build_dataset_for_catalog(dataset)
{
- url: url_helpers.gobierto_data_datasets_url(host: site.domain, id: dataset.slug),
- title: dataset.name,
- description: description_custom_field_record(dataset),
- keywords: [],
- issued: dataset.created_at,
- modified: dataset.updated_at,
- languages: [site_locale],
- license_url: "https://opendatacommons.org/licenses/odbl/",
- publisher: site.name,
+ url: url_helpers.gobierto_data_datasets_url(host: site.domain, id: dataset.slug),
+ title: dataset.name,
+ description: description_custom_field_record(dataset),
+ issued: dataset.created_at,
+ modified: dataset.updated_at,
+ languages: [site_locale],
+ publisher: site.name,
publisher_mbox: site.reply_to_email,
- distributions: build_distribution_for_catalog(dataset)
+ distributions: build_distribution_for_catalog(dataset)
}
end
def build_distribution_for_catalog(dataset)
[
{
- format: 'application/csv',
- download_url: url_helpers.download_gobierto_data_api_v1_dataset_url(dataset, host: site.domain)
+ format: 'application/csv',
+ download_url: url_helpers.download_gobierto_data_api_v1_dataset_url(slug: dataset.slug, host: site.domain)
}
]
end
diff --git a/app/views/gobierto_data/api/v1/datasets/catalog.xml.erb b/app/views/gobierto_data/api/v1/datasets/catalog.xml.erb
index 2e84ea7a4d..f79c345384 100644
--- a/app/views/gobierto_data/api/v1/datasets/catalog.xml.erb
+++ b/app/views/gobierto_data/api/v1/datasets/catalog.xml.erb
@@ -13,15 +13,13 @@
<%= @catalog[:description] %>
<%= @catalog[:issued] %>
<%= @catalog[:modified] %>
- <%= @catalog[:languages].map { |locale| "#{locale}" }.join.html_safe %>
+ <%= @catalog[:language] %>
-
<% @catalog[:datasets].each do |dataset| %>
<%= dataset[:url] %>
<%= dataset[:title] %>
<%= dataset[:description] %>
- <%= dataset[:keywords].map { |keyword| "#{locale}" }.join.html_safe %>
<%= dataset[:issued] %>
<%= dataset[:modified] %>
<%= dataset[:languages].map { |lang| "#{lang}" }.join.html_safe %>
@@ -40,7 +38,6 @@
<%= dataset[:description] %>
<%= distribution[:download_url] %>
<%= distribution[:format] %>
-
<% end %>
diff --git a/config/locales/gobierto_data/presenters/ca.yml b/config/locales/gobierto_data/presenters/ca.yml
new file mode 100644
index 0000000000..4b18ad0796
--- /dev/null
+++ b/config/locales/gobierto_data/presenters/ca.yml
@@ -0,0 +1,8 @@
+---
+ca:
+ presenters:
+ gobierto_data:
+ catalog:
+ description: Catàleg public de dades dels conjunts de dades publicades per%
+ {site}, a través de la URL% {publisher_url}
+ title: Catàleg DCAT de conjunts de dades de %{site} en format rdf/xml dcat
diff --git a/config/locales/gobierto_data/presenters/en.yml b/config/locales/gobierto_data/presenters/en.yml
new file mode 100644
index 0000000000..54874ba590
--- /dev/null
+++ b/config/locales/gobierto_data/presenters/en.yml
@@ -0,0 +1,8 @@
+---
+en:
+ presenters:
+ gobierto_data:
+ catalog:
+ description: Public catalog with datasets published by %{site}, through URL
+ %{publisher_url}
+ title: Catalog for datasets of %{site} into format rdf/xml dcat
diff --git a/config/locales/gobierto_data/presenters/es.yml b/config/locales/gobierto_data/presenters/es.yml
new file mode 100644
index 0000000000..e928281ffc
--- /dev/null
+++ b/config/locales/gobierto_data/presenters/es.yml
@@ -0,0 +1,9 @@
+---
+es:
+ presenters:
+ gobierto_data:
+ catalog:
+ description: Catalogo publico de datos los conjuntos de datos publicados por
+ %{site}, a través de la URL %{publisher_url}
+ title: Catalogo DCAT para los conjuntos de datos de %{site} en formato rdf/xml
+ dcat
diff --git a/config/routes.rb b/config/routes.rb
index fa04efc454..6cc04b6007 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -641,6 +641,8 @@
resources :favorites, only: [:index]
collection do
get :meta
+ # get :catalog
+ get "catalog" => "datasets#catalog"
end
member do
get "meta" => "datasets#dataset_meta"
@@ -664,7 +666,6 @@
resource :favorite, only: [:create, :destroy]
resources :favorites, only: [:index]
end
- get "catalog" => "datasets#catalog"
end
end
end
diff --git a/test/presenters/gobierto_data/dataset_presenter_test.rb b/test/presenters/gobierto_data/dataset_presenter_test.rb
index 2dcdaca88d..76e9cb9389 100644
--- a/test/presenters/gobierto_data/dataset_presenter_test.rb
+++ b/test/presenters/gobierto_data/dataset_presenter_test.rb
@@ -26,19 +26,16 @@ def test_structure_catalog_building_using_site_with_datasets
assert catalog.has_key? :description
assert catalog.has_key? :issued
assert catalog.has_key? :modified
- assert catalog.has_key? :languages
+ assert catalog.has_key? :language
assert catalog.has_key? :homepage
- assert catalog.has_key? :license_url
assert catalog.has_key? :datasets
catalog[:datasets].each do |dataset|
assert dataset.has_key? :url
assert dataset.has_key? :title
assert dataset.has_key? :description
- assert dataset.has_key? :keywords
assert dataset.has_key? :issued
assert dataset.has_key? :modified
assert dataset.has_key? :languages
- assert dataset.has_key? :license_url
assert dataset.has_key? :publisher
assert dataset.has_key? :publisher_mbox
assert dataset.has_key? :distributions