diff --git a/app/models/procedure.rb b/app/models/procedure.rb index cd90371f7..c09adbe39 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -1,6 +1,7 @@ class Procedure < ActiveRecord::Base has_many :types_de_piece_justificative, dependent: :destroy has_many :types_de_champ, dependent: :destroy + has_many :types_de_champ_private, class_name: 'TypeDeChampPrivate', dependent: :destroy has_many :dossiers has_one :procedure_path, dependent: :destroy diff --git a/app/models/type_de_champ.rb b/app/models/type_de_champ.rb index e4df31ea0..6a738957f 100644 --- a/app/models/type_de_champ.rb +++ b/app/models/type_de_champ.rb @@ -18,6 +18,8 @@ class TypeDeChamp < ActiveRecord::Base has_many :champ, dependent: :destroy + default_scope { where(private: false) } + validates :libelle, presence: true, allow_blank: false, allow_nil: false validates :type_champ, presence: true, allow_blank: false, allow_nil: false # validates :order_place, presence: true, allow_blank: false, allow_nil: false diff --git a/app/models/type_de_champ_private.rb b/app/models/type_de_champ_private.rb new file mode 100644 index 000000000..c9acf24e2 --- /dev/null +++ b/app/models/type_de_champ_private.rb @@ -0,0 +1,9 @@ +class TypeDeChampPrivate < TypeDeChamp + after_initialize :force_private_value + + default_scope { where(private: true) } + + def force_private_value + self.private = true + end +end \ No newline at end of file diff --git a/app/serializers/procedure_serializer.rb b/app/serializers/procedure_serializer.rb index 69d3bf307..c85ed7ff4 100644 --- a/app/serializers/procedure_serializer.rb +++ b/app/serializers/procedure_serializer.rb @@ -12,6 +12,7 @@ class ProcedureSerializer < ActiveModel::Serializer has_one :geographic_information, serializer: ModuleApiCartoSerializer - has_many :types_de_champ, serializer: TypeDeChampSerializer - has_many :types_de_piece_justificative, serializer: TypeDePieceJustificativeSerializer + has_many :types_de_champ, serializer: TypeDeChampSerializer + has_many :types_de_champ_private, serializer: TypeDeChampSerializer + has_many :types_de_piece_justificative, serializer: TypeDePieceJustificativeSerializer end diff --git a/app/serializers/type_de_champ_serializer.rb b/app/serializers/type_de_champ_serializer.rb index bbe2cb7dc..ebf66c0b8 100644 --- a/app/serializers/type_de_champ_serializer.rb +++ b/app/serializers/type_de_champ_serializer.rb @@ -3,5 +3,6 @@ class TypeDeChampSerializer < ActiveModel::Serializer :libelle, {:type_champ => :type}, :order_place, - :description + :description, + :private end \ No newline at end of file diff --git a/db/migrate/20160802131031_add_public_attr_on_type_de_champ.rb b/db/migrate/20160802131031_add_public_attr_on_type_de_champ.rb new file mode 100644 index 000000000..05491de73 --- /dev/null +++ b/db/migrate/20160802131031_add_public_attr_on_type_de_champ.rb @@ -0,0 +1,5 @@ +class AddPublicAttrOnTypeDeChamp < ActiveRecord::Migration + def change + add_column :types_de_champ, :private, :boolean, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 5eed35e00..65a008f87 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20160802113112) do +ActiveRecord::Schema.define(version: 20160802131031) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -296,6 +296,7 @@ ActiveRecord::Schema.define(version: 20160802113112) do t.integer "procedure_id" t.text "description" t.boolean "mandatory", default: false + t.boolean "private", default: false end create_table "types_de_piece_justificative", force: :cascade do |t|