diff --git a/app/controllers/manager/published_procedures_controller.rb b/app/controllers/manager/published_procedures_controller.rb new file mode 100644 index 000000000..887ccf9ab --- /dev/null +++ b/app/controllers/manager/published_procedures_controller.rb @@ -0,0 +1,20 @@ +module Manager + class PublishedProceduresController < Manager::ApplicationController + def index + @records_per_page = params[:records_per_page] || "25" + resources = Procedure + .publiee + .order(published_at: :desc) + .page(params[:_page]) + .per(@records_per_page) + page = Administrate::Page::Collection.new(dashboard) + + render locals: { + resources: resources, + page: page, + show_search_bar: false, + search_term: nil + } + end + end +end diff --git a/app/dashboards/published_procedure_dashboard.rb b/app/dashboards/published_procedure_dashboard.rb new file mode 100644 index 000000000..2c403299d --- /dev/null +++ b/app/dashboards/published_procedure_dashboard.rb @@ -0,0 +1,14 @@ +require "administrate/base_dashboard" + +class PublishedProcedureDashboard < Administrate::BaseDashboard + ATTRIBUTE_TYPES = { + id: Field::Number, + libelle: Field::Text.with_options(truncate: 1000), + description: Field::Text.with_options(truncate: 1000), + service: Field::HasOne, + published_at: Field::DateTime + }.freeze + COLLECTION_ATTRIBUTES = [:id, :published_at, :libelle, :description, :service].freeze + COLLECTION_FILTERS = {}.freeze + SHOW_PAGE_ATTRIBUTES = {} +end diff --git a/app/models/published_procedure.rb b/app/models/published_procedure.rb new file mode 100644 index 000000000..5127d6a4e --- /dev/null +++ b/app/models/published_procedure.rb @@ -0,0 +1,4 @@ +class PublishedProcedure + extend ActiveModel::Naming + extend ActiveModel::Translation +end diff --git a/app/views/manager/published_procedures/index.html.erb b/app/views/manager/published_procedures/index.html.erb new file mode 100644 index 000000000..8317246ba --- /dev/null +++ b/app/views/manager/published_procedures/index.html.erb @@ -0,0 +1,66 @@ +<%# +# Index + +This view is the template for the index page. +It is responsible for rendering the search bar, header and pagination. +It renders the `_table` partial to display details about the resources. + +## Local variables: + +- `page`: + An instance of [Administrate::Page::Collection][1]. + Contains helper methods to help display a table, + and knows which attributes should be displayed in the resource's table. +- `resources`: + An instance of `ActiveRecord::Relation` containing the resources + that match the user's search criteria. + By default, these resources are passed to the table partial to be displayed. +- `search_term`: + A string containing the term the user has searched for, if any. +- `show_search_bar`: + A boolean that determines if the search bar should be shown. + +[1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Collection +%> + +<% content_for(:title) do %> + <%= display_resource_name(page.resource_name) %> +<% end %> + + + +
+ <%= render( + "collection", + collection_presenter: page, + collection_field_name: resource_name, + page: page, + resources: resources, + table_title: "page-title" + ) %> + + <%= render "pagination", resources: resources %> +
diff --git a/config/locales/models/published_procedure/fr.yml b/config/locales/models/published_procedure/fr.yml new file mode 100644 index 000000000..7de23ac03 --- /dev/null +++ b/config/locales/models/published_procedure/fr.yml @@ -0,0 +1,10 @@ +fr: + activemodel: + models: + published_procedure: + one: Démarche publiée + other: Démarches publiées + attributes: + published_procedure: + published_at: Publiée le + libelle: Libellé diff --git a/config/routes.rb b/config/routes.rb index 75a44fd05..f19f49861 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -97,6 +97,7 @@ Rails.application.routes.draw do end resources :dubious_procedures, only: [:index] + resources :published_procedures, only: [:index] resources :outdated_procedures, only: [:index] do patch :bulk_update, on: :collection end