think_feel_do_engine 3.17.2 → 3.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/controllers/think_feel_do_engine/navigator_controller.rb +6 -4
  4. data/app/models/concerns/copier.rb +43 -24
  5. data/app/models/emotion.rb +1 -0
  6. data/app/models/group.rb +13 -8
  7. data/app/models/participant.rb +4 -2
  8. data/app/models/think_feel_do_engine/reports/emotional_rating.rb +1 -1
  9. data/app/models/think_feel_do_engine/reports/event.rb +2 -1
  10. data/app/models/think_feel_do_engine/reports/lesson_slide_view.rb +1 -1
  11. data/app/models/think_feel_do_engine/reports/lesson_viewing.rb +2 -2
  12. data/app/models/think_feel_do_engine/reports/login.rb +1 -1
  13. data/app/models/think_feel_do_engine/reports/module_page_view.rb +1 -1
  14. data/app/models/think_feel_do_engine/reports/module_session.rb +1 -1
  15. data/app/models/think_feel_do_engine/reports/patient_activity.rb +1 -1
  16. data/app/models/think_feel_do_engine/reports/patient_thought.rb +2 -1
  17. data/app/models/think_feel_do_engine/reports/phq_assessment.rb +1 -1
  18. data/app/models/think_feel_do_engine/reports/site_session.rb +1 -1
  19. data/app/models/think_feel_do_engine/reports/task_completion.rb +1 -1
  20. data/app/models/think_feel_do_engine/reports/tool_access.rb +1 -1
  21. data/app/models/think_feel_do_engine/reports/user_agent.rb +1 -1
  22. data/app/models/think_feel_do_engine/reports/video_session.rb +1 -1
  23. data/app/models/think_feel_do_engine/reports/wai_assessment.rb +1 -1
  24. data/app/views/think_feel_do_engine/coach/group_dashboard/_activities_future.html.erb +1 -1
  25. data/app/views/think_feel_do_engine/coach/group_dashboard/_activities_past.html.erb +1 -1
  26. data/app/views/think_feel_do_engine/coach/group_dashboard/_comments.html.erb +1 -1
  27. data/app/views/think_feel_do_engine/coach/group_dashboard/_goals.html.erb +1 -1
  28. data/app/views/think_feel_do_engine/coach/group_dashboard/_likes.html.erb +1 -1
  29. data/app/views/think_feel_do_engine/coach/group_dashboard/_logins.html.erb +1 -1
  30. data/app/views/think_feel_do_engine/coach/group_dashboard/_thoughts.html.erb +1 -1
  31. data/app/views/think_feel_do_engine/emotions/_form.html.erb +1 -1
  32. data/lib/think_feel_do_engine/version.rb +1 -1
  33. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e5a174dc3e190c93463eac43b6c0e3421c541cf3
4
- data.tar.gz: 3d945de61e14aa35446c16b30593f1c1fa53f118
3
+ metadata.gz: 248328db1d28d096496e611d71c7d38ca0973c7c
4
+ data.tar.gz: bab9c20b14380eb6a3fdf3ac120ba369b591025e
5
5
  SHA512:
6
- metadata.gz: 0ac05c42703dc7cf0bb411fc6bc09486184e6b2779c1463860b79311d04c55edbce62568d927b448e78afdc3853a2b453c94fba88682f4c99b0f68319c9e4e43
7
- data.tar.gz: e76b60425459ce2f536c49048d4a305aac9932561edc1892aa8647bc51a44c583c1a2706a23348aeefdc9e07200dfb380975d98c820a678a0efe55daef3f7b0f
6
+ metadata.gz: 09d990df0b6015ef3e3c5d7061eff9c0d901f99d43bdd210975fcd4d480f342aa43ac9e9b828faf38894070334f8956f12b392882eec1a0ec9823531d6ca1b28
7
+ data.tar.gz: 1c3c09c80590ccf1966a11f4ab71b2894fcb1922176bf8bbc797c2d08de6da410608546984e2cea89ca7247fd0c6d8827afa511680db1b0c984b32506863b80d
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Think Feel Do Engine
2
2
 
