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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/controllers/think_feel_do_engine/navigator_controller.rb +6 -4
- data/app/models/concerns/copier.rb +43 -24
- data/app/models/emotion.rb +1 -0
- data/app/models/group.rb +13 -8
- data/app/models/participant.rb +4 -2
- data/app/models/think_feel_do_engine/reports/emotional_rating.rb +1 -1
- data/app/models/think_feel_do_engine/reports/event.rb +2 -1
- data/app/models/think_feel_do_engine/reports/lesson_slide_view.rb +1 -1
- data/app/models/think_feel_do_engine/reports/lesson_viewing.rb +2 -2
- data/app/models/think_feel_do_engine/reports/login.rb +1 -1
- data/app/models/think_feel_do_engine/reports/module_page_view.rb +1 -1
- data/app/models/think_feel_do_engine/reports/module_session.rb +1 -1
- data/app/models/think_feel_do_engine/reports/patient_activity.rb +1 -1
- data/app/models/think_feel_do_engine/reports/patient_thought.rb +2 -1
- data/app/models/think_feel_do_engine/reports/phq_assessment.rb +1 -1
- data/app/models/think_feel_do_engine/reports/site_session.rb +1 -1
- data/app/models/think_feel_do_engine/reports/task_completion.rb +1 -1
- data/app/models/think_feel_do_engine/reports/tool_access.rb +1 -1
- data/app/models/think_feel_do_engine/reports/user_agent.rb +1 -1
- data/app/models/think_feel_do_engine/reports/video_session.rb +1 -1
- data/app/models/think_feel_do_engine/reports/wai_assessment.rb +1 -1
- data/app/views/think_feel_do_engine/coach/group_dashboard/_activities_future.html.erb +1 -1
- data/app/views/think_feel_do_engine/coach/group_dashboard/_activities_past.html.erb +1 -1
- data/app/views/think_feel_do_engine/coach/group_dashboard/_comments.html.erb +1 -1
- data/app/views/think_feel_do_engine/coach/group_dashboard/_goals.html.erb +1 -1
- data/app/views/think_feel_do_engine/coach/group_dashboard/_likes.html.erb +1 -1
- data/app/views/think_feel_do_engine/coach/group_dashboard/_logins.html.erb +1 -1
- data/app/views/think_feel_do_engine/coach/group_dashboard/_thoughts.html.erb +1 -1
- data/app/views/think_feel_do_engine/emotions/_form.html.erb +1 -1
- data/lib/think_feel_do_engine/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 248328db1d28d096496e611d71c7d38ca0973c7c
|
4
|
+
data.tar.gz: bab9c20b14380eb6a3fdf3ac120ba369b591025e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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/
|
4
|
-
[![security](https://hakiri.io/github/
|
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
|
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 &&
|
124
|
-
|
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
|
-
|
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
|
-
|
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(
|
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(
|
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:
|
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:
|
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
|
88
|
-
|
89
|
-
copy_slides_to
|
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
|
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
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
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
|
data/app/models/emotion.rb
CHANGED
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
data/app/models/participant.rb
CHANGED
@@ -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.
|
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]
|
@@ -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.
|
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).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.
|
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">
|
@@ -23,7 +23,7 @@
|
|
23
23
|
</thead>
|
24
24
|
<tbody>
|
25
25
|
|
26
|
-
<% group.
|
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.
|
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| %>
|
@@ -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") %>
|
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.
|
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-
|
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/
|
958
|
+
homepage: https://github.com/NU-CBITS/think_feel_do_engine
|
959
959
|
licenses:
|
960
960
|
- MIT
|
961
961
|
metadata: {}
|