[Fix #1098] Add procedures dashboard

This commit is contained in:
Mathieu Magnin 2017-12-28 19:44:11 +01:00
parent b2b26b73ab
commit d0de9b9ae2
4 changed files with 125 additions and 0 deletions

View file

@ -0,0 +1,23 @@
# All Administrate controllers inherit from this `Admin::ApplicationController`,
# making it the ideal place to put authentication logic or other
# before_actions.
#
# If you want to add pagination or other controller-level concerns,
# you're free to overwrite the RESTful controller actions.
module Manager
class ApplicationController < Administrate::ApplicationController
before_action :authenticate_administration!
before_action :default_params
# Override this value to specify the number of elements to display at a time
# on index pages. Defaults to 20.
# def records_per_page
# params[:per_page] || 20
# end
def default_params
params[:order] ||= "created_at"
params[:direction] ||= "desc"
end
end
end

View file

@ -0,0 +1,21 @@
module Manager
class ProceduresController < Manager::ApplicationController
# To customize the behavior of this controller,
# simply overwrite any of the RESTful actions. For example:
#
# def index
# super
# @resources = Procedure.
# page(params[:page]).
# per(10)
# end
# Define a custom finder by overriding the `find_resource` method:
# def find_resource(param)
# Procedure.find_by!(slug: param)
# end
# See https://administrate-prototype.herokuapp.com/customizing_controller_actions
# for more information
end
end

View file

@ -0,0 +1,75 @@
require "administrate/base_dashboard"
class ProcedureDashboard < Administrate::BaseDashboard
# ATTRIBUTE_TYPES
# a hash that describes the type of each of the model's fields.
#
# Each different type represents an Administrate::Field object,
# which determines how the attribute is displayed
# on pages throughout the dashboard.
ATTRIBUTE_TYPES = {
types_de_piece_justificative: Field::HasMany,
types_de_champ: Field::HasMany.with_options(class_name: "TypeDeChampPublic"),
dossiers: Field::HasMany,
procedure_path: Field::HasOne,
administrateur: Field::BelongsTo,
id: Field::Number,
libelle: Field::String,
description: Field::String,
organisation: Field::String,
direction: Field::String,
created_at: Field::DateTime,
updated_at: Field::DateTime,
for_individual: Field::Boolean,
individual_with_siret: Field::Boolean,
auto_archive_on: Field::DateTime,
published_at: Field::DateTime,
hidden_at: Field::DateTime,
archived_at: Field::DateTime,
}.freeze
# COLLECTION_ATTRIBUTES
# an array of attributes that will be displayed on the model's index page.
#
# By default, it's limited to four items to reduce clutter on index pages.
# Feel free to add, remove, or rearrange items.
COLLECTION_ATTRIBUTES = [
:id,
:created_at,
:libelle,
:organisation,
:dossiers,
:published_at,
].freeze
# SHOW_PAGE_ATTRIBUTES
# an array of attributes that will be displayed on the model's show page.
SHOW_PAGE_ATTRIBUTES = [
:id,
:libelle,
:description,
:organisation,
:direction,
:created_at,
:updated_at,
:published_at,
:hidden_at,
:archived_at,
:types_de_champ,
:for_individual,
:individual_with_siret,
:auto_archive_on,
].freeze
# FORM_ATTRIBUTES
# an array of attributes that will be displayed
# on the model's form (`new` and `edit`) pages.
FORM_ATTRIBUTES = [].freeze
# Overwrite this method to customize how procedures are displayed
# across all pages of the admin dashboard.
#
# def display_resource(procedure)
# "Procedure ##{procedure.id}"
# end
end

View file

@ -1,4 +1,10 @@
Rails.application.routes.draw do
namespace :manager do
resources :procedures, only: [:index, :show]
root to: "procedures#index"
end
get "/ping" => "ping#index", :constraints => {:ip => /127.0.0.1/}
devise_for :administrations,