Active feature "keep actual smart listing page"

This commit is contained in:
Xavier J 2016-10-11 17:40:59 +02:00
parent 64d46a25df
commit d5a85d17c7
7 changed files with 182 additions and 44 deletions

View file

@ -1,6 +1,26 @@
class CreatePreferenceSmartListingPage < ActiveRecord::Migration
class Gestionnaire < ActiveRecord::Base
has_one :preference_smart_listing_page, dependent: :destroy
def build_default_preferences_smart_listing_page
PreferenceSmartListingPage.create(page: 1, procedure: nil, gestionnaire: self, liste: 'a_traiter')
end
end
class PreferenceSmartListingPage < ActiveRecord::Base
belongs_to :gestionnaire
belongs_to :procedure
validates :page, presence: true, allow_blank: false, allow_nil: false
validates :liste, presence: true, allow_blank: false, allow_nil: false
validates :procedure, presence: true, allow_blank: true, allow_nil: true
validates :gestionnaire, presence: true, allow_blank: false, allow_nil: false
validates_uniqueness_of :gestionnaire_id
end
def change
create_table :preference_smart_listing_pages, id: false do |t|
create_table :preference_smart_listing_pages do |t|
t.string :liste
t.integer :page
end
@ -8,6 +28,8 @@ class CreatePreferenceSmartListingPage < ActiveRecord::Migration
add_belongs_to :preference_smart_listing_pages, :procedure
add_belongs_to :preference_smart_listing_pages, :gestionnaire
add_index :preference_smart_listing_pages, :gestionnaire_id, unique: true
Gestionnaire.all.each do |gestionnaire|
gestionnaire.build_default_preferences_smart_listing_page if gestionnaire.preference_smart_listing_page.nil?
end
end
end

View file

@ -1,25 +0,0 @@
class BuildDefaultPreferenceSmartListingPageForAllGestionnaire < ActiveRecord::Migration
class Gestionnaire < ActiveRecord::Base
has_one :preference_smart_listing_page, dependent: :destroy
def build_default_preferences_smart_listing_page
PreferenceSmartListingPage.create(page: 1, procedure: nil, gestionnaire: self, liste: 'a_traiter')
end
end
class PreferenceSmartListingPage < ActiveRecord::Base
belongs_to :gestionnaire
belongs_to :procedure
validates :page, presence: true, allow_blank: false, allow_nil: false
validates :liste, presence: true, allow_blank: false, allow_nil: false
validates :procedure, presence: true, allow_blank: true, allow_nil: true
validates :gestionnaire, presence: true, allow_blank: false, allow_nil: false
end
def change
Gestionnaire.all.each do |gestionnaire|
gestionnaire.build_default_preferences_smart_listing_page if gestionnaire.preference_smart_listing_page.nil?
end
end
end

View file

@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20161011132750) do
ActiveRecord::Schema.define(version: 20161011125345) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -269,15 +269,13 @@ ActiveRecord::Schema.define(version: 20161011132750) do
t.integer "procedure_id"
end
create_table "preference_smart_listing_pages", id: false, force: :cascade do |t|
create_table "preference_smart_listing_pages", force: :cascade do |t|
t.string "liste"
t.integer "page"
t.integer "procedure_id"
t.integer "gestionnaire_id"
end
add_index "preference_smart_listing_pages", ["gestionnaire_id"], name: "index_preference_smart_listing_pages_on_gestionnaire_id", unique: true, using: :btree
create_table "procedure_paths", force: :cascade do |t|
t.string "path", limit: 30
t.integer "procedure_id"