commit
fff6019858
5 changed files with 16 additions and 9 deletions
|
@ -160,15 +160,20 @@ class Admin::ProceduresController < AdminController
|
|||
|
||||
def clone
|
||||
procedure = Procedure.find(params[:procedure_id])
|
||||
|
||||
new_procedure = procedure.clone(current_administrateur)
|
||||
if new_procedure
|
||||
|
||||
if new_procedure.save
|
||||
flash.notice = 'Procédure clonée'
|
||||
redirect_to edit_admin_procedure_path(id: new_procedure.id)
|
||||
else
|
||||
flash.now.alert = procedure.errors.full_messages
|
||||
if params[:from_new_from_existing].present?
|
||||
flash.alert = new_procedure.errors.full_messages
|
||||
redirect_to new_from_existing_admin_procedures_path
|
||||
else
|
||||
flash.now.alert = new_procedure.errors.full_messages
|
||||
render 'index'
|
||||
end
|
||||
end
|
||||
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
flash.alert = 'Procédure inexistante'
|
||||
|
|
|
@ -119,7 +119,7 @@ class Procedure < ActiveRecord::Base
|
|||
procedure.refused_mail = refused_mail.try(:dup)
|
||||
procedure.without_continuation_mail = without_continuation_mail.try(:dup)
|
||||
|
||||
return procedure if procedure.save
|
||||
procedure
|
||||
end
|
||||
|
||||
def brouillon?
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.row.white-back
|
||||
%a{ href: '/admin/procedures/new_from_existing', class: 'btn-sm btn-primary' }
|
||||
%a{ href: new_from_existing_admin_procedures_path, class: 'btn-sm btn-primary' }
|
||||
Créer une nouvelle procédure à partir d'une procédure existante
|
||||
|
||||
.row.white-back
|
||||
|
|
|
@ -16,6 +16,6 @@
|
|||
= procedure.libelle
|
||||
%td{ style: 'padding-right: 10px; padding-left: 10px; width: 60px;' }
|
||||
- if !procedure.archivee?
|
||||
= link_to('Tester', commencer_path(procedure_path: procedure.path), target: "_blank")
|
||||
= link_to('Consulter', commencer_path(procedure_path: procedure.path), target: "_blank")
|
||||
%td
|
||||
= link_to('Cloner', admin_procedure_clone_path(procedure.id), 'data-method' => :put, class: 'btn-sm btn-primary clone-btn')
|
||||
= link_to('Cloner', admin_procedure_clone_path(procedure.id, from_new_from_existing: true), 'data-method' => :put, class: 'btn-sm btn-primary clone-btn')
|
||||
|
|
|
@ -167,6 +167,8 @@ describe Procedure do
|
|||
@logo = File.open('spec/fixtures/white.png')
|
||||
@signature = File.open('spec/fixtures/black.png')
|
||||
@attestation_template = create(:attestation_template, procedure: procedure, logo: @logo, signature: @signature)
|
||||
@procedure = procedure.clone(procedure.administrateur)
|
||||
@procedure.save
|
||||
end
|
||||
|
||||
after do
|
||||
|
@ -174,7 +176,7 @@ describe Procedure do
|
|||
@signature.close
|
||||
end
|
||||
|
||||
subject { procedure.clone(procedure.administrateur) }
|
||||
subject { @procedure }
|
||||
|
||||
it 'should duplicate specific objects with different id' do
|
||||
expect(subject.id).not_to eq(procedure.id)
|
||||
|
|
Loading…
Add table
Reference in a new issue