diff --git a/app/models/local_census_record.rb b/app/models/local_census_record.rb new file mode 100644 index 000000000..69e9db3c7 --- /dev/null +++ b/app/models/local_census_record.rb @@ -0,0 +1,8 @@ +class LocalCensusRecord < ActiveRecord::Base + has_one :user + + validates :document_number, presence: true + validates :document_type, presence: true + validates :date_of_birth, presence: true + validates :postal_code, presence: true +end diff --git a/app/models/user.rb b/app/models/user.rb index 9df08c014..35f808ed7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -32,6 +32,7 @@ class User < ActiveRecord::Base has_many :direct_messages_received, class_name: 'DirectMessage', foreign_key: :receiver_id has_many :legislation_answers, class_name: 'Legislation::Answer', dependent: :destroy, inverse_of: :user belongs_to :geozone + belongs_to :local_census_record validates :username, presence: true, if: :username_required? validates :username, uniqueness: { scope: :registering_with_oauth }, if: :username_required? diff --git a/db/migrate/20170708174932_create_local_census_records.rb b/db/migrate/20170708174932_create_local_census_records.rb new file mode 100644 index 000000000..640594ded --- /dev/null +++ b/db/migrate/20170708174932_create_local_census_records.rb @@ -0,0 +1,15 @@ +class CreateLocalCensusRecords < ActiveRecord::Migration + def change + create_table :local_census_records do |t| + t.string :document_number, null: false + t.string :document_type, null: false + t.date :date_of_birth, null: false + t.string :postal_code, null: false + t.integer :user_id + + t.timestamps null: false + end + + add_foreign_key :local_census_records, :users, column: :user_id + end +end diff --git a/db/schema.rb b/db/schema.rb index 042bec7dd..380ec69ef 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: 20170626081337) do +ActiveRecord::Schema.define(version: 20170708174932) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -108,8 +108,8 @@ ActiveRecord::Schema.define(version: 20170626081337) do create_table "budget_headings", force: :cascade do |t| t.integer "group_id" - t.string "name", limit: 50 - t.integer "price", limit: 8 + t.string "name", limit: 50 + t.integer "price", limit: 8 t.integer "population" end @@ -468,6 +468,16 @@ ActiveRecord::Schema.define(version: 20170626081337) do add_index "legislation_questions", ["hidden_at"], name: "index_legislation_questions_on_hidden_at", using: :btree add_index "legislation_questions", ["legislation_process_id"], name: "index_legislation_questions_on_legislation_process_id", using: :btree + create_table "local_census_records", force: :cascade do |t| + t.string "document_number", null: false + t.string "document_type", null: false + t.date "date_of_birth", null: false + t.string "postal_code", null: false + t.integer "user_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + create_table "locks", force: :cascade do |t| t.integer "user_id" t.integer "tries", default: 0 @@ -793,6 +803,7 @@ ActiveRecord::Schema.define(version: 20170626081337) do t.string "status", default: "draft" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.string "locale" end create_table "spending_proposals", force: :cascade do |t| @@ -1034,6 +1045,7 @@ ActiveRecord::Schema.define(version: 20170626081337) do add_foreign_key "geozones_polls", "polls" add_foreign_key "identities", "users" add_foreign_key "legislation_draft_versions", "legislation_processes" + add_foreign_key "local_census_records", "users" add_foreign_key "locks", "users" add_foreign_key "managers", "users" add_foreign_key "moderators", "users" diff --git a/spec/factories.rb b/spec/factories.rb index c0cbd1cc1..062c80aa2 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -1,4 +1,7 @@ FactoryGirl.define do + factory :local_census_record do + + end sequence(:document_number) { |n| "#{n.to_s.rjust(8, '0')}X" } factory :user do diff --git a/spec/models/local_census_record_spec.rb b/spec/models/local_census_record_spec.rb new file mode 100644 index 000000000..f30474418 --- /dev/null +++ b/spec/models/local_census_record_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe LocalCensusRecord, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end