From 42b1890bf56e1a5dae237a81adf362aa70704699 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 30 Sep 2014 12:55:21 +0300 Subject: [PATCH] Validate e-mail when country is other than estonia --- app/controllers/admin/users_controller.rb | 14 ++++++++++++-- app/models/user.rb | 5 +++-- config/locales/en.yml | 4 ++++ db/seeds.rb | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index d08e7b593..d4e208a82 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -14,10 +14,10 @@ class Admin::UsersController < AdminController @user = User.new(user_params) if @user.save - flash[:notice] = I18n.t('shared.user_added') + flash[:notice] = I18n.t('shared.record_created') redirect_to [:admin, @user] else - flash.now[:alert] = I18n.t('shared.failed_to_add_user') + flash.now[:alert] = I18n.t('shared.failed_to_create_record') render 'new' end end @@ -36,6 +36,16 @@ class Admin::UsersController < AdminController end end + def destroy + if @user.destroy + flash[:notice] = I18n.t('shared.record_deleted') + redirect_to admin_users_path + else + flash.now[:alert] = I18n.t('shared.failed_to_delete_record') + render 'show' + end + end + private def set_user diff --git a/app/models/user.rb b/app/models/user.rb index abeed9476..72e90cf56 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -12,8 +12,9 @@ class User < ActiveRecord::Base validates :username, :password, presence: true validates :identity_code, uniqueness: true, allow_blank: true - validates :identity_code, presence: true, if: -> { country.iso == 'EE' && identity_code.blank? } - validates :registrar, presence: true, if: -> { !admin && !registrar } + validates :identity_code, presence: true, if: -> { country.iso == 'EE' } + validates :email, presence: true, if: -> { country.iso == 'LV' } + validates :registrar, presence: true, if: -> { !admin } before_save -> { self.registrar = nil if admin? } diff --git a/config/locales/en.yml b/config/locales/en.yml index edc2a6d20..16011d2c1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -356,5 +356,9 @@ en: edit_user: 'Edit user' back_to_user: 'Back to user' + record_created: 'Record created' + failed_to_create_record: 'Failed to create record' record_updated: 'Record updated' failed_to_update_record: 'Failed to update record' + record_deleted: 'Record deleted' + failed_to_delete_record: 'Failed to delete record' diff --git a/db/seeds.rb b/db/seeds.rb index 481c6ab49..c7f27db9a 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -7,6 +7,7 @@ # Mayor.create(name: 'Emanuel', city: cities.first) Country.where(name: 'Estonia', iso: 'EE').first_or_create +Country.where(name: 'Latvia', iso: 'LV').first_or_create zone = Registrar.where( name: 'Zone Media OÜ',