Skip to content

Commit

Permalink
Merge pull request #2671 from betagouv/dev
Browse files Browse the repository at this point in the history
MEP 2018-09-24-03
  • Loading branch information
fredZen authored Sep 24, 2018
2 parents 0e8b1b9 + f4b95d3 commit 21587e6
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 30 deletions.
10 changes: 4 additions & 6 deletions app/controllers/new_gestionnaire/procedures_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,9 @@ def update_displayed_fields
fields = values.map do |value|
table, column = value.split("/")

c = procedure.fields.find do |field|
procedure.fields.find do |field|
field['table'] == table && field['column'] == column
end

c.to_json
end

procedure_presentation.update(displayed_fields: fields)
Expand Down Expand Up @@ -134,7 +132,7 @@ def update_sort
'table' => table,
'column' => column,
'order' => order
}.to_json
}

procedure_presentation.update(sort: sort)

Expand All @@ -154,7 +152,7 @@ def add_filter
'value' => params[:value]
}

procedure_presentation.update(filters: filters.to_json)
procedure_presentation.update(filters: filters)
end

redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
Expand All @@ -168,7 +166,7 @@ def remove_filter

filters[statut] = filters[statut] - [filter_to_remove]

procedure_presentation.update(filters: filters.to_json)
procedure_presentation.update(filters: filters)

redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
end
Expand Down
2 changes: 1 addition & 1 deletion app/models/procedure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ def self.default_sort
'table' => 'self',
'column' => 'id',
'order' => 'desc'
}.to_json
}
end

def whitelist!
Expand Down
14 changes: 0 additions & 14 deletions app/models/procedure_presentation.rb
Original file line number Diff line number Diff line change
@@ -1,17 +1,3 @@
class ProcedurePresentation < ApplicationRecord
belongs_to :assign_to

def displayed_fields
read_attribute(:displayed_fields).map do |field|
field = JSON.parse(field)
end
end

def sort
JSON.parse(read_attribute(:sort))
end

def filters
JSON.parse(read_attribute(:filters))
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
class ChangeProcedurePresentationFieldsToJsonb < ActiveRecord::Migration[5.2]
def change
change_table(:procedure_presentations) do |t|
t.rename :displayed_fields, :old_displayed_fields
t.column :displayed_fields, :jsonb, null: false, default: [{ label: "Demandeur", table: "user", column: "email" }]
t.change :sort, :jsonb, default: { table: "notifications", column: "notifications", order: "desc" }
t.change :filters, :jsonb, default: { "a-suivre": [], suivis: [], traites: [], tous: [], archives: [] }
end
end
end
9 changes: 5 additions & 4 deletions db/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 2018_09_13_160415) do
ActiveRecord::Schema.define(version: 2018_09_19_084403) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
Expand Down Expand Up @@ -444,11 +444,12 @@

create_table "procedure_presentations", id: :serial, force: :cascade do |t|
t.integer "assign_to_id"
t.text "displayed_fields", default: ["{\"label\":\"Demandeur\",\"table\":\"user\",\"column\":\"email\"}"], null: false, array: true
t.json "sort", default: "{\"table\":\"notifications\",\"column\":\"notifications\",\"order\":\"desc\"}", null: false
t.json "filters", default: "{\"a-suivre\":[],\"suivis\":[],\"traites\":[],\"tous\":[],\"archives\":[]}", null: false
t.text "old_displayed_fields", default: ["{\"label\":\"Demandeur\",\"table\":\"user\",\"column\":\"email\"}"], null: false, array: true
t.jsonb "sort", default: {"order"=>"desc", "table"=>"notifications", "column"=>"notifications"}, null: false
t.jsonb "filters", default: {"tous"=>[], "suivis"=>[], "traites"=>[], "a-suivre"=>[], "archives"=>[]}, null: false
t.datetime "created_at"
t.datetime "updated_at"
t.jsonb "displayed_fields", default: [{"label"=>"Demandeur", "table"=>"user", "column"=>"email"}], null: false
t.index ["assign_to_id"], name: "index_procedure_presentations_on_assign_to_id", unique: true
end

Expand Down
11 changes: 11 additions & 0 deletions lib/tasks/2018_09_20_procedure_presentation_jsonb.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace :'2018_09_20_procedure_presentation_jsonb' do
task run: :environment do
ProcedurePresentation.update_all(
<<~SQL
displayed_fields = ('[' || ARRAY_TO_STRING(old_displayed_fields, ',') || ']')::JSONB,
sort = (sort #>> '{}')::jsonb,
filters = (filters #>> '{}')::jsonb
SQL
)
end
end
8 changes: 4 additions & 4 deletions spec/models/procedure_presentation_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
let (:procedure_presentation_id) {
ProcedurePresentation.create(
displayed_fields: [
{ "label" => "test1", "table" => "user" }.to_json,
{ "label" => "test2", "table" => "champs" }.to_json
{ "label" => "test1", "table" => "user" },
{ "label" => "test2", "table" => "champs" }
],
sort: { "table" => "user","column" => "email","order" => "asc" }.to_json,
filters: { "a-suivre" => [], "suivis" => [{ "label" => "label1", "table" => "table1", "column" => "column1" }] }.to_json
sort: { "table" => "user","column" => "email","order" => "asc" },
filters: { "a-suivre" => [], "suivis" => [{ "label" => "label1", "table" => "table1", "column" => "column1" }] }
).id
}
let (:procedure_presentation) { ProcedurePresentation.find(procedure_presentation_id) }
Expand Down
2 changes: 1 addition & 1 deletion spec/models/procedure_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -690,7 +690,7 @@
end

describe ".default_sort" do
it { expect(Procedure.default_sort).to eq("{\"table\":\"self\",\"column\":\"id\",\"order\":\"desc\"}") }
it { expect(Procedure.default_sort).to eq({ "table" => "self", "column" => "id", "order" => "desc" }) }
end

describe "#export_filename" do
Expand Down

0 comments on commit 21587e6

Please sign in to comment.