- migrate page show to edit for procedure admin

- create new page show for procedure admin
This commit is contained in:
Xavier J 2015-12-04 16:17:35 +01:00
parent debac1ed91
commit 92d57db91d
14 changed files with 236 additions and 73 deletions

View file

@ -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

View file

@ -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

View 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

View file

@ -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))

View 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

View file

@ -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

View file

@ -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 &nbsp;
%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 &nbsp;
%button.form-control.btn.btn-success#add_type_de_piece_justificative_procedure{type: 'button'} Ajouter

View file

@ -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)}"

View file

@ -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

View file

@ -1,4 +1,3 @@
= javascript_include_tag "https://code.highcharts.com/highcharts.js", "chartkick"
#infos_dossier
%div.row