Administrator can unarchived a procedure
This commit is contained in:
parent
7c3f322d6e
commit
3eb990a611
5 changed files with 36 additions and 13 deletions
|
@ -37,7 +37,6 @@ class Admin::ProceduresController < AdminController
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
|
||||||
@procedure = current_administrateur.procedures.find(params[:id])
|
@procedure = current_administrateur.procedures.find(params[:id])
|
||||||
|
|
||||||
unless @procedure.update_attributes(create_procedure_params)
|
unless @procedure.update_attributes(create_procedure_params)
|
||||||
|
@ -50,9 +49,9 @@ class Admin::ProceduresController < AdminController
|
||||||
|
|
||||||
def archive
|
def archive
|
||||||
@procedure = current_administrateur.procedures.find(params[:procedure_id])
|
@procedure = current_administrateur.procedures.find(params[:procedure_id])
|
||||||
@procedure.update_attributes({archived: true})
|
@procedure.update_attributes({archived: params[:archive]})
|
||||||
|
|
||||||
flash.notice = 'Procédure archivée'
|
flash.notice = 'Procédure éditée'
|
||||||
redirect_to admin_procedures_path
|
redirect_to admin_procedures_path
|
||||||
|
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
|
|
|
@ -6,10 +6,13 @@
|
||||||
%li
|
%li
|
||||||
= link_to('Pièces justificatives', admin_procedure_pieces_justificatives_path(@procedure))
|
= link_to('Pièces justificatives', admin_procedure_pieces_justificatives_path(@procedure))
|
||||||
%li{style:'float:right'}
|
%li{style:'float:right'}
|
||||||
= form_tag "/admin/procedures/#{@procedure.id}/archive", action: :archive, method: :put, procedure_id: @procedure.id do
|
= form_tag admin_procedure_archive_path(procedure_id: @procedure.id, archive: !@procedure.archived?), method: :put do
|
||||||
%button#archive.btn.btn-nav.text-info{type: :button}
|
%button#archive.btn.btn-nav.text-info{type: :button}
|
||||||
%i.fa.fa-eraser
|
%i.fa.fa-eraser
|
||||||
Archiver
|
- if @procedure.archived
|
||||||
|
= 'Activer'
|
||||||
|
- else
|
||||||
|
= 'Archiver'
|
||||||
#confirm
|
#confirm
|
||||||
%button#valid.btn.btn-nav.text-success{type: :submit}
|
%button#valid.btn.btn-nav.text-success{type: :submit}
|
||||||
%i.fa.fa-check
|
%i.fa.fa-check
|
||||||
|
@ -22,7 +25,7 @@
|
||||||
=@procedure.libelle
|
=@procedure.libelle
|
||||||
|
|
||||||
#procedure_new.section.section-label
|
#procedure_new.section.section-label
|
||||||
= form_for @procedure, url: {controller: 'admin/procedures', action: :update} do |f|
|
= form_for @procedure, url: url_for({controller: 'admin/procedures', action: :update, id: @procedure.id}) do |f|
|
||||||
= render partial: 'informations', locals: {f: f}
|
= render partial: 'informations', locals: {f: f}
|
||||||
= f.submit 'Editer', class: 'btn btn-success', style: 'float:right'
|
= f.submit 'Editer', class: 'btn btn-success', style: 'float:right'
|
||||||
%br
|
%br
|
||||||
|
|
|
@ -56,7 +56,7 @@ Rails.application.routes.draw do
|
||||||
post '/:index/move_down' => 'types_de_champ#move_down', as: :move_down
|
post '/:index/move_down' => 'types_de_champ#move_down', as: :move_down
|
||||||
end
|
end
|
||||||
|
|
||||||
put 'archive' => 'procedures#archive'
|
put 'archive' => 'procedures#archive', as: :archive
|
||||||
|
|
||||||
resources :types_de_champ, only: [:destroy]
|
resources :types_de_champ, only: [:destroy]
|
||||||
resource :pieces_justificatives, only: [:show, :update]
|
resource :pieces_justificatives, only: [:show, :update]
|
||||||
|
|
|
@ -176,17 +176,15 @@ describe Admin::ProceduresController, type: :controller do
|
||||||
describe 'PUT #archive' do
|
describe 'PUT #archive' do
|
||||||
let(:procedure) { create(:procedure, administrateur: admin) }
|
let(:procedure) { create(:procedure, administrateur: admin) }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
context 'when admin is the owner of the procedure' do
|
context 'when admin is the owner of the procedure' do
|
||||||
before do
|
before do
|
||||||
put :archive, procedure_id: procedure.id
|
put :archive, procedure_id: procedure.id, archive: !procedure.archived
|
||||||
procedure.reload
|
procedure.reload
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(procedure.archived).to be_truthy }
|
it { expect(procedure.archived).to be_truthy }
|
||||||
it { expect(response).to redirect_to :admin_procedures }
|
it { expect(response).to redirect_to :admin_procedures }
|
||||||
it { expect(flash[:notice]).to have_content 'Procédure archivée' }
|
it { expect(flash[:notice]).to have_content 'Procédure éditée' }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when admin is not the owner of the procedure' do
|
context 'when admin is not the owner of the procedure' do
|
||||||
|
|
23
spec/views/admin/procedures/show.html.haml_spec.rb
Normal file
23
spec/views/admin/procedures/show.html.haml_spec.rb
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'admin/procedures/show.html.haml', type: :view do
|
||||||
|
describe 'archive and unarchive button' do
|
||||||
|
|
||||||
|
before do
|
||||||
|
assign(:procedure, procedure)
|
||||||
|
render
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when procedure is active' do
|
||||||
|
let(:procedure) { create(:procedure) }
|
||||||
|
|
||||||
|
it { expect(rendered).to have_content('Archiver') }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when procedure is archived' do
|
||||||
|
let(:procedure) { create(:procedure, archived: true) }
|
||||||
|
|
||||||
|
it { expect(rendered).to have_content('Activer') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue