Class: SurveyEnrollment
Overview
== Schema Information
Table name: survey_enrollments
Database name: primary
id :bigint not null, primary key
enrollment_date :datetime
state :string not null
employee_id :integer
party_id :integer not null
review_id :integer
survey_id :integer not null
Indexes
index_survey_enrollments_on_survey_id (survey_id)
Foreign Keys
fk_rails_... (survey_id => surveys.id)
Instance Method Summary
collapse
ransackable_associations, ransackable_attributes, ransackable_scopes, ransortable_attributes, #to_relation
#publish_event
Instance Method Details
#completed? ⇒ Boolean
42
43
44
|
# File 'app/models/survey_enrollment.rb', line 42
def completed?
state == 'completed'
end
|
#content_completed? ⇒ Boolean
59
60
61
|
# File 'app/models/survey_enrollment.rb', line 59
def content_completed?
progress == 100
end
|
#customer_topics ⇒ ActiveRecord::Relation<CustomerTopic>
27
|
# File 'app/models/survey_enrollment.rb', line 27
has_many :customer_topics
|
#employee_survey_enrollments ⇒ ActiveRecord::Relation<EmployeeSurveyEnrollment>
28
|
# File 'app/models/survey_enrollment.rb', line 28
has_many :employee_survey_enrollments
|
#employees ⇒ ActiveRecord::Relation<Employee>
29
|
# File 'app/models/survey_enrollment.rb', line 29
has_many :employees, through: :employee_survey_enrollments
|
#has_answers? ⇒ Boolean
55
56
57
|
# File 'app/models/survey_enrollment.rb', line 55
def has_answers?
customer_topics.joins(:topic_responses).present? || customer_topics.where.not(comments: nil).present?
end
|
25
|
# File 'app/models/survey_enrollment.rb', line 25
belongs_to :party, optional: true, inverse_of: :survey_enrollments
|
#percentage_progress ⇒ Object
38
39
40
|
# File 'app/models/survey_enrollment.rb', line 38
def percentage_progress
"#{progress}%" if customer_topics.present?
end
|
#progress ⇒ Object
34
35
36
|
# File 'app/models/survey_enrollment.rb', line 34
def progress
(customer_topics.completed.size * 100) / customer_topics.size if customer_topics.present?
end
|
#status ⇒ Object
46
47
48
49
50
51
52
53
|
# File 'app/models/survey_enrollment.rb', line 46
def status
if completed?
"Completed"
else
"Ongoing - #{percentage_progress}"
end
end
|
24
|
# File 'app/models/survey_enrollment.rb', line 24
belongs_to :survey, optional: true
|