effective_mentorships 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/admin/mentorship_bulk_groups_controller.rb +19 -0
- data/app/datatables/admin/effective_mentorship_bulk_group_mentees_datatable.rb +65 -0
- data/app/datatables/admin/effective_mentorship_bulk_group_mentors_datatable.rb +66 -0
- data/app/datatables/admin/effective_mentorship_bulk_groups_datatable.rb +32 -0
- data/app/datatables/admin/effective_mentorship_cycles_datatable.rb +0 -1
- data/app/datatables/admin/effective_mentorship_groups_datatable.rb +59 -7
- data/app/datatables/admin/effective_mentorship_registrations_datatable.rb +18 -3
- data/app/datatables/effective_mentorships_available_cycles_datatable.rb +1 -1
- data/app/datatables/effective_mentorships_groups_datatable.rb +1 -1
- data/app/datatables/effective_mentorships_registrations_datatable.rb +1 -0
- data/app/helpers/effective_mentorships_helper.rb +1 -0
- data/app/jobs/effective/mentorships_bulk_create_groups_job.rb +10 -0
- data/app/jobs/effective/mentorships_bulk_notify_groups_job.rb +10 -0
- data/app/mailers/effective/mentorships_mailer.rb +41 -3
- data/app/models/concerns/effective_mentorships_bulk_group.rb +368 -0
- data/app/models/concerns/effective_mentorships_group.rb +80 -5
- data/app/models/concerns/effective_mentorships_registration.rb +69 -8
- data/app/models/concerns/effective_mentorships_user.rb +42 -0
- data/app/models/effective/mentorship_bulk_group.rb +6 -0
- data/app/models/effective/mentorship_cycle.rb +1 -1
- data/app/models/effective/mentorship_group_user.rb +15 -0
- data/app/views/admin/mentorship_bulk_groups/_content.html.haml +1 -0
- data/app/views/admin/mentorship_bulk_groups/_creation.html.haml +9 -0
- data/app/views/admin/mentorship_bulk_groups/_layout.html.haml +3 -0
- data/app/views/admin/mentorship_bulk_groups/_selection.html.haml +24 -0
- data/app/views/admin/mentorship_bulk_groups/finished.html.haml +35 -0
- data/app/views/admin/mentorship_bulk_groups/group.html.haml +31 -0
- data/app/views/admin/mentorship_bulk_groups/grouping.html.haml +10 -0
- data/app/views/admin/mentorship_bulk_groups/notify.html.haml +49 -0
- data/app/views/admin/mentorship_bulk_groups/notifying.html.haml +10 -0
- data/app/views/admin/mentorship_bulk_groups/publish.html.haml +30 -0
- data/app/views/admin/mentorship_bulk_groups/review.html.haml +49 -0
- data/app/views/admin/mentorship_bulk_groups/start.html.haml +8 -0
- data/app/views/admin/mentorship_cycles/_form_mentorship_cycle.html.haml +0 -4
- data/app/views/admin/mentorship_groups/_form_mentorship_group.html.haml +11 -4
- data/app/views/effective/mentorship_registrations/_fields.html.haml +2 -2
- data/app/views/effective/mentorships/_dashboard.html.haml +1 -1
- data/app/views/effective/mentorships_mailer/mentorship_group_created_to_mentee.liquid +14 -0
- data/app/views/effective/mentorships_mailer/mentorship_group_created_to_mentor.liquid +14 -0
- data/config/effective_mentorships.rb +1 -0
- data/config/locales/effective_mentorships.en.yml +1 -0
- data/config/routes.rb +12 -5
- data/db/migrate/101_create_effective_mentorships.rb +26 -2
- data/lib/effective_mentorships/engine.rb +1 -0
- data/lib/effective_mentorships/version.rb +1 -1
- data/lib/effective_mentorships.rb +6 -2
- metadata +24 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95229a4d568c5fc8d66a4cdd38218cbe2dc2ff9c352c3f23a7acda317fb0bce3
|
4
|
+
data.tar.gz: 7d9ca438ab03dfc14ba509eac03921a43e84c76189f9238481ec0cda7074ad58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b3cce00a2d088be42079fe29e905fafcaf385ebec8f6a2e90600bf8308155011907683ed744aa7e44ad8ece78b5fecd2e314488a1bd7cf0ed4649d138d2e13c
|
7
|
+
data.tar.gz: 4e83bdcce4526ac587f9bc322d22e31e73452905cee86d896adcd970e3b35ac062c33b712bcf8dac82507ecc23951415091e9a677b5d4d5186d63bd4ee631cc1
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Admin
|
2
|
+
class MentorshipBulkGroupsController < ApplicationController
|
3
|
+
before_action(:authenticate_user!) if defined?(Devise)
|
4
|
+
before_action { EffectiveResources.authorize!(self, :admin, :effective_mentorships) }
|
5
|
+
|
6
|
+
include Effective::WizardController
|
7
|
+
|
8
|
+
resource_scope -> { EffectiveMentorships.MentorshipBulkGroup.deep.all }
|
9
|
+
datatable -> { EffectiveResources.best('Admin::EffectiveMentorshipBulkGroupsDatatable').new }
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def permitted_params
|
14
|
+
model = (params.key?(:effective_mentorship_bulk_group) ? :effective_mentorship_bulk_group : :mentorship_bulk_group)
|
15
|
+
params.require(model).permit!
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Admin
|
2
|
+
class EffectiveMentorshipBulkGroupMenteesDatatable < Effective::Datatable
|
3
|
+
datatable do
|
4
|
+
order :updated_at
|
5
|
+
|
6
|
+
col :updated_at, visible: false
|
7
|
+
col :created_at, visible: false
|
8
|
+
col :id, visible: false
|
9
|
+
col :token, visible: false
|
10
|
+
|
11
|
+
col :user
|
12
|
+
col 'user.first_name', visible: false
|
13
|
+
col 'user.last_name', visible: false
|
14
|
+
col 'user.email', visible: false
|
15
|
+
|
16
|
+
if defined?(EffectiveMemberships)
|
17
|
+
col(:member_number, label: 'Member #', sort: false, visible: false) do |registration|
|
18
|
+
registration.user.try(:membership).try(:number)
|
19
|
+
end.search do |collection, term|
|
20
|
+
memberships = Effective::Membership.where(owner_type: current_user.class.name).where('number ILIKE ?', "%#{term}%")
|
21
|
+
collection.where(user_id: memberships.select('owner_id'))
|
22
|
+
end
|
23
|
+
|
24
|
+
col(:membership_categories, label: 'Member Category', sort: false, visible: false, search: EffectiveMemberships.Category.sorted.all) do |registration|
|
25
|
+
Array(registration.user.try(:membership).try(:membership_categories)).each do |membership_category|
|
26
|
+
content_tag(:div, membership_category, class: 'col-resource')
|
27
|
+
end.join.html_safe
|
28
|
+
end.search do |collection, term|
|
29
|
+
memberships = Effective::Membership.where(owner_type: current_user.class.name).with_category(term)
|
30
|
+
collection.where(user_id: memberships.select('owner_id'))
|
31
|
+
end
|
32
|
+
|
33
|
+
col(:membership_statuses, label: 'Member Status', sort: false, visible: false, search: EffectiveMemberships.Status.sorted.all) do |registration|
|
34
|
+
Array(registration.user.try(:membership).try(:statuses)).each do |status|
|
35
|
+
content_tag(:div, status, class: 'col-resource')
|
36
|
+
end.join.html_safe
|
37
|
+
end.search do |collection, term|
|
38
|
+
memberships = Effective::Membership.where(owner_type: current_user.class.name).with_status(term)
|
39
|
+
collection.where(user_id: memberships.select('owner_id'))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
col :mentorship_role, label: 'Role', search: mentorship_roles_collection() do |registration|
|
44
|
+
mentorship_role_label(registration.mentorship_role)
|
45
|
+
end
|
46
|
+
|
47
|
+
col :category, search: EffectiveMentorships.MentorshipRegistration.categories
|
48
|
+
col :venue, search: EffectiveMentorships.MentorshipRegistration.venues
|
49
|
+
col :location, search: EffectiveMentorships.MentorshipRegistration.locations
|
50
|
+
|
51
|
+
actions_col(only: [:show, :edit])
|
52
|
+
end
|
53
|
+
|
54
|
+
collection do
|
55
|
+
registrations = mentorship_bulk_group.mentees_mentorship_registrations.without_groups
|
56
|
+
raise("expected a relation of registrations") unless registrations.klass.try(:effective_mentorships_registration?)
|
57
|
+
|
58
|
+
registrations.joins(:user)
|
59
|
+
end
|
60
|
+
|
61
|
+
def mentorship_bulk_group
|
62
|
+
@mentorship_bulk_group ||= EffectiveMentorships.MentorshipBulkGroup.find_by_id(attributes[:mentorship_bulk_group_id])
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Admin
|
2
|
+
class EffectiveMentorshipBulkGroupMentorsDatatable < Effective::Datatable
|
3
|
+
datatable do
|
4
|
+
order :updated_at
|
5
|
+
|
6
|
+
col :updated_at, visible: false
|
7
|
+
col :created_at, visible: false
|
8
|
+
col :id, visible: false
|
9
|
+
col :token, visible: false
|
10
|
+
|
11
|
+
col :user
|
12
|
+
col 'user.first_name', visible: false
|
13
|
+
col 'user.last_name', visible: false
|
14
|
+
col 'user.email', visible: false
|
15
|
+
|
16
|
+
if defined?(EffectiveMemberships)
|
17
|
+
col(:member_number, label: 'Member #', sort: false, visible: false) do |registration|
|
18
|
+
registration.user.try(:membership).try(:number)
|
19
|
+
end.search do |collection, term|
|
20
|
+
memberships = Effective::Membership.where(owner_type: current_user.class.name).where('number ILIKE ?', "%#{term}%")
|
21
|
+
collection.where(user_id: memberships.select('owner_id'))
|
22
|
+
end
|
23
|
+
|
24
|
+
col(:membership_categories, label: 'Member Category', sort: false, visible: false, search: EffectiveMemberships.Category.sorted.all) do |registration|
|
25
|
+
Array(registration.user.try(:membership).try(:membership_categories)).each do |membership_category|
|
26
|
+
content_tag(:div, membership_category, class: 'col-resource')
|
27
|
+
end.join.html_safe
|
28
|
+
end.search do |collection, term|
|
29
|
+
memberships = Effective::Membership.where(owner_type: current_user.class.name).with_category(term)
|
30
|
+
collection.where(user_id: memberships.select('owner_id'))
|
31
|
+
end
|
32
|
+
|
33
|
+
col(:membership_statuses, label: 'Member Status', sort: false, visible: false, search: EffectiveMemberships.Status.sorted.all) do |registration|
|
34
|
+
Array(registration.user.try(:membership).try(:statuses)).each do |status|
|
35
|
+
content_tag(:div, status, class: 'col-resource')
|
36
|
+
end.join.html_safe
|
37
|
+
end.search do |collection, term|
|
38
|
+
memberships = Effective::Membership.where(owner_type: current_user.class.name).with_status(term)
|
39
|
+
collection.where(user_id: memberships.select('owner_id'))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
col :mentorship_role, label: 'Role', search: mentorship_roles_collection() do |registration|
|
44
|
+
mentorship_role_label(registration.mentorship_role)
|
45
|
+
end
|
46
|
+
|
47
|
+
col :category, search: EffectiveMentorships.MentorshipRegistration.categories
|
48
|
+
col :venue, search: EffectiveMentorships.MentorshipRegistration.venues
|
49
|
+
col :location, search: EffectiveMentorships.MentorshipRegistration.locations
|
50
|
+
col :mentor_multiple_mentees_limit, label: "#{mentorships_mentees_label} Limit"
|
51
|
+
|
52
|
+
actions_col(only: [:show, :edit])
|
53
|
+
end
|
54
|
+
|
55
|
+
collection do
|
56
|
+
registrations = mentorship_bulk_group.mentors_mentorship_registrations.without_groups
|
57
|
+
raise("expected a relation of registrations") unless registrations.klass.try(:effective_mentorships_registration?)
|
58
|
+
|
59
|
+
registrations.joins(:user)
|
60
|
+
end
|
61
|
+
|
62
|
+
def mentorship_bulk_group
|
63
|
+
@mentorship_bulk_group ||= EffectiveMentorships.MentorshipBulkGroup.find_by_id(attributes[:mentorship_bulk_group_id])
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Admin
|
2
|
+
class EffectiveMentorshipBulkGroupsDatatable < Effective::Datatable
|
3
|
+
datatable do
|
4
|
+
order :updated_at
|
5
|
+
|
6
|
+
col :updated_at, visible: false
|
7
|
+
col :created_at, visible: false
|
8
|
+
col :id, visible: false
|
9
|
+
col :token, visible: false
|
10
|
+
|
11
|
+
col :to_s, label: 'Title'
|
12
|
+
|
13
|
+
col :mentorship_cycle
|
14
|
+
col :last_completed_step
|
15
|
+
|
16
|
+
col :mentorship_groups_count, label: "#{mentorship_groups_label} count"
|
17
|
+
col :mentorship_groups, label: "#{mentorship_groups_label}", search: :string, visible: false
|
18
|
+
col :email_form_skip, label: "Skip email"
|
19
|
+
|
20
|
+
col :job_status, visible: false
|
21
|
+
col :job_started_at, visible: false
|
22
|
+
col :job_ended_at, visible: false
|
23
|
+
col :job_error, visible: false
|
24
|
+
|
25
|
+
actions_col
|
26
|
+
end
|
27
|
+
|
28
|
+
collection do
|
29
|
+
EffectiveMentorships.MentorshipBulkGroup.deep.all
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -22,7 +22,6 @@ module Admin
|
|
22
22
|
col :registration_start_at, as: :date
|
23
23
|
col :registration_end_at, as: :date
|
24
24
|
|
25
|
-
col :max_pairings_mentor, label: "Max #{mentorships_mentors_label}"
|
26
25
|
col :max_pairings_mentee, label: "Max #{mentorships_mentees_label}"
|
27
26
|
|
28
27
|
col :mentorship_registrations_count, label: mentorship_registrations_label
|
@@ -1,31 +1,83 @@
|
|
1
1
|
module Admin
|
2
2
|
class EffectiveMentorshipGroupsDatatable < Effective::Datatable
|
3
|
+
bulk_actions do
|
4
|
+
bulk_action(
|
5
|
+
"Notify all published selected #{mentorship_groups_label}",
|
6
|
+
effective_mentorships.bulk_notify_admin_mentorship_groups_path,
|
7
|
+
data: { confirm: "Send email notifications to all published #{mentorship_groups_label}?" }
|
8
|
+
)
|
9
|
+
|
10
|
+
bulk_action(
|
11
|
+
"Publish all selected #{mentorship_groups_label}",
|
12
|
+
effective_mentorships.bulk_publish_admin_mentorship_groups_path,
|
13
|
+
data: { confirm: "Publish all selected #{mentorship_groups_label}?" }
|
14
|
+
)
|
15
|
+
|
16
|
+
bulk_action(
|
17
|
+
"Draft all selected #{mentorship_groups_label}",
|
18
|
+
effective_mentorships.bulk_draft_admin_mentorship_groups_path,
|
19
|
+
data: { confirm: "Draft all selected #{mentorship_groups_label}?" }
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
3
23
|
filters do
|
4
24
|
scope :all
|
5
|
-
scope :
|
25
|
+
scope :published
|
26
|
+
scope :draft
|
6
27
|
end
|
7
28
|
|
8
29
|
datatable do
|
9
30
|
order :updated_at
|
10
31
|
|
32
|
+
bulk_actions_col
|
33
|
+
|
11
34
|
col :updated_at, visible: false
|
12
35
|
col :created_at, visible: false
|
13
36
|
col :id, visible: false
|
14
37
|
col :token, visible: false
|
15
38
|
|
16
|
-
col :
|
39
|
+
col :mentorship_bulk_group, visible: false
|
40
|
+
col :mentorship_cycle, visible: attributes[:mentorship_bulk_group_id].blank?
|
41
|
+
|
42
|
+
col :published?, as: :boolean
|
43
|
+
col :published_start_at, label: "Published start", visible: false
|
44
|
+
col :published_end_at, label: "Published end", visible: false
|
45
|
+
|
17
46
|
col :title
|
18
|
-
col :rich_text_admin_notes, label: "Admin notes"
|
19
47
|
|
20
|
-
col
|
21
|
-
mentorship_group.
|
48
|
+
col(:mentorship_group_mentors, label: mentorships_mentors_label) do |mentorship_group|
|
49
|
+
mentorship_group.mentorship_group_mentors.map do |mentorship_group_user|
|
50
|
+
user = mentorship_group_user.user
|
51
|
+
registration = mentorship_group_user.mentorship_registration
|
52
|
+
|
22
53
|
content_tag(:div, class: 'col-resource_item') do
|
23
|
-
|
54
|
+
[
|
55
|
+
content_tag(:div) { link_to(user, "/admin/users/#{user.to_param}/edit") },
|
56
|
+
(content_tag(:div, content_tag(:small, registration.details)) if registration.present?)
|
57
|
+
].compact.join.html_safe
|
24
58
|
end
|
25
59
|
end.join.html_safe
|
26
60
|
end
|
27
61
|
|
28
|
-
col :
|
62
|
+
col(:mentorship_group_mentees, label: mentorships_mentees_label) do |mentorship_group|
|
63
|
+
mentorship_group.mentorship_group_mentees.map do |mentorship_group_user|
|
64
|
+
user = mentorship_group_user.user
|
65
|
+
registration = mentorship_group_user.mentorship_registration
|
66
|
+
|
67
|
+
content_tag(:div, class: 'col-resource_item') do
|
68
|
+
[
|
69
|
+
content_tag(:div) { link_to(user, "/admin/users/#{user.to_param}/edit") },
|
70
|
+
(content_tag(:div, content_tag(:small, registration.details)) if registration.present?)
|
71
|
+
].compact.join.html_safe
|
72
|
+
end
|
73
|
+
end.join.html_safe
|
74
|
+
end
|
75
|
+
|
76
|
+
col :rich_text_admin_notes, label: "Admin notes"
|
77
|
+
|
78
|
+
col :last_notified_at, as: :date do |mentorship_group|
|
79
|
+
mentorship_group.last_notified_at&.strftime('%F') || '-'
|
80
|
+
end
|
29
81
|
|
30
82
|
actions_col
|
31
83
|
end
|
@@ -4,6 +4,7 @@ module Admin
|
|
4
4
|
scope :all
|
5
5
|
scope :opt_in
|
6
6
|
scope :opt_out
|
7
|
+
scope :opt_in_without_groups
|
7
8
|
end
|
8
9
|
|
9
10
|
datatable do
|
@@ -17,7 +18,7 @@ module Admin
|
|
17
18
|
col :mentorship_cycle
|
18
19
|
col :user
|
19
20
|
|
20
|
-
col :opt_in
|
21
|
+
col :opt_in, visible: attributes[:opt_in_without_groups].blank?
|
21
22
|
|
22
23
|
col :mentorship_role, search: mentorship_roles_collection() do |registration|
|
23
24
|
mentorship_role_label(registration.mentorship_role)
|
@@ -26,16 +27,30 @@ module Admin
|
|
26
27
|
col :category, search: EffectiveMentorships.MentorshipRegistration.categories
|
27
28
|
col :venue, search: EffectiveMentorships.MentorshipRegistration.venues
|
28
29
|
col :location, search: EffectiveMentorships.MentorshipRegistration.locations
|
29
|
-
col :mentor_multiple_mentees_limit,
|
30
|
+
col :mentor_multiple_mentees_limit, label: "#{mentorships_mentees_label} Limit"
|
30
31
|
|
31
32
|
col :parent, visible: false
|
32
33
|
col :rich_text_comments, label: "Comments", visible: false
|
33
34
|
|
35
|
+
col(:mentorship_groups, search: :string, visible: false) do |registration|
|
36
|
+
registration.mentorship_groups.map do |mentorship_group|
|
37
|
+
content_tag(:div, class: 'col-resource_item') do
|
38
|
+
link_to(mentorship_group, effective_mentorships.edit_admin_mentorship_group_path(mentorship_group), target: '_blank')
|
39
|
+
end
|
40
|
+
end.join.html_safe
|
41
|
+
end
|
42
|
+
|
34
43
|
actions_col
|
35
44
|
end
|
36
45
|
|
37
46
|
collection do
|
38
|
-
EffectiveMentorships.MentorshipRegistration.deep.all
|
47
|
+
scope = EffectiveMentorships.MentorshipRegistration.deep.all
|
48
|
+
|
49
|
+
if attributes[:opt_in_without_groups]
|
50
|
+
scope = scope.opt_in.without_groups
|
51
|
+
end
|
52
|
+
|
53
|
+
scope
|
39
54
|
end
|
40
55
|
end
|
41
56
|
end
|
@@ -5,7 +5,7 @@ class EffectiveMentorshipsAvailableCyclesDatatable < Effective::Datatable
|
|
5
5
|
|
6
6
|
col :title
|
7
7
|
|
8
|
-
col :registration, label: "
|
8
|
+
col :registration, label: "Available" do |mentorship_cycle|
|
9
9
|
mentorship_cycle.registrable_date
|
10
10
|
end
|
11
11
|
|
@@ -20,6 +20,6 @@ class EffectiveMentorshipsGroupsDatatable < Effective::Datatable
|
|
20
20
|
end
|
21
21
|
|
22
22
|
collection do
|
23
|
-
EffectiveMentorships.MentorshipGroup.deep.
|
23
|
+
EffectiveMentorships.MentorshipGroup.deep.published.where(id: current_user.mentorship_groups)
|
24
24
|
end
|
25
25
|
end
|
@@ -4,14 +4,52 @@ module Effective
|
|
4
4
|
include EffectiveMailer
|
5
5
|
include EffectiveEmailTemplatesMailer
|
6
6
|
|
7
|
+
def mentorship_group_created_to_mentor(resource, opts = {})
|
8
|
+
raise('expected an Effective::MentorshipGroupUser') unless resource.kind_of?(Effective::MentorshipGroupUser)
|
9
|
+
raise('expected a mentor') unless resource.mentor?
|
10
|
+
|
11
|
+
@assigns = assigns_for(resource).merge(url: effective_mentorships.mentorship_group_url(resource))
|
12
|
+
mail(to: resource.user.email, **headers_for(resource, opts))
|
13
|
+
end
|
14
|
+
|
15
|
+
def mentorship_group_created_to_mentee(resource, opts = {})
|
16
|
+
raise('expected an Effective::MentorshipGroupUser') unless resource.kind_of?(Effective::MentorshipGroupUser)
|
17
|
+
raise('expected a mentee') unless resource.mentee?
|
18
|
+
|
19
|
+
@assigns = assigns_for(resource).merge(url: effective_mentorships.mentorship_group_url(resource))
|
20
|
+
mail(to: resource.user.email, **headers_for(resource, opts))
|
21
|
+
end
|
22
|
+
|
7
23
|
protected
|
8
24
|
|
9
25
|
def assigns_for(resource)
|
10
|
-
unless resource.kind_of?(
|
11
|
-
raise('expected an
|
26
|
+
unless resource.kind_of?(Effective::MentorshipGroupUser)
|
27
|
+
raise('expected an Effective.MentorshipGroupUser')
|
12
28
|
end
|
29
|
+
|
30
|
+
@mentorship_group_user = resource
|
31
|
+
|
32
|
+
@user = resource.user
|
33
|
+
@mentorship_group = resource.mentorship_group
|
34
|
+
@mentorship_cycle = resource.mentorship_group.mentorship_cycle
|
13
35
|
|
14
|
-
{
|
36
|
+
{
|
37
|
+
user: {
|
38
|
+
name: @user.to_s,
|
39
|
+
first_name: @user.try(:first_name),
|
40
|
+
last_name: @user.try(:last_name),
|
41
|
+
email: @user.try(:email),
|
42
|
+
mentorship_role: @mentorship_group_user.mentorship_role
|
43
|
+
},
|
44
|
+
group: {
|
45
|
+
title: @mentorship_group.to_s,
|
46
|
+
mentorship_cycle: @mentorship_group.mentorship_cycle.to_s,
|
47
|
+
mentor_names: @mentorship_group.mentors.map(&:to_s).join(', '),
|
48
|
+
mentor_emails: @mentorship_group.mentors.map(&:email).join(', '),
|
49
|
+
mentee_names: @mentorship_group.mentees.map(&:to_s).join(', '),
|
50
|
+
mentee_emails: @mentorship_group.mentees.map(&:email).join(', '),
|
51
|
+
}
|
52
|
+
}
|
15
53
|
end
|
16
54
|
|
17
55
|
end
|