Skip to content

Commit

Permalink
Merge pull request #21 from senid231/18-add-attributes-to-students-an…
Browse files Browse the repository at this point in the history
…d-employees

add attributes to students and employees
  • Loading branch information
dmitry-sinina authored Nov 10, 2019
2 parents 71fd30a + 6895d4d commit 7a75e0a
Show file tree
Hide file tree
Showing 17 changed files with 366 additions and 73 deletions.
3 changes: 3 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ Style/FrozenStringLiteralComment:
Style/Lambda:
EnforcedStyle: literal

Style/GuardClause:
Enabled: false

Lint/AmbiguousBlockAssociation:
Exclude:
- spec/**/*.rb
Expand Down
35 changes: 30 additions & 5 deletions app/admin/employees.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
decorate_with EmployeeDecorator
config.current_filters = false

filter :first_name
filter :last_name
filter :first_name
filter :middle_name

filter_select :login_record_allowed_services_arr_contains,
label: 'Allowed Services',
Expand All @@ -18,22 +19,35 @@
'data-chosen-opts': { disable_search: true }.to_json
}

filter :inn
filter :passport_number
filter :phone_number
filter :email
filter :login_record_login, label: 'Login'
filter :created_at
filter :updated_at

extended_batch_destroy!

includes(:login_record)
controller do
def scoped_collection
super.preload(:login_record)
end
end

index do
selectable_column
id_column
actions
column :first_name
column :last_name
column :first_name
column :middle_name
column :allowed_services, :service_tags
column :login
column :inn
column :passport_number
column :phone_number
column :email
column :created_at
column :updated_at
end
Expand All @@ -43,8 +57,13 @@
column do
attributes_table do
row :id
row :first_name
row :last_name
row :first_name
row :middle_name
row :inn
row :passport_number
row :phone_number
row :email
row :created_at
row :updated_at
end
Expand All @@ -68,14 +87,20 @@
end

permit_params :first_name, :last_name,
:inn, :passport_number, :middle_name, :phone_number, :email,
login_record_attributes: [:id, :login, :password, allowed_services: []]

form do |f|
f.semantic_errors(*f.object.errors.keys)

f.inputs do
f.input :first_name
f.input :last_name
f.input :first_name
f.input :middle_name
f.input :inn
f.input :passport_number
f.input :phone_number
f.input :email
end

f.inputs for: [:login_record, f.object.login_record || LoginRecord.new] do |c|
Expand Down
39 changes: 34 additions & 5 deletions app/admin/students.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
decorate_with StudentDecorator
config.current_filters = false

filter :first_name
filter :last_name
filter :first_name
filter :middle_name

filter_select :login_record_allowed_services_arr_contains,
label: 'Allowed Services',
Expand All @@ -18,22 +19,37 @@
'data-chosen-opts': { disable_search: true }.to_json
}

filter :inn
filter :passport_number
filter :ticket_number
filter :phone_number
filter :email
filter :login_record_login, label: 'Login'
filter :created_at
filter :updated_at

extended_batch_destroy!

includes(:login_record)
controller do
def scoped_collection
super.preload(:login_record)
end
end

index do
selectable_column
id_column
actions
column :first_name
column :last_name
column :first_name
column :middle_name
column :allowed_services, :service_tags
column :login
column :inn
column :passport_number
column :ticket_number
column :phone_number
column :email
column :created_at
column :updated_at
end
Expand All @@ -43,8 +59,14 @@
column do
attributes_table do
row :id
row :first_name
row :last_name
row :first_name
row :middle_name
row :inn
row :passport_number
row :ticket_number
row :phone_number
row :email
row :created_at
row :updated_at
end
Expand All @@ -68,14 +90,21 @@
end

permit_params :first_name, :last_name,
:inn, :passport_number, :ticket_number, :middle_name, :phone_number, :email,
login_record_attributes: [:id, :login, :password, allowed_services: []]

form do |f|
f.semantic_errors(*f.object.errors.keys)

f.inputs do
f.input :first_name
f.input :last_name
f.input :first_name
f.input :middle_name
f.input :inn
f.input :passport_number
f.input :ticket_number
f.input :phone_number
f.input :email
end

