diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index b90f52c07..9e6dca90a 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -53,7 +53,7 @@ class Admin::ProceduresController < AdminController def destroy procedure = Procedure.find(params[:id]) - return render json: {}, status: 401 if procedure.publiee? || procedure.archivee? + return render json: {}, status: 401 if procedure.publiee_ou_archivee? procedure.destroy diff --git a/app/models/procedure.rb b/app/models/procedure.rb index f60e6225b..665eddb24 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -94,7 +94,7 @@ class Procedure < ActiveRecord::Base end def locked? - publiee? || archivee? + publiee_ou_archivee? end def clone @@ -138,7 +138,11 @@ class Procedure < ActiveRecord::Base end def archivee? - archived_at.present? + published_at.present? && archived_at.present? + end + + def publiee_ou_archivee? + publiee? || archivee? end def total_dossier diff --git a/app/views/admin/procedures/_list.html.haml b/app/views/admin/procedures/_list.html.haml index db8118c4a..d838bd2f0 100644 --- a/app/views/admin/procedures/_list.html.haml +++ b/app/views/admin/procedures/_list.html.haml @@ -20,7 +20,7 @@ = procedure.created_at_fr %td = link_to('Cloner', admin_procedure_clone_path(procedure.id), 'data-method' => :put, class: 'btn-sm btn-primary clone-btn') - - unless procedure.publiee? || procedure.archivee? + - unless procedure.publiee_ou_archivee? = link_to('X', url_for(controller: 'admin/procedures', action: :destroy, id: procedure.id), 'data-method' => :delete, class: 'btn-sm btn-danger') = smart_listing.paginate diff --git a/app/views/admin/procedures/show.html.haml b/app/views/admin/procedures/show.html.haml index c19764e73..5827186b6 100644 --- a/app/views/admin/procedures/show.html.haml +++ b/app/views/admin/procedures/show.html.haml @@ -46,7 +46,7 @@ %div %h3 Lien procédure %div{ style: 'margin-left: 3%;' } - - if @facade.procedure.publiee? || @facade.procedure.archivee? + - if @facade.procedure.publiee_ou_archivee? = link_to @facade.procedure.lien, @facade.procedure.lien, target: '_blank' - else %b @@ -130,7 +130,7 @@ - else = pie_chart @facade.dossiers_for_pie_highchart - - if @facade.procedure.publiee? || @facade.procedure.archivee? + - if @facade.procedure.publiee_ou_archivee? %h3 Supprimer la procédure .alert.alert-danger %p diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 16313b7f5..07dd724e9 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -267,10 +267,22 @@ describe Procedure do let(:procedure_brouillon) { Procedure.new() } let(:procedure_publiee) { Procedure.new(published_at: Time.now) } let(:procedure_archivee) { Procedure.new(published_at: Time.now, archived_at: Time.now) } + let(:procedure_batarde) { Procedure.new(published_at: nil, archived_at: Time.now) } it { expect(procedure_brouillon.archivee?).to be_falsey } it { expect(procedure_publiee.archivee?).to be_falsey } it { expect(procedure_archivee.archivee?).to be_truthy } + it { expect(procedure_batarde.archivee?).to be_falsey } + end + + describe "#publiee_ou_archivee?" do + let(:procedure_brouillon) { Procedure.new() } + let(:procedure_publiee) { Procedure.new(published_at: Time.now) } + let(:procedure_archivee) { Procedure.new(published_at: Time.now, archived_at: Time.now) } + + it { expect(procedure_brouillon.publiee_ou_archivee?).to be_falsey } + it { expect(procedure_publiee.publiee_ou_archivee?).to be_truthy } + it { expect(procedure_archivee.publiee_ou_archivee?).to be_truthy } end describe 'archive' do