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