f.inputs for: [:login_record, f.object.login_record || LoginRecord.new] do |c|
Expand Down
3 changes: 0 additions & 3 deletions app/controllers/api/eduroam/accounting_controller.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
module Api
module Eduroam
class AccountingController < ApiController
# fix for Can't verify CSRF token authenticity.
skip_before_action :verify_authenticity_token

def create
record = WifiSessionForm.new(permitted_params)
if record.save
Expand Down
3 changes: 2 additions & 1 deletion app/controllers/api_controller.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class ApiController < ApplicationController
class ApiController < ActionController::API
include ExceptionHandler
rescue_from StandardError, with: :server_error

def server_error(err)
Expand Down
2 changes: 1 addition & 1 deletion app/forms/set_role_form.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def validate_root_role
errors.add(:role, "not root admin user can't set root role to someone")
end

if !set_role_to_root? && model.root? && !initiator.root? # rubocop:disable Style/GuardClause
if !set_role_to_root? && model.root? && !initiator.root?
errors.add(:role, "not root admin user can't remove root role from another admin user")
end
end
Expand Down
4 changes: 4 additions & 0 deletions app/lib/exception_handler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ def log_error(error, backtrace: true)
msg << "\n#{error.backtrace.join("\n")}" if backtrace
msg
end
if error.cause && error != error.cause
logger.error { 'Caused by:' }
log_error(error.cause, backtrace: backtrace)
end
end
end

Expand Down
21 changes: 16 additions & 5 deletions app/models/employee.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,28 @@
#
# Table name: employees
#
# id :bigint(8) not null, primary key
# first_name :string not null
# last_name :string not null
# created_at :datetime not null
# updated_at :datetime not null
# id :bigint(8) not null, primary key
# email :string
# first_name :string not null
# inn :string
# last_name :string not null
# middle_name :string
# passport_number :string
# phone_number :string
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# employees_inn_key (inn) UNIQUE
# employees_passport_number_key (passport_number) UNIQUE
#

class Employee < ApplicationRecord
include ActsAsLoginable

validates :first_name, :last_name, presence: true
validates :inn, :passport_number, uniqueness: true, allow_blank: true

def full_name
"#{first_name} #{last_name}"
Expand Down
23 changes: 18 additions & 5 deletions app/models/student.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,30 @@
#
# Table name: students
#
# id :bigint(8) not null, primary key
# first_name :string not null
# last_name :string not null
# created_at :datetime not null
# updated_at :datetime not null
# id :bigint(8) not null, primary key
# email :string
# first_name :string not null
# inn :string
# last_name :string not null
# middle_name :string
# passport_number :string
# phone_number :string
# ticket_number :string
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# students_inn_key (inn) UNIQUE
# students_passport_number_key (passport_number) UNIQUE
# students_ticket_number_key (ticket_number) UNIQUE
#

class Student < ApplicationRecord
include ActsAsLoginable

validates :first_name, :last_name, presence: true
validates :inn, :passport_number, :ticket_number, uniqueness: true, allow_blank: true

def full_name
"#{first_name} #{last_name}"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
class AddAttributesToStudentsAndEmployees < ActiveRecord::Migration[5.2]
def up
execute <<-SQL
ALTER TABLE students
ADD middle_name varchar,
ADD ticket_number varchar UNIQUE,
ADD passport_number varchar UNIQUE,
ADD inn varchar UNIQUE,
ADD phone_number varchar,
ADD email varchar;
SQL

execute <<-SQL
ALTER TABLE employees
ADD middle_name varchar,
ADD passport_number varchar UNIQUE,
ADD inn varchar UNIQUE,
ADD phone_number varchar,
ADD email varchar;
SQL
end

def down
execute <<-SQL
ALTER TABLE employees
DROP middle_name,
DROP passport_number,
DROP inn,
DROP phone_number,
DROP email;
SQL

execute <<-SQL
ALTER TABLE students
DROP middle_name,
DROP ticket_number,
DROP passport_number,
DROP inn,
DROP phone_number,
DROP email;
SQL
end
end
Loading

0 comments on commit 7a75e0a

Please sign in to comment.