backup commit smart signup form

This commit is contained in:
2015-10-21 18:29:24 +02:00
parent ecf6a3d85a
commit e69b783eb0
7 changed files with 54 additions and 1 deletions
@@ -15,6 +15,30 @@ class NewSuppliersController < ApplicationController
@new_supplier = NewSupplier.new(params[:new_supplier]) @new_supplier = NewSupplier.new(params[:new_supplier])
@new_supplier.current_employee = current_employee @new_supplier.current_employee = current_employee
if @new_supplier.existing_employee?
if @new_supplier.supplier_name.present? && @new_supplier.new_supplier_name?
save_new_supplier
else
sign_in @new_supplier.employee
if @new_supplier.employee.suppliers.size < 2
session[:supplier_id] = @new_supplier.employee.suppliers.first.try(:id)
else
render "choose_supplier"
end
end
else
save_new_supplier
end
end
def choose_supplier
end
private
def save_new_supplier
if @new_supplier.save if @new_supplier.save
sign_in @new_supplier.employee unless current_employee sign_in @new_supplier.employee unless current_employee
Notifier.new_supplier(@new_supplier.supplier.try(:id), @new_supplier.employee.id).deliver_later Notifier.new_supplier(@new_supplier.supplier.try(:id), @new_supplier.employee.id).deliver_later
@@ -9,13 +9,18 @@ class NewSupplier
attribute :password_confirmation attribute :password_confirmation
without_current_employee = { unless: 'current_employee.present?' } without_current_employee = { unless: 'current_employee.present?' }
without_employee = { unless: 'employee.present?' }
validates :supplier_name, presence: true validates :supplier_name, presence: true
validates :email, email: without_current_employee validates :email, email: without_current_employee
validates :password, presence: without_current_employee, confirmation: without_current_employee validates :password, presence: without_current_employee, confirmation: without_employee
validate :employee_uniqueness_or_existence validate :employee_uniqueness_or_existence
validate :supplier_name_uniqueness validate :supplier_name_uniqueness
def current_employee=(employee)
@current_employee = @employee = employee
end
def save def save
if valid? if valid?
persist! persist!
@@ -25,6 +30,21 @@ class NewSupplier
end end
end end
def existing_employee?
return true if current_employee.present?
return false unless email.present? and password.present?
existing_employee = Employee.find_by_email email
if existing_employee.valid_password?(password)
@employee = existing_employee
return true
end
false
end
def new_supplier_name?
Supplier.count_by_name(supplier_name).zero?
end
private private
def persist! def persist!
+2
View File
@@ -50,6 +50,8 @@ class Supplier
has_and_belongs_to_many :employees, storing_keys: true has_and_belongs_to_many :employees, storing_keys: true
has_many :employee_shifts has_many :employee_shifts
view :by_name, key: :name
alias_method :non_enriced_employees, :employees alias_method :non_enriced_employees, :employees
def employees def employees
@cached_enriched_employees ||= non_enriced_employees.tap { |es| es.each{ |e| e.enrich_with_settings(settings_for(e) ) }} @cached_enriched_employees ||= non_enriced_employees.tap { |es| es.each{ |e| e.enrich_with_settings(settings_for(e) ) }}
@@ -0,0 +1,5 @@
h2 Choose supplier
ul
- current_employee.suppliers.each do |supplier|
li= supplier.name
+1
View File
@@ -6,3 +6,4 @@ ul.nav
ul.nav.secondary ul.nav.secondary
- Page.menu_roots.each do |page| - Page.menu_roots.each do |page|
li class=active_class('pages#show', name: page.name).push(page.name) = link_to page.menu_text, go_to_page_path(page.name) li class=active_class('pages#show', name: page.name).push(page.name) = link_to page.menu_text, go_to_page_path(page.name)
li.hide-for-large-up class=active_class('sessions#new') = link_to 'Login', new_employee_session_path
+1
View File
@@ -73,6 +73,7 @@ General
- minimum delay - minimum delay
- What products - What products
- how to display - how to display
- bitpay integration
Post release Post release