3
- [![Build Status](https://travis-ci.org/cbitstech/think_feel_do_engine.svg)](https://travis-ci.org/cbitstech/think_feel_do_engine)
4
- [![security](https://hakiri.io/github/cbitstech/think_feel_do_engine/master.svg)](https://hakiri.io/github/cbitstech/think_feel_do_engine/master)
3
+ [![Build Status](https://travis-ci.org/NU-CBITS/think_feel_do_engine.svg)](https://travis-ci.org/NU-CBITS/think_feel_do_engine)
4
+ [![security](https://hakiri.io/github/NU-CBITS/think_feel_do_engine/master.svg)](https://hakiri.io/github/NU-CBITS/think_feel_do_engine/master)
5
5
 
6
6
  Provides the tools and administrative interface for Think Feel Do.
7
7
 
@@ -81,7 +81,7 @@ module ThinkFeelDoEngine
81
81
 
82
82
  private
83
83
 
84
- def last_engagment
84
+ def last_engagement
85
85
  current_participant
86
86
  .active_membership
87
87
  .task_statuses
@@ -116,12 +116,14 @@ module ThinkFeelDoEngine
116
116
  .order(:position)
117
117
  .first
118
118
  provider_id == first_content_provider.id.to_s &&
119
- content_id == FIRST_CONTENT_POSITION
119
+ content_id == FIRST_CONTENT_POSITION.to_s
120
120
  end
121
121
 
122
122
  def mark_engagement_completed
123
- if navigator_content_module && last_engagment
124
- last_engagment.update_attributes(completed_at: DateTime.current)
123
+ if navigator_content_module && last_engagement &&
124
+ !@navigator.current_content_provider.exists?(
125
+ @navigator.content_position + 1)
126
+ last_engagement.update_attributes(completed_at: DateTime.current)
125
127
  end
126
128
  end
127
129
 
@@ -3,10 +3,26 @@ module Concerns
3
3
  # Copies lesson content from one arm's learning tool
4
4
  # (i.e., LEARN tool) to another arm's learning tool
5
5
  module Copier
6
- LEARN_TOOL = "Tools::Learn"
6
+ LESSON_MODULE = ContentModules::LessonModule.to_s
7
+ LEARN_TOOL = Tools::Learn.to_s
7
8
  TOOL_TITLE = "LEARN"
8
9
 
9
10
  Arm.class_eval do
11
+ def copy_all_to(new_arm)
12
+ new_tools = new_arm.bit_core_tools
13
+
14
+ bit_core_tools.each do |tool|
15
+ new_tool = new_tools
16
+ .create!(
17
+ position: new_tools.count,
18
+ title: tool.title,
19
+ type: tool.type)
20
+
21
+ tool.copy_all_to(
22
+ new_tool: new_tool)
23
+ end
24
+ end
25
+
10
26
  def copy_lessons_to(new_arm)
11
27
  new_tools = new_arm.bit_core_tools
12
28
  new_tool = new_tools.find_by(type: LEARN_TOOL) ||
@@ -20,7 +36,6 @@ module Concerns
20
36
  bit_core_tools
21
37
  .find_by(type: LEARN_TOOL)
22
38
  .copy_content_modules_to(
23
- new_arm: new_arm,
24
39
  new_tool: new_tool)
25
40
  end
26
41
  end
@@ -29,13 +44,19 @@ module Concerns
29
44
  # rubocop:disable ClassAndModuleChildren
30
45
  module ::BitCore
31
46
  Tool.class_eval do
32
- LESSON_MODULE = "ContentModules::LessonModule"
47
+ def copy_all_to(new_tool:)
48
+ ContentModule.transaction do
49
+ content_modules.each do |content_module|
50
+ content_module.copy_content_providers_to(
51
+ new_tool: new_tool)
52
+ end
53
+ end
54
+ end
33
55
 
34
- def copy_content_modules_to(new_arm:, new_tool:)
56
+ def copy_content_modules_to(new_tool:)
35
57
  ContentModule.transaction do
36
58
  content_modules.where(type: LESSON_MODULE).each do |content_module|
37
59
  content_module.copy_content_providers_to(
38
- new_arm: new_arm,
39
60
  new_tool: new_tool)
40
61
  end
41
62
  end
@@ -43,7 +64,7 @@ module Concerns
43
64
  end
44
65
 
45
66
  ContentModule.class_eval do
46
- def copy_content_providers_to(new_arm:, new_tool:)
67
+ def copy_content_providers_to(new_tool:)
47
68
  ContentModule.transaction do
48
69
  new_content_module =
49
70
  ContentModule.create!(
@@ -57,7 +78,7 @@ module Concerns
57
78
  content_providers.each do |content_provider|
58
79
  content_provider
59
80
  .copy_source_content_to!(
60
- new_arm: new_arm,
81
+ new_arm: new_tool.arm,
61
82
  new_content_module: new_content_module)
62
83
  end
63
84
 
@@ -69,14 +90,12 @@ module Concerns
69
90
  ContentProvider.class_eval do
70
91
  def copy_source_content_to!(new_arm:, new_content_module:)
71
92
  ContentProvider.transaction do
72
- # rubocop:disable DoubleNegation
73
93
  ContentProvider.create!(
74
94
  content_module: new_content_module,
75
95
  position: position,
76
- show_next_nav: !!show_next_nav,
96
+ show_next_nav: show_next_nav,
77
97
  type: type,
78
98
  source_content: source_content.try(:copy_to, new_arm))
79
- # rubocop:enable DoubleNegation
80
99
  end
81
100
  end
82
101
  end
@@ -84,35 +103,35 @@ module Concerns
84
103
  Slideshow.class_eval do
85
104
  def copy_to(new_arm)
86
105
  Slideshow.transaction do
87
- slideshow = Slideshow.create!(arm: new_arm, title: title)
88
-
89
- copy_slides_to!(slideshow)
90
-
91
- slideshow
106
+ slideshow = Slideshow
107
+ .find_or_create_by!(arm_id: new_arm.id, title: title)
108
+ copy_slides_to(slideshow)
92
109
  end
93
110
  end
94
111
 
95
112
  private
96
113
 
97
- def copy_slides_to!(slideshow)
114
+ def copy_slides_to(slideshow)
98
115
  Slide.transaction do
99
116
  slides.each do |slide|
100
117
  slide.copy_to!(slideshow)
101
118
  end
102
119
  end
120
+
121
+ slideshow
103
122
  end
104
123
  end
105
124
 
106
125
  Slide.class_eval do
107
126
  def copy_to!(slideshow)
108
- Slide.create!(
109
- body: body,
110
- is_title_visible: is_title_visible,
111
- options: options,
112
- position: position,
113
- slideshow: slideshow,
114
- title: title,
115
- type: type)
127
+ slideshow.slides
128
+ .find_or_create_by!(
129
+ body: body,
130
+ is_title_visible: is_title_visible,
131
+ position: position,
132
+ title: title,
133
+ type: type)
134
+ .update_attributes!(options: options)
116
135
  end
117
136
  end
118
137
  end
@@ -6,6 +6,7 @@ class Emotion < ActiveRecord::Base
6
6
  validates :creator, presence: true
7
7
  validates :name, presence: true
8
8
  validates :name, uniqueness: { scope: :creator_id }
9
+ validates :name, length: { maximum: 255 }
9
10
 
10
11
  before_validation :normalize_name
11
12
 
data/app/models/group.rb CHANGED
@@ -29,7 +29,7 @@ class Group < ActiveRecord::Base
29
29
  end
30
30
 
31
31
  def logins_by_week(week_number)
32
- memberships.map do |membership|
32
+ non_moderator_memberships.map do |membership|
33
33
  membership
34
34
  .logins_by_week(week_number)
35
35
  end.inject(:+)
@@ -38,7 +38,7 @@ class Group < ActiveRecord::Base
38
38
  def thoughts_by_week(week_number)
39
39
  thoughts = Arel::Table.new(:thoughts)
40
40
 
41
- memberships.map do |membership|
41
+ non_moderator_memberships.map do |membership|
42
42
  membership
43
43
  .participant
44
44
  .thoughts
@@ -52,7 +52,7 @@ class Group < ActiveRecord::Base
52
52
  def activities_past_by_week(week_number)
53
53
  activities = Arel::Table.new(:activities)
54
54
 
55
- memberships.map do |membership|
55
+ non_moderator_memberships.map do |membership|
56
56
  membership
57
57
  .participant
58
58
  .activities
@@ -65,7 +65,7 @@ class Group < ActiveRecord::Base
65
65
  def activities_future_by_week(week_number)
66
66
  activities = Arel::Table.new(:activities)
67
67
 
68
- memberships.map do |membership|
68
+ non_moderator_memberships.map do |membership|
69
69
  membership
70
70
  .participant
71
71
  .activities
@@ -78,7 +78,7 @@ class Group < ActiveRecord::Base
78
78
  def goals_by_week(week_number)
79
79
  social_networking_goals = Arel::Table.new(:social_networking_goals)
80
80
 
81
- memberships.map do |membership|
81
+ non_moderator_memberships.map do |membership|
82
82
  SocialNetworking::Goal
83
83
  .where(participant: membership.participant)
84
84
  .where(social_networking_goals[:created_at]
@@ -91,7 +91,7 @@ class Group < ActiveRecord::Base
91
91
  def comments_by_week(week_number)
92
92
  social_networking_comments = Arel::Table.new(:social_networking_comments)
93
93
 
94
- memberships.map do |membership|
94
+ non_moderator_memberships.map do |membership|
95
95
  SocialNetworking::Comment
96
96
  .where(participant: membership.participant)
97
97
  .where(social_networking_comments[:created_at]
@@ -105,7 +105,7 @@ class Group < ActiveRecord::Base
105
105
  social_networking_on_the_mind_statements =
106
106
  Arel::Table.new(:social_networking_on_the_mind_statements)
107
107
 
108
- memberships.map do |membership|
108
+ non_moderator_memberships.map do |membership|
109
109
  SocialNetworking::OnTheMindStatement
110
110
  .where(participant: membership.participant)
111
111
  .where(social_networking_on_the_mind_statements[:created_at]
@@ -119,7 +119,7 @@ class Group < ActiveRecord::Base
119
119
  social_networking_likes =
120
120
  Arel::Table.new(:social_networking_likes)
121
121
 
122
- memberships.map do |membership|
122
+ non_moderator_memberships.map do |membership|
123
123
  SocialNetworking::Like
124
124
  .where(participant: membership.participant)
125
125
  .where(social_networking_likes[:created_at]
@@ -128,4 +128,9 @@ class Group < ActiveRecord::Base
128
128
  .lt(membership.week_end_day(week_number)))
129
129
  end.map(&:count).sum
130
130
  end
131
+
132
+ def non_moderator_memberships
133
+ memberships.joins(:participant)
134
+ .merge(Participant.not_moderator)
135
+ end
131
136
  end
@@ -61,8 +61,6 @@ class Participant < ActiveRecord::Base
61
61
  -> { where(kind: "click") },
62
62
  class_name: "EventCapture::Event",
63
63
  foreign_key: :participant_id
64
- has_many :experiences, dependent: :destroy
65
- has_many :gratitude_recordings, dependent: :destroy
66
64
 
67
65
  delegate :end_date, to: :active_membership, prefix: true, allow_nil: true
68
66
 
@@ -92,6 +90,10 @@ class Participant < ActiveRecord::Base
92
90
  )
93
91
  }
94
92
 
93
+ scope :not_moderator, lambda {
94
+ where(is_admin: false)
95
+ }
96
+
95
97
  def is_not_allowed_in_site
96
98
  # participant not set to is_complete (hence withdrawal or termination)
97
99
  # and who have no active memberships
@@ -7,7 +7,7 @@ module ThinkFeelDoEngine
7
7
  end
8
8
 
9
9
  def self.all
10
- Participant.select(:id, :study_id).map do |participant|
10
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
11
11
  participant.emotional_ratings.map do |emotional_rating|
12
12
  {
13
13
  participant_id: participant.study_id,
@@ -8,7 +8,8 @@ module ThinkFeelDoEngine
8
8
  end
9
9
 
10
10
  def self.all
11
- Participant.select(:id, :study_id, :is_admin).map do |participant|
11
+ Participant.not_moderator
12
+ .select(:id, :study_id, :is_admin).map do |participant|
12
13
  EventCapture::Event.where(participant_id: participant.id)
13
14
  .map do |event|
14
15
  {
@@ -38,7 +38,7 @@ module ThinkFeelDoEngine
38
38
  def self.all_slide_interactions
39
39
  lessons = lessons_map
40
40
 
41
- Participant.select(:id, :study_id).map do |participant|
41
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
42
42
  slide_view_events(lessons, participant.id).map do |lesson_event|
43
43
  e = lesson_event[1]
44
44
  lesson_id = lesson_event[0]
@@ -12,14 +12,14 @@ module ThinkFeelDoEngine
12
12
  end
13
13
 
14
14
  def self.participant_ids(ids)
15
- ids.empty? ? Participant.ids : ids
15
+ ids.empty? ? Participant.not_moderator.ids : ids
16
16
  end
17
17
 
18
18
  def self.all(*ids)
19
19
  lessons = lesson_entries_map
20
20
  lessons_default = lessons_with_default_urls
21
21
 
22
- Participant.select(:id, :study_id)
22
+ Participant.not_moderator.select(:id, :study_id)
23
23
  .where(id: participant_ids(ids)).map do |participant|
24
24
  lesson_select_events =
25
25
  EventCapture::Event
@@ -7,7 +7,7 @@ module ThinkFeelDoEngine
7
7
  end
8
8
 
9
9
  def self.all
10
- Participant.select(:id, :study_id).map do |participant|
10
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
11
11
  ParticipantLoginEvent
12
12
  .where(participant_id: participant.id).map do |event|
13
13
  {
@@ -12,7 +12,7 @@ module ThinkFeelDoEngine
12
12
  def self.all
13
13
  modules = modules_map
14
14
 
15
- Participant.select(:id, :study_id).map do |participant|
15
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
16
16
  slide_render_events_for(participant, modules).map do |module_event|
17
17
  e = module_event[1]
18
18
  mod = module_event[0]
@@ -50,7 +50,7 @@ module ThinkFeelDoEngine
50
50
  end
51
51
  end
52
52
 
53
- Participant.select(:id, :study_id).map do |participant|
53
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
54
54
  events = time_sorted_render_events_for(participant)
55
55
 
56
56
  events.map do |e|
@@ -7,7 +7,7 @@ module ThinkFeelDoEngine
7
7
  end
8
8
 
9
9
  def self.all
10
- Participant.select(:id, :study_id).map do |participant|
10
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
11
11
  participant.activities.map do |activity|
12
12
  {
13
13
  participant_id: participant.study_id,
@@ -7,7 +7,8 @@ module ThinkFeelDoEngine
7
7
  end
8
8
 
9
9
  def self.all
10
- Participant.select(:id, :study_id).map.map do |participant|
10
+ Participant.not_moderator
11
+ .select(:id, :study_id).map.map do |participant|
11
12
  participant.thoughts.map do |thought|
12
13
  {
13
14
  participant_id: participant.study_id,
@@ -8,7 +8,7 @@ module ThinkFeelDoEngine
8
8
  end
9
9
 
10
10
  def self.all
11
- Participant.select(:id, :study_id).map do |participant|
11
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
12
12
  participant.phq_assessments.map do |assessment|
13
13
  {
14
14
  participant_id: participant.study_id,
@@ -9,7 +9,7 @@ module ThinkFeelDoEngine
9
9
  end
10
10
 
11
11
  def self.all
12
- Participant.select(:id, :study_id).map do |participant|
12
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
13
13
  earliest_click_time = latest_click_time = nil
14
14
  times = click_times(participant.id)
15
15
  times.map do |click_time|
@@ -7,7 +7,7 @@ module ThinkFeelDoEngine
7
7
  end
8
8
 
9
9
  def self.all
10
- Participant.select(:id, :study_id)
10
+ Participant.not_moderator.select(:id, :study_id)
11
11
  .includes(:memberships).map do |participant|
12
12
  next unless participant.active_membership
13
13
 
@@ -7,7 +7,7 @@ module ThinkFeelDoEngine
7
7
  end
8
8
 
9
9
  def self.all
10
- Participant.select(:id, :study_id).map do |participant|
10
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
11
11
  tool_access_events(participant).map do |tool_access|
12
12
  {
13
13
  participant_id: participant.study_id,
@@ -9,7 +9,7 @@ module ThinkFeelDoEngine
9
9
  end
10
10
 
11
11
  def self.all
12
- Participant.select(:id, :study_id).map do |participant|
12
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
13
13
  user_agents = EventCapture::Event
14
14
  .where(participant_id: participant.id)
15
15
  .map { |event| event.payload[:ua] }
@@ -8,7 +8,7 @@ module ThinkFeelDoEngine
8
8
  end
9
9
 
10
10
  def self.all
11
- Participant.select(:id, :study_id).map do |participant|
11
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
12
12
  video_play_events(participant.id).map do |e|
13
13
  m = e.current_url.match(/.*\/providers\/(\d+)\/(\d+)$/)
14
14
  provider_id = m ? m[1] : -1
@@ -8,7 +8,7 @@ module ThinkFeelDoEngine
8
8
  end
9
9
 
10
10
  def self.all
11
- Participant.select(:id, :study_id).map do |participant|
11
+ Participant.not_moderator.select(:id, :study_id).map do |participant|
12
12
  participant.wai_assessments.map do |assessment|
13
13
  {
14
14
  participant_id: participant.study_id,
@@ -26,7 +26,7 @@
26
26
  </thead>
27
27
  <tbody>
28
28
 
29
- <% group.memberships.each do |membership| %>
29
+ <% group.non_moderator_memberships.each do |membership| %>
30
30
  <% membership.participant.activities.unscheduled_or_in_the_future.each do |activity| %>
31
31
  <tr>
32
32
  <td class="not-displayed">
@@ -29,7 +29,7 @@
29
29
  </thead>
30
30
  <tbody>
31
31
 
32
- <% group.memberships.each do |membership| %>
32
+ <% group.non_moderator_memberships.each do |membership| %>
33
33
  <% membership.participant.activities.in_the_past.each do |activity| %>
34
34
  <tr>
35
35
  <td class="not-displayed">
@@ -23,7 +23,7 @@
23
23
  </thead>
24
24
  <tbody>
25
25
 
26
- <% group.memberships.each do |membership| %>
26
+ <% group.non_moderator_memberships.each do |membership| %>
27
27
  <% membership_comments(membership).each do |comment| %>
28
28
  <tr>
29
29
  <td class="not-displayed">
@@ -27,7 +27,7 @@
27
27
  </thead>
28
28
  <tbody>
29
29
 
30
- <% group.memberships.each do |membership| %>
30
+ <% group.non_moderator_memberships.each do |membership| %>
31
31
  <% membership_goals(membership).each do |goal| %>
32
32
  <tr>
33
33
  <td class="not-displayed">
@@ -23,7 +23,7 @@
23
23
  </thead>
24
24
  <tbody>
25
25
 
26
- <% group.memberships.includes(:participant).each do |membership| %>
26
+ <% group.non_moderator_memberships.includes(:participant).each do |membership| %>
27
27
  <% membership_likes(membership).each do |like| %>
28
28
  <tr>
29
29
  <td class="not-displayed">
@@ -11,7 +11,7 @@
11
11
  <th>week <%= current_week %></th>
12
12
  <% end %>
13
13
  </tr>
14
- <% group.memberships.each do | membership | %>
14
+ <% group.non_moderator_memberships.each do | membership | %>
15
15
  <tr>
16
16
  <td><%= membership.participant.display_name %></td>
17
17
  <% (1..study_length_in_weeks).each do |current_week| %>
@@ -25,7 +25,7 @@
25
25
  </tr>
26
26
  </thead>
27
27
  <tbody>
28
- <% group.memberships.each do |membership| %>
28
+ <% group.non_moderator_memberships.each do |membership| %>
29
29
  <% membership.participant.thoughts.each do |thought| %>
30
30
  <tr>
31
31
  <td class="not-displayed">
@@ -6,7 +6,7 @@
6
6
  </div>
7
7
  <div class="emotion-name-group form-group written-option">
8
8
  <%= f.label :name, "Emotion" %>
9
- <input class="form-control" id="emotional_rating_name" name="emotional_rating[name]" type="text">
9
+ <input class="form-control" id="emotional_rating_name" name="emotional_rating[name]" type="text", maxlength: 255 >
10
10
  </div>
11
11
  <div class="form-group">
12
12
  <%= f.label("Emotion Type") %>
@@ -1,4 +1,4 @@
1
1
  # nodoc
2
2
  module ThinkFeelDoEngine
3
- VERSION = "3.17.2"
3
+ VERSION = "3.18.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: think_feel_do_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.17.2
4
+ version: 3.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Carty-Fickes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-16 00:00:00.000000000 Z
11
+ date: 2016-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -955,7 +955,7 @@ files:
955
955
  - vendor/assets/stylesheets/bootstrap-timepicker.min.css
956
956
  - vendor/assets/stylesheets/jplayer.blue.monday.css.scss
957
957
  - vendor/assets/stylesheets/snap.css.scss
958
- homepage: https://github.com/cbitstech/think_feel_do_engine
958
+ homepage: https://github.com/NU-CBITS/think_feel_do_engine
959
959
  licenses:
960
960
  - MIT
961
961
  metadata: {}