diff --git a/app/models/legislation/process.rb b/app/models/legislation/process.rb index 4a50b4b0a..0a264203c 100644 --- a/app/models/legislation/process.rb +++ b/app/models/legislation/process.rb @@ -59,6 +59,18 @@ class Legislation::Process < ActiveRecord::Base questions.map(&:comments_count).sum end + def status + today = Date.current + + if today < start_date + :planned + elsif end_date < today + :closed + else + :open + end + end + private def valid_date_ranges diff --git a/app/views/admin/legislation/processes/index.html.erb b/app/views/admin/legislation/processes/index.html.erb index 7d4bd2996..a4a0a7f3e 100644 --- a/app/views/admin/legislation/processes/index.html.erb +++ b/app/views/admin/legislation/processes/index.html.erb @@ -20,6 +20,8 @@ <%= t("admin.legislation.processes.process.title") %> + <%= t("admin.legislation.processes.process.status") %> + <%= t("admin.legislation.processes.process.creation_date") %> <%= t("admin.legislation.processes.process.comments") %> @@ -30,6 +32,8 @@ <%= link_to process.title, edit_admin_legislation_process_path(process) %> + <%= t("admin.legislation.processes.process.status_#{process.status}") %> + <%= I18n.l process.created_at.to_date %> <%= process.total_comments %> <%= link_to t("admin.legislation.processes.index.delete"), admin_legislation_process_path(process), diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index a0896d6c4..efef17210 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -113,6 +113,11 @@ en: process: title: Process comments: Comments + status: Status + creation_date: Creation date + status_open: Open + status_closed: Closed + status_planned: Planned subnav: info: Information draft_texts: Text diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index 94676c9f0..92503fa68 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -111,6 +111,11 @@ es: process: title: Proceso comments: Comentarios + status: Estado + creation_date: Fecha creación + status_open: Abierto + status_closed: Cerrado + status_planned: Próximamente subnav: info: Información draft_texts: Texto diff --git a/spec/models/legislation/process_spec.rb b/spec/models/legislation/process_spec.rb index 4fbfeb587..fd83d8989 100644 --- a/spec/models/legislation/process_spec.rb +++ b/spec/models/legislation/process_spec.rb @@ -1,10 +1,10 @@ require 'rails_helper' RSpec.describe Legislation::Process, type: :model do - let(:legislation_process) { build(:legislation_process) } + let(:process) { create(:legislation_process) } it "should be valid" do - expect(legislation_process).to be_valid + expect(process).to be_valid end describe "date ranges validations" do @@ -76,8 +76,6 @@ RSpec.describe Legislation::Process, type: :model do describe "#open_phase?" do it "checks debate phase" do - process = create(:legislation_process) - # future process.update_attributes(debate_start_date: Date.current + 2.days, debate_end_date: Date.current + 3.days) expect(process.open_phase?(:debate)).to be false @@ -96,7 +94,6 @@ RSpec.describe Legislation::Process, type: :model do end it "checks allegations phase" do - process = create(:legislation_process) # future process.update_attributes(allegations_start_date: Date.current + 2.days, allegations_end_date: Date.current + 3.days) @@ -116,8 +113,6 @@ RSpec.describe Legislation::Process, type: :model do end it "checks draft publication phase" do - process = create(:legislation_process) - # future process.update_attributes(draft_publication_date: Date.current + 2.days) expect(process.open_phase?(:draft_publication)).to be false @@ -132,8 +127,6 @@ RSpec.describe Legislation::Process, type: :model do end it "checks final version publication phase" do - process = create(:legislation_process) - # future process.update_attributes(final_publication_date: Date.current + 2.days) expect(process.open_phase?(:final_version_publication)).to be false @@ -150,8 +143,6 @@ RSpec.describe Legislation::Process, type: :model do describe "#show_phase?" do it "checks debate phase" do - process = create(:legislation_process) - # future process.update_attributes(debate_start_date: Date.current + 2.days, debate_end_date: Date.current + 3.days) expect(process.show_phase?(:debate)).to be false @@ -170,8 +161,6 @@ RSpec.describe Legislation::Process, type: :model do end it "checks allegations phase" do - process = create(:legislation_process) - # future process.update_attributes(allegations_start_date: Date.current + 2.days, allegations_end_date: Date.current + 3.days) expect(process.show_phase?(:allegations)).to be false @@ -190,8 +179,6 @@ RSpec.describe Legislation::Process, type: :model do end it "checks draft publication phase" do - process = create(:legislation_process) - # future process.update_attributes(draft_publication_date: Date.current + 2.days) expect(process.show_phase?(:draft_publication)).to be false @@ -206,8 +193,6 @@ RSpec.describe Legislation::Process, type: :model do end it "checks final version publication phase" do - process = create(:legislation_process) - # future process.update_attributes(final_publication_date: Date.current + 2.days) expect(process.show_phase?(:final_version_publication)).to be false @@ -221,4 +206,20 @@ RSpec.describe Legislation::Process, type: :model do expect(process.show_phase?(:final_version_publication)).to be true end end + + describe "#status" do + it "should detect planned phase" do + process.update_attributes(start_date: Date.current + 2.days) + expect(process.status).to eq(:planned) + end + + it "should detect closed phase" do + process.update_attributes(end_date: Date.current - 2.days) + expect(process.status).to eq(:closed) + end + + it "should detect open phase" do + expect(process.status).to eq(:open) + end + end end