onboarding settings done
This commit is contained in:
parent
19a9e9aa8b
commit
314d69e82d
|
|
@ -83,6 +83,9 @@ gem 'sendgrid_toolkit', '>= 1.1.1'
|
||||||
gem 'stripe'
|
gem 'stripe'
|
||||||
gem 'zip-codes'
|
gem 'zip-codes'
|
||||||
gem 'email_validator'
|
gem 'email_validator'
|
||||||
|
gem 'best_in_place', github: 'bernat/best_in_place'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#group :libv8 do
|
#group :libv8 do
|
||||||
# gem 'libv8', "~> 4.5.95"
|
# gem 'libv8', "~> 4.5.95"
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
|
GIT
|
||||||
|
remote: git://github.com/bernat/best_in_place.git
|
||||||
|
revision: 1b779e60ea912ab9c39d5c999b00c8ac44a8e535
|
||||||
|
specs:
|
||||||
|
best_in_place (3.1.1)
|
||||||
|
actionpack (>= 3.2)
|
||||||
|
railties (>= 3.2)
|
||||||
|
|
||||||
PATH
|
PATH
|
||||||
remote: ../db/target/ruby_package
|
remote: ../db/target/ruby_package
|
||||||
specs:
|
specs:
|
||||||
|
|
@ -628,6 +636,7 @@ DEPENDENCIES
|
||||||
amqp (= 0.9.8)
|
amqp (= 0.9.8)
|
||||||
aws-sdk (~> 1)
|
aws-sdk (~> 1)
|
||||||
bcrypt-ruby (= 3.0.1)
|
bcrypt-ruby (= 3.0.1)
|
||||||
|
best_in_place!
|
||||||
bootstrap-sass (= 2.0.4)
|
bootstrap-sass (= 2.0.4)
|
||||||
bootstrap-will_paginate (= 0.0.6)
|
bootstrap-will_paginate (= 0.0.6)
|
||||||
bugsnag
|
bugsnag
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,9 @@ Overtime we can add more administrative functions and views, but initially this
|
||||||
|
|
||||||
Examples of:
|
Examples of:
|
||||||
|
|
||||||
Button on Show Page of Item: 'Send Client Update Notice' in jam_ruby_artifact_updates.rb
|
* Button on Show Page of Item: 'Send Client Update Notice' in jam_ruby_artifact_updates.rb
|
||||||
|
* Batch Updates in View page: onboarding.rb (CurrentlyOnboarding)
|
||||||
|
|
||||||
|
|
||||||
Stuff that is probably breaky:
|
Stuff that is probably breaky:
|
||||||
activeadmin_addons https://github.com/platanus/activeadmin_addons
|
activeadmin_addons https://github.com/platanus/activeadmin_addons
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
ActiveAdmin.register JamRuby::User, :as => 'Onboarder' do
|
||||||
|
|
||||||
|
menu :label => 'Onboarder Settings', :parent => 'JamClass'
|
||||||
|
|
||||||
|
config.sort_order = 'created_at'
|
||||||
|
config.batch_actions = true
|
||||||
|
config.per_page = 100
|
||||||
|
config.paginate = true
|
||||||
|
config.filters = false
|
||||||
|
config.clear_action_items!
|
||||||
|
batch_action :destroy, false
|
||||||
|
|
||||||
|
scope("All Onboarders", default: true) { |scope| scope.where(is_onboarder: true).order(:created_at) }
|
||||||
|
|
||||||
|
|
||||||
|
controller do
|
||||||
|
active_admin_config.includes.push :onboarding_users
|
||||||
|
|
||||||
|
def update
|
||||||
|
resource.max_onboardings = params[:jam_ruby_user][:max_onboardings]
|
||||||
|
resource.save!
|
||||||
|
success.json {}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
index do
|
||||||
|
def last_week
|
||||||
|
@last_week_result ||= calculate_last_week
|
||||||
|
end
|
||||||
|
|
||||||
|
def calculate_last_week
|
||||||
|
start_day = Date.today.beginning_of_week(:sunday).yesterday.beginning_of_week(:sunday)
|
||||||
|
end_day = start_day.end_of_week(:sunday)
|
||||||
|
result = [start_day, end_day]
|
||||||
|
result
|
||||||
|
end
|
||||||
|
|
||||||
|
def this_week
|
||||||
|
@this_week_result ||= calculate_this_week
|
||||||
|
end
|
||||||
|
|
||||||
|
def calculate_this_week
|
||||||
|
start_day = Date.today.beginning_of_week(:sunday)
|
||||||
|
end_day = start_day.end_of_week(:sunday)
|
||||||
|
result = [start_day, end_day]
|
||||||
|
result
|
||||||
|
end
|
||||||
|
|
||||||
|
def week_display(week)
|
||||||
|
start_day = week[0]
|
||||||
|
end_day = week[1]
|
||||||
|
mmyy = start_day.strftime('%b')
|
||||||
|
"#{mmyy} #{start_day.day}-#{end_day.day}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def onboarding_select
|
||||||
|
array = []
|
||||||
|
100.times do |i|
|
||||||
|
array.push [i.to_s, i.to_s]
|
||||||
|
end
|
||||||
|
array
|
||||||
|
end
|
||||||
|
column "Name" do |user|
|
||||||
|
div do
|
||||||
|
div do
|
||||||
|
link_to user.name, user.admin_url
|
||||||
|
end
|
||||||
|
div do
|
||||||
|
user.email
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
column "Max Onboardings" do |user|
|
||||||
|
best_in_place user, :max_onboardings, as: :select, url: admin_onboarder_path(user),:collection => onboarding_select
|
||||||
|
end
|
||||||
|
column "Current Week #{week_display(this_week)}" do |user|
|
||||||
|
start_date, last_date = this_week
|
||||||
|
user.onboarding_users.where(onboarder_assigned_at: start_date..last_date).count
|
||||||
|
end
|
||||||
|
column "Previous Week #{week_display(last_week)}" do |user|
|
||||||
|
start_date, last_date = last_week
|
||||||
|
user.onboarding_users.where(onboarder_assigned_at: start_date..last_date).count
|
||||||
|
end
|
||||||
|
column "Current Student WIP" do |user|
|
||||||
|
user.onboarding_users.where('onboarding_status = ? OR onboarding_status = ?', User::ONBOARDING_STATUS_ASSIGNED, User::ONBOARDING_STATUS_EMAILED).count
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
ActiveAdmin.register JamRuby::User, :as => 'CurrentlyOnboarding' do
|
ActiveAdmin.register JamRuby::User, :as => 'OnboarderManagement' do
|
||||||
|
|
||||||
menu :label => 'Currently Onboarding', :parent => 'JamClass'
|
menu :label => 'Onboarder Management', :parent => 'JamClass'
|
||||||
|
|
||||||
config.sort_order = 'created_at desc'
|
config.sort_order = 'created_at desc'
|
||||||
config.batch_actions = true
|
config.batch_actions = true
|
||||||
|
|
@ -11,7 +11,7 @@ ActiveAdmin.register JamRuby::User, :as => 'CurrentlyOnboarding' do
|
||||||
batch_action :destroy, false
|
batch_action :destroy, false
|
||||||
|
|
||||||
batch_action :onboarder, form: -> { {
|
batch_action :onboarder, form: -> { {
|
||||||
support_consultant: (User.where(is_onboarder: true).includes(:onboarding_users).map {|user| ["#{user.name} (#{user.onboarding_users.length})", user.id]}).to_a.unshift(['Unassign', ''])
|
support_consultant: (User.where(is_onboarder: true).includes(:onboarding_users).map {|user| ["#{user.name} (#{user.onboarding_users.where('onboarding_status = ? OR onboarding_status = ?', User::ONBOARDING_STATUS_ASSIGNED, User::ONBOARDING_STATUS_EMAILED).count})", user.id]}).to_a.unshift(['Unassign', ''])
|
||||||
} } do |ids, inputs|
|
} } do |ids, inputs|
|
||||||
onboarder = inputs[:support_consultant]
|
onboarder = inputs[:support_consultant]
|
||||||
if onboarder.blank?
|
if onboarder.blank?
|
||||||
|
|
@ -59,7 +59,7 @@ ActiveAdmin.register JamRuby::User, :as => 'CurrentlyOnboarding' do
|
||||||
column "Escalated Reason", :onboarding_escalation_reason
|
column "Escalated Reason", :onboarding_escalation_reason
|
||||||
column "Support Consultant" do |user|
|
column "Support Consultant" do |user|
|
||||||
if user.onboarder
|
if user.onboarder
|
||||||
link_to "#{user.onboarder.name} (#{user.onboarder.onboarding_users.count})", user.onboarder.admin_url
|
link_to "#{user.onboarder.name} (#{user.onboarder.onboarding_users.where('onboarding_status = ? OR onboarding_status = ?', User::ONBOARDING_STATUS_ASSIGNED, User::ONBOARDING_STATUS_EMAILED).count})", user.onboarder.admin_url
|
||||||
else
|
else
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -12,3 +12,8 @@
|
||||||
// //= require autocomplete-rails
|
// //= require autocomplete-rails
|
||||||
//= require base
|
//= require base
|
||||||
//= require_tree .
|
//= require_tree .
|
||||||
|
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
jQuery(".best_in_place").best_in_place()
|
||||||
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,10 @@
|
||||||
#= require active_admin/base
|
#= require active_admin/base
|
||||||
#= require jquery3
|
#= require jquery3
|
||||||
|
#= require best_in_place
|
||||||
|
#= require jquery.purr
|
||||||
|
#= require best_in_place.purr
|
||||||
|
|
||||||
|
$(document).ready ->
|
||||||
|
# IS NOT HAPPENING: USE ACTIVE_ADMIN.JS
|
||||||
|
console.log("DAT COFFEE INIT")
|
||||||
|
jQuery(".best_in_place").best_in_place()
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
module ApplicationHelper
|
module ApplicationHelper
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
module JamSessionsHelper
|
module JamSessionsHelper
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
@ -384,4 +384,5 @@ alter_crash_dumps.sql
|
||||||
onboarding.sql
|
onboarding.sql
|
||||||
better_lesson_notices.sql
|
better_lesson_notices.sql
|
||||||
teacher_search_control.sql
|
teacher_search_control.sql
|
||||||
user_timezone.sql
|
user_timezone.sql
|
||||||
|
onboarder_limit.sql
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
ALTER TABLE users ADD COLUMN max_onboardings INTEGER NOT NULL DEFAULT 0;
|
||||||
Loading…
Reference in New Issue