commit
21587e6939
8 changed files with 36 additions and 30 deletions
|
@ -102,11 +102,9 @@ module NewGestionnaire
|
||||||
fields = values.map do |value|
|
fields = values.map do |value|
|
||||||
table, column = value.split("/")
|
table, column = value.split("/")
|
||||||
|
|
||||||
c = procedure.fields.find do |field|
|
procedure.fields.find do |field|
|
||||||
field['table'] == table && field['column'] == column
|
field['table'] == table && field['column'] == column
|
||||||
end
|
end
|
||||||
|
|
||||||
c.to_json
|
|
||||||
end
|
end
|
||||||
|
|
||||||
procedure_presentation.update(displayed_fields: fields)
|
procedure_presentation.update(displayed_fields: fields)
|
||||||
|
@ -134,7 +132,7 @@ module NewGestionnaire
|
||||||
'table' => table,
|
'table' => table,
|
||||||
'column' => column,
|
'column' => column,
|
||||||
'order' => order
|
'order' => order
|
||||||
}.to_json
|
}
|
||||||
|
|
||||||
procedure_presentation.update(sort: sort)
|
procedure_presentation.update(sort: sort)
|
||||||
|
|
||||||
|
@ -154,7 +152,7 @@ module NewGestionnaire
|
||||||
'value' => params[:value]
|
'value' => params[:value]
|
||||||
}
|
}
|
||||||
|
|
||||||
procedure_presentation.update(filters: filters.to_json)
|
procedure_presentation.update(filters: filters)
|
||||||
end
|
end
|
||||||
|
|
||||||
redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
|
redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
|
||||||
|
@ -168,7 +166,7 @@ module NewGestionnaire
|
||||||
|
|
||||||
filters[statut] = filters[statut] - [filter_to_remove]
|
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))
|
redirect_back(fallback_location: gestionnaire_procedure_url(procedure))
|
||||||
end
|
end
|
||||||
|
|
|
@ -307,7 +307,7 @@ class Procedure < ApplicationRecord
|
||||||
'table' => 'self',
|
'table' => 'self',
|
||||||
'column' => 'id',
|
'column' => 'id',
|
||||||
'order' => 'desc'
|
'order' => 'desc'
|
||||||
}.to_json
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def whitelist!
|
def whitelist!
|
||||||
|
|
|
@ -1,17 +1,3 @@
|
||||||
class ProcedurePresentation < ApplicationRecord
|
class ProcedurePresentation < ApplicationRecord
|
||||||
belongs_to :assign_to
|
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
|
end
|
||||||
|
|
|
@ -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
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# 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
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -444,11 +444,12 @@ ActiveRecord::Schema.define(version: 2018_09_13_160415) do
|
||||||
|
|
||||||
create_table "procedure_presentations", id: :serial, force: :cascade do |t|
|
create_table "procedure_presentations", id: :serial, force: :cascade do |t|
|
||||||
t.integer "assign_to_id"
|
t.integer "assign_to_id"
|
||||||
t.text "displayed_fields", default: ["{\"label\":\"Demandeur\",\"table\":\"user\",\"column\":\"email\"}"], null: false, array: true
|
t.text "old_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.jsonb "sort", default: {"order"=>"desc", "table"=>"notifications", "column"=>"notifications"}, null: false
|
||||||
t.json "filters", default: "{\"a-suivre\":[],\"suivis\":[],\"traites\":[],\"tous\":[],\"archives\":[]}", null: false
|
t.jsonb "filters", default: {"tous"=>[], "suivis"=>[], "traites"=>[], "a-suivre"=>[], "archives"=>[]}, null: false
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_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
|
t.index ["assign_to_id"], name: "index_procedure_presentations_on_assign_to_id", unique: true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
11
lib/tasks/2018_09_20_procedure_presentation_jsonb.rake
Normal file
11
lib/tasks/2018_09_20_procedure_presentation_jsonb.rake
Normal file
|
@ -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
|
|
@ -4,11 +4,11 @@ describe ProcedurePresentation do
|
||||||
let (:procedure_presentation_id) {
|
let (:procedure_presentation_id) {
|
||||||
ProcedurePresentation.create(
|
ProcedurePresentation.create(
|
||||||
displayed_fields: [
|
displayed_fields: [
|
||||||
{ "label" => "test1", "table" => "user" }.to_json,
|
{ "label" => "test1", "table" => "user" },
|
||||||
{ "label" => "test2", "table" => "champs" }.to_json
|
{ "label" => "test2", "table" => "champs" }
|
||||||
],
|
],
|
||||||
sort: { "table" => "user","column" => "email","order" => "asc" }.to_json,
|
sort: { "table" => "user","column" => "email","order" => "asc" },
|
||||||
filters: { "a-suivre" => [], "suivis" => [{ "label" => "label1", "table" => "table1", "column" => "column1" }] }.to_json
|
filters: { "a-suivre" => [], "suivis" => [{ "label" => "label1", "table" => "table1", "column" => "column1" }] }
|
||||||
).id
|
).id
|
||||||
}
|
}
|
||||||
let (:procedure_presentation) { ProcedurePresentation.find(procedure_presentation_id) }
|
let (:procedure_presentation) { ProcedurePresentation.find(procedure_presentation_id) }
|
||||||
|
|
|
@ -690,7 +690,7 @@ describe Procedure do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe ".default_sort" do
|
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
|
end
|
||||||
|
|
||||||
describe "#export_filename" do
|
describe "#export_filename" do
|
||||||
|
|
Loading…
Reference in a new issue