- migrate page show to edit for procedure admin
- create new page show for procedure admin
This commit is contained in:
parent
debac1ed91
commit
92d57db91d
14 changed files with 236 additions and 73 deletions
|
@ -8,18 +8,18 @@ class Admin::ProceduresController < AdminController
|
|||
|
||||
def archived
|
||||
@procedures = current_administrateur.procedures.where(archived: true)
|
||||
.paginate(:page => params[:page]).decorate
|
||||
.paginate(:page => params[:page]).decorate
|
||||
@page = 'archived'
|
||||
end
|
||||
|
||||
def show
|
||||
@procedure = current_administrateur.procedures.find(params[:id]).decorate
|
||||
@types_de_champ = @procedure.types_de_champ.order(:order_place)
|
||||
@types_de_piece_justificative = @procedure.types_de_piece_justificative.order(:libelle)
|
||||
informations
|
||||
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
flash.alert = 'Procédure inéxistante'
|
||||
redirect_to admin_procedures_path
|
||||
@facade = AdminProceduresShowFacades.new @procedure
|
||||
end
|
||||
|
||||
def edit
|
||||
informations
|
||||
end
|
||||
|
||||
def new
|
||||
|
@ -43,7 +43,7 @@ class Admin::ProceduresController < AdminController
|
|||
|
||||
unless @procedure.update_attributes(create_procedure_params)
|
||||
flash.now.alert = @procedure.errors.full_messages.join('<br />').html_safe
|
||||
return render 'show'
|
||||
return render 'edit'
|
||||
end
|
||||
flash.notice = 'Préocédure modifiée'
|
||||
redirect_to admin_procedures_path
|
||||
|
@ -66,4 +66,12 @@ class Admin::ProceduresController < AdminController
|
|||
def create_procedure_params
|
||||
params.require(:procedure).permit(:libelle, :description, :organisation, :direction, :lien_demarche, :use_api_carto).merge(administrateur_id: current_administrateur.id)
|
||||
end
|
||||
|
||||
def informations
|
||||
@procedure = current_administrateur.procedures.find(params[:id]).decorate
|
||||
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
flash.alert = 'Procédure inéxistante'
|
||||
redirect_to admin_procedures_path
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,6 +13,16 @@ class DossierDecorator < Draper::Decorator
|
|||
end
|
||||
|
||||
def state_fr
|
||||
DossierDecorator.case_state_fr state
|
||||
end
|
||||
|
||||
def state_color_class
|
||||
return 'text-danger' if waiting_for_gestionnaire?
|
||||
return 'text-info' if waiting_for_user?
|
||||
return 'text-success' if termine?
|
||||
end
|
||||
|
||||
def self.case_state_fr state=self.state
|
||||
case state
|
||||
when 'draft'
|
||||
'Brouillon'
|
||||
|
@ -32,10 +42,4 @@ class DossierDecorator < Draper::Decorator
|
|||
fail 'State not valid'
|
||||
end
|
||||
end
|
||||
|
||||
def state_color_class
|
||||
return 'text-danger' if waiting_for_gestionnaire?
|
||||
return 'text-info' if waiting_for_user?
|
||||
return 'text-success' if termine?
|
||||
end
|
||||
end
|
||||
|
|
43
app/facades/admin_procedures_show_facades.rb
Normal file
43
app/facades/admin_procedures_show_facades.rb
Normal file
|
@ -0,0 +1,43 @@
|
|||
class AdminProceduresShowFacades
|
||||
def initialize procedure
|
||||
@procedure = procedure
|
||||
end
|
||||
|
||||
def procedure
|
||||
@procedure
|
||||
end
|
||||
|
||||
def dossiers
|
||||
@procedure.dossiers.where.not(state: :draft)
|
||||
end
|
||||
|
||||
def dossiers_for_pie_highchart
|
||||
dossiers.where.not(state: :draft, archived: true).group(:state).count
|
||||
.map{|key, value| { (DossierDecorator.case_state_fr key) => value } }
|
||||
.reduce({}, :merge)
|
||||
end
|
||||
|
||||
def dossiers_archived_by_state_total
|
||||
dossiers.select('state, count(*) as total').where(archived: true).where.not(state: :termine).group(:state).order(:state).decorate
|
||||
end
|
||||
|
||||
def dossiers_archived_total
|
||||
dossiers.where(archived: true).where.not(state: :termine).size
|
||||
end
|
||||
|
||||
def dossiers_total
|
||||
dossiers.size
|
||||
end
|
||||
|
||||
def dossiers_waiting_gestionnaire_total
|
||||
dossiers.waiting_for_gestionnaire.size
|
||||
end
|
||||
|
||||
def dossiers_waiting_user_total
|
||||
dossiers.waiting_for_user.size
|
||||
end
|
||||
|
||||
def dossiers_termine_total
|
||||
dossiers.where(state: :termine).size
|
||||
end
|
||||
end
|
|
@ -3,7 +3,8 @@
|
|||
%br
|
||||
|
||||
%ul.nav.nav-tabs
|
||||
%li= link_to('Description', admin_procedure_path(@procedure))
|
||||
%li= link_to('Informations', admin_procedure_path(@procedure))
|
||||
%li= link_to('Description', edit_admin_procedure_path(@procedure))
|
||||
%li= link_to('Champs', admin_procedure_types_de_champ_path(@procedure))
|
||||
%li.active= link_to('Pièces justificatives', admin_procedure_pieces_justificatives_path(@procedure))
|
||||
|
||||
|
|
20
app/views/admin/procedures/edit.html.haml
Normal file
20
app/views/admin/procedures/edit.html.haml
Normal file
|
@ -0,0 +1,20 @@
|
|||
%h2.text-info
|
||||
=@procedure.libelle
|
||||
%br
|
||||
|
||||
%ul.nav.nav-tabs
|
||||
%li
|
||||
= link_to('Informations', admin_procedure_path(@procedure))
|
||||
%li.active
|
||||
= link_to('Description', edit_admin_procedure_path(@procedure))
|
||||
%li
|
||||
= link_to('Champs', admin_procedure_types_de_champ_path(@procedure))
|
||||
%li
|
||||
= link_to('Pièces justificatives', admin_procedure_pieces_justificatives_path(@procedure))
|
||||
|
||||
#procedure_new.section.section-label
|
||||
= form_for @procedure, url: url_for({controller: 'admin/procedures', action: :update, id: @procedure.id}) do |f|
|
||||
= render partial: 'informations', locals: {f: f}
|
||||
= f.submit 'Editer', class: 'btn btn-success', style: 'float:right'
|
||||
%br
|
||||
%br
|
|
@ -4,7 +4,9 @@
|
|||
|
||||
%ul.nav.nav-tabs
|
||||
%li.active
|
||||
= link_to('Description', admin_procedure_path(@procedure))
|
||||
= link_to('Informations', admin_procedure_path(@procedure))
|
||||
%li
|
||||
= link_to('Description', edit_admin_procedure_path(@procedure))
|
||||
%li
|
||||
= link_to('Champs', admin_procedure_types_de_champ_path(@procedure))
|
||||
%li
|
||||
|
@ -25,9 +27,52 @@
|
|||
%i.fa.fa-remove
|
||||
Annuler
|
||||
|
||||
#procedure_new.section.section-label
|
||||
= form_for @procedure, url: url_for({controller: 'admin/procedures', action: :update, id: @procedure.id}) do |f|
|
||||
= render partial: 'informations', locals: {f: f}
|
||||
= f.submit 'Editer', class: 'btn btn-success', style: 'float:right'
|
||||
|
||||
%br
|
||||
%div
|
||||
|
||||
%h3 Lien procédure
|
||||
%div{style:'margin-left:3%'}
|
||||
= @procedure.lien
|
||||
|
||||
%br
|
||||
%h3 Dossiers
|
||||
|
||||
.row
|
||||
.col-md-6.col-lg-6{style:'margin-left:3%'}
|
||||
%h4 Total
|
||||
%div
|
||||
= @facade.dossiers_total
|
||||
|
||||
%h4.text-danger Attente Gestionnaire
|
||||
%div
|
||||
= @facade.dossiers_waiting_gestionnaire_total
|
||||
|
||||
%h4.text-info Attente User
|
||||
%div
|
||||
= @facade.dossiers_waiting_user_total
|
||||
|
||||
%h4.text-success Terminé
|
||||
%div
|
||||
= @facade.dossiers_termine_total
|
||||
|
||||
%h4 Archivé
|
||||
|
||||
- unless @facade.dossiers_archived_total == 0
|
||||
%ul
|
||||
- @facade.dossiers_archived_by_state_total.each do |dossier|
|
||||
%li
|
||||
= dossier.state_fr
|
||||
\:
|
||||
= dossier.total
|
||||
- else
|
||||
%p
|
||||
0
|
||||
|
||||
.col-md-5.col-lg-5
|
||||
%h4 Non archivés
|
||||
= javascript_include_tag "https://code.highcharts.com/highcharts.js", "chartkick"
|
||||
- if @facade.dossiers_for_pie_highchart.blank?
|
||||
Aucune statistique pour le moment
|
||||
-else
|
||||
=pie_chart @facade.dossiers_for_pie_highchart
|
|
@ -1,25 +0,0 @@
|
|||
- types_de_piece_justificative.each do |type_de_piece_justificative|
|
||||
- type_de_piece_justificative.id.nil? ? object_for = "new_type_de_piece_justificative[#{index}]" : object_for = 'types_de_piece_justificative[]'
|
||||
|
||||
= f.fields_for object_for, type_de_piece_justificative do |ff|
|
||||
.form-inline{id:"type_de_piece_justificative_#{type_de_piece_justificative.id || index}", class: 'type_de_piece_justificative', style: 'padding-bottom:8px'}
|
||||
.form-group{ style: 'padding-right: 2%' }
|
||||
%h4 Libellé
|
||||
=ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé'
|
||||
|
||||
.form-group{ style: 'padding-right: 2%' }
|
||||
%h4
|
||||
Description
|
||||
=ff.text_area :description, class: 'form-control description', placeholder: 'Description'
|
||||
|
||||
=ff.hidden_field '_destroy', value: 'false', class: 'destroy'
|
||||
|
||||
.form-group{ id: "delete_type_de_piece_justificative_#{type_de_piece_justificative.id || index}_button", style: ("display:none" if type_de_piece_justificative.id.nil?) }
|
||||
%br
|
||||
%button.form-control.btn.btn-danger.fa.fa-trash-o{type: 'button', id: "delete_type_de_piece_justificative_#{type_de_piece_justificative.id || index}_procedure"}
|
||||
|
||||
-if type_de_piece_justificative.id.nil?
|
||||
.form-group#add_type_de_piece_justificative_button
|
||||
%br
|
||||
%button.form-control.btn.btn-success#add_type_de_piece_justificative_procedure{type: 'button'} Ajouter
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
#liste_piece_justificative
|
||||
-unless @types_de_piece_justificative.nil?
|
||||
=render partial: 'admin/procedures/types_de_piece_justificative/form', locals:{ types_de_piece_justificative: @types_de_piece_justificative, f: f }
|
||||
|
||||
#liste_delete_piece_justificative
|
||||
|
||||
#new_type_de_piece_justificative
|
||||
=render partial: 'admin/procedures/types_de_piece_justificative/form', locals:{ types_de_piece_justificative: [TypeDePieceJustificative.new], index: (@types_de_piece_justificative.nil? || @types_de_piece_justificative.last.nil? ? 0 : @procedure.types_de_piece_justificative.last.id+1), f: f }
|
||||
|
||||
%script{ type:'text/javascript' }
|
||||
="var types_de_piece_justificative_index = #{(@types_de_piece_justificative.nil? || @types_de_piece_justificative.last.nil? ? 0 : @procedure.types_de_piece_justificative.last.id+1)}"
|
|
@ -4,7 +4,9 @@
|
|||
|
||||
%ul.nav.nav-tabs
|
||||
%li
|
||||
= link_to('Description', admin_procedure_path(@procedure))
|
||||
= link_to('Informations', admin_procedure_path(@procedure))
|
||||
%li
|
||||
= link_to('Description', edit_admin_procedure_path(@procedure))
|
||||
%li.active
|
||||
= link_to('Champs', admin_procedure_types_de_champ_path(@procedure))
|
||||
%li
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
= javascript_include_tag "https://code.highcharts.com/highcharts.js", "chartkick"
|
||||
|
||||
#infos_dossier
|
||||
%div.row
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue