Create TypeDeChamps
This commit is contained in:
parent
d75ed802d2
commit
9392f1d6e3
7 changed files with 72 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
||||||
class Procedure < ActiveRecord::Base
|
class Procedure < ActiveRecord::Base
|
||||||
has_many :types_de_piece_justificative
|
has_many :types_de_piece_justificative
|
||||||
|
has_many :types_de_champs
|
||||||
has_many :dossiers
|
has_many :dossiers
|
||||||
belongs_to :evenement_vie
|
belongs_to :evenement_vie
|
||||||
|
|
||||||
|
|
13
app/models/type_de_champs.rb
Normal file
13
app/models/type_de_champs.rb
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
class TypeDeChamps < ActiveRecord::Base
|
||||||
|
enum type: {text: 'text',
|
||||||
|
textarea: 'textarea',
|
||||||
|
datetime: 'datetime',
|
||||||
|
number: 'number'
|
||||||
|
}
|
||||||
|
|
||||||
|
belongs_to :procedure
|
||||||
|
|
||||||
|
validates :libelle, presence: true, allow_blank: false, allow_nil: false
|
||||||
|
validates :type, presence: true, allow_blank: false, allow_nil: false
|
||||||
|
validates :order_place, presence: true, allow_blank: false, allow_nil: false
|
||||||
|
end
|
|
@ -11,6 +11,7 @@ ActiveSupport::Inflector.inflections(:en) do |inflect|
|
||||||
inflect.acronym 'API'
|
inflect.acronym 'API'
|
||||||
inflect.irregular 'piece_justificative', 'pieces_justificatives'
|
inflect.irregular 'piece_justificative', 'pieces_justificatives'
|
||||||
inflect.irregular 'type_de_piece_justificative', 'types_de_piece_justificative'
|
inflect.irregular 'type_de_piece_justificative', 'types_de_piece_justificative'
|
||||||
|
inflect.irregular 'type_de_champs', 'types_de_champs'
|
||||||
end
|
end
|
||||||
|
|
||||||
# These inflection rules are supported but not enabled by default:
|
# These inflection rules are supported but not enabled by default:
|
||||||
|
|
11
db/migrate/20151026155158_create_types_de_champs.rb
Normal file
11
db/migrate/20151026155158_create_types_de_champs.rb
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
class CreateTypesDeChamps < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :types_de_champs do |t|
|
||||||
|
t.string :libelle
|
||||||
|
t.string :type
|
||||||
|
t.integer :order_place
|
||||||
|
|
||||||
|
t.belongs_to :procedure
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,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: 20151023132121) do
|
ActiveRecord::Schema.define(version: 20151026155158) 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"
|
||||||
|
@ -142,6 +142,13 @@ ActiveRecord::Schema.define(version: 20151023132121) do
|
||||||
t.boolean "use_api_carto", default: false
|
t.boolean "use_api_carto", default: false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "types_de_champs", force: :cascade do |t|
|
||||||
|
t.string "libelle"
|
||||||
|
t.string "type"
|
||||||
|
t.integer "order_place"
|
||||||
|
t.integer "procedure_id"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "types_de_piece_justificative", force: :cascade do |t|
|
create_table "types_de_piece_justificative", force: :cascade do |t|
|
||||||
t.string "libelle"
|
t.string "libelle"
|
||||||
t.string "description"
|
t.string "description"
|
||||||
|
|
|
@ -3,6 +3,7 @@ require 'spec_helper'
|
||||||
describe Procedure do
|
describe Procedure do
|
||||||
describe 'assocations' do
|
describe 'assocations' do
|
||||||
it { is_expected.to have_many(:types_de_piece_justificative) }
|
it { is_expected.to have_many(:types_de_piece_justificative) }
|
||||||
|
it { is_expected.to have_many(:types_de_champs) }
|
||||||
it { is_expected.to have_many(:dossiers) }
|
it { is_expected.to have_many(:dossiers) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
37
spec/models/type_de_champs_spec.rb
Normal file
37
spec/models/type_de_champs_spec.rb
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe TypeDeChamps do
|
||||||
|
describe 'database columns' do
|
||||||
|
it { is_expected.to have_db_column(:libelle) }
|
||||||
|
it { is_expected.to have_db_column(:type) }
|
||||||
|
it { is_expected.to have_db_column(:order_place) }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'associations' do
|
||||||
|
it { is_expected.to belong_to(:procedure) }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'validation' do
|
||||||
|
context 'libelle' do
|
||||||
|
it { is_expected.not_to allow_value(nil).for(:libelle) }
|
||||||
|
it { is_expected.not_to allow_value('').for(:libelle) }
|
||||||
|
it { is_expected.to allow_value('Montant projet').for(:libelle) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'type' do
|
||||||
|
it { is_expected.not_to allow_value(nil).for(:type) }
|
||||||
|
it { is_expected.not_to allow_value('').for(:type) }
|
||||||
|
|
||||||
|
it { is_expected.to allow_value('text').for(:type) }
|
||||||
|
it { is_expected.to allow_value('textarea').for(:type) }
|
||||||
|
it { is_expected.to allow_value('datetime').for(:type) }
|
||||||
|
it { is_expected.to allow_value('number').for(:type) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'order_place' do
|
||||||
|
it { is_expected.not_to allow_value(nil).for(:order_place) }
|
||||||
|
it { is_expected.not_to allow_value('').for(:order_place) }
|
||||||
|
it { is_expected.to allow_value(1).for(:order_place) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue