From ea59f5f26092483b4d3990fa1b3eaeff66e697d2 Mon Sep 17 00:00:00 2001 From: Christophe Robillard Date: Wed, 22 Jun 2022 15:32:35 +0200 Subject: [PATCH] add opendata boolean attribute for procedure when opendata is set to true, it means that descriptive's procedure can be public when opendata is set to false, ti means that descriptive's can not be public, because the procedure is only available for public servants, not citizens. --- app/models/procedure.rb | 1 + .../20220622181047_add_opendata_to_procedures.rb | 10 ++++++++++ ...220622183305_backfill_add_opendata_to_procedures.rb | 10 ++++++++++ db/schema.rb | 3 ++- spec/models/procedure_spec.rb | 8 ++++++++ 5 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20220622181047_add_opendata_to_procedures.rb create mode 100644 db/migrate/20220622183305_backfill_add_opendata_to_procedures.rb diff --git a/app/models/procedure.rb b/app/models/procedure.rb index a7afe1f73..407e44efe 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -32,6 +32,7 @@ # lien_notice :string # lien_site_web :string # monavis_embed :text +# opendata :boolean default(TRUE) # organisation :string # path :string not null # procedure_expires_when_termine_enabled :boolean default(TRUE) diff --git a/db/migrate/20220622181047_add_opendata_to_procedures.rb b/db/migrate/20220622181047_add_opendata_to_procedures.rb new file mode 100644 index 000000000..2f93f8c50 --- /dev/null +++ b/db/migrate/20220622181047_add_opendata_to_procedures.rb @@ -0,0 +1,10 @@ +class AddOpendataToProcedures < ActiveRecord::Migration[6.1] + def up + add_column :procedures, :opendata, :boolean + change_column_default :procedures, :opendata, true + end + + def down + remove_column :procedures, :opendata + end +end diff --git a/db/migrate/20220622183305_backfill_add_opendata_to_procedures.rb b/db/migrate/20220622183305_backfill_add_opendata_to_procedures.rb new file mode 100644 index 000000000..6882b9224 --- /dev/null +++ b/db/migrate/20220622183305_backfill_add_opendata_to_procedures.rb @@ -0,0 +1,10 @@ +class BackfillAddOpendataToProcedures < ActiveRecord::Migration[6.1] + disable_ddl_transaction! + + def change + Procedure.in_batches do |relation| + relation.update_all opendata: true + sleep(0.01) + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 182a6c01b..01ceabc9d 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_06_21_160241) do +ActiveRecord::Schema.define(version: 2022_06_22_183305) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" @@ -651,6 +651,7 @@ ActiveRecord::Schema.define(version: 2022_06_21_160241) do t.string "lien_notice" t.string "lien_site_web" t.text "monavis_embed" + t.boolean "opendata", default: true t.string "organisation" t.bigint "parent_procedure_id" t.string "path", null: false diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 568e24c81..ddf7a2ff1 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -381,6 +381,14 @@ describe Procedure do end end + describe 'opendata' do + let(:procedure) { create(:procedure) } + + it 'is true by default' do + expect(procedure.opendata).to be_truthy + end + end + describe 'active' do let(:procedure) { create(:procedure) } subject { Procedure.active(procedure.id) }