effective_learndash 0.1.3 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -10
  3. data/app/assets/config/effective_learndash_manifest.js +0 -1
  4. data/app/controllers/admin/course_registrations_controller.rb +8 -0
  5. data/app/controllers/admin/learndash_courses_controller.rb +1 -1
  6. data/app/controllers/effective/course_registrations_controller.rb +13 -0
  7. data/app/controllers/effective/learndash_courses_controller.rb +32 -0
  8. data/app/datatables/admin/effective_course_registrations_datatable.rb +28 -0
  9. data/app/datatables/admin/effective_learndash_courses_datatable.rb +5 -1
  10. data/app/datatables/admin/effective_learndash_enrollments_datatable.rb +1 -2
  11. data/app/datatables/admin/effective_learndash_users_datatable.rb +1 -1
  12. data/app/datatables/effective_course_registrants_datatable.rb +24 -0
  13. data/app/datatables/effective_course_registrations_datatable.rb +35 -0
  14. data/app/datatables/effective_learndash_courses_datatable.rb +30 -0
  15. data/app/datatables/effective_learndash_enrollments_datatable.rb +7 -4
  16. data/app/models/concerns/effective_learndash_course_registration.rb +172 -0
  17. data/app/models/concerns/effective_learndash_owner.rb +1 -1
  18. data/app/models/effective/course_registrant.rb +53 -0
  19. data/app/models/effective/course_registration.rb +5 -0
  20. data/app/models/effective/learndash_api.rb +14 -5
  21. data/app/models/effective/learndash_course.rb +78 -3
  22. data/app/models/effective/learndash_enrollment.rb +7 -3
  23. data/app/models/effective/learndash_user.rb +5 -6
  24. data/app/views/admin/learndash_courses/_form.html.haml +25 -0
  25. data/app/views/admin/learndash_courses/_form_course_registration_content.html.haml +19 -0
  26. data/app/views/admin/learndash_courses/_form_learndash_course.html.haml +32 -0
  27. data/app/views/admin/learndash_courses/_learndash_course.html.haml +3 -3
  28. data/app/views/admin/learndash_owners/_form.html.haml +1 -1
  29. data/app/views/admin/learndash_users/_form.html.haml +1 -1
  30. data/app/views/admin/learndash_users/_learndash_user.html.haml +4 -4
  31. data/app/views/effective/course_registrations/_content.html.haml +10 -0
  32. data/app/views/effective/course_registrations/_course.html.haml +9 -0
  33. data/app/views/effective/course_registrations/_course_registration.html.haml +3 -0
  34. data/app/views/effective/course_registrations/_dashboard.html.haml +30 -0
  35. data/app/views/effective/course_registrations/_layout.html.haml +3 -0
  36. data/app/views/effective/course_registrations/_orders.html.haml +4 -0
  37. data/app/views/effective/course_registrations/_summary.html.haml +39 -0
  38. data/app/views/effective/course_registrations/billing.html.haml +15 -0
  39. data/app/views/effective/course_registrations/checkout.html.haml +6 -0
  40. data/app/views/effective/course_registrations/course.html.haml +20 -0
  41. data/app/views/effective/course_registrations/start.html.haml +25 -0
  42. data/app/views/effective/course_registrations/submitted.html.haml +15 -0
  43. data/app/views/effective/course_registrations/summary.html.haml +8 -0
  44. data/app/views/effective/learndash/_dashboard.html.haml +14 -16
  45. data/app/views/effective/learndash_courses/_learndash_course.html.haml +13 -0
  46. data/app/views/effective/learndash_courses/index.html.haml +5 -0
  47. data/app/views/effective/learndash_courses/show.html.haml +6 -0
  48. data/config/effective_learndash.rb +9 -0
  49. data/config/routes.rb +13 -3
  50. data/db/migrate/01_create_effective_learndash.rb.erb +98 -33
  51. data/lib/effective_learndash/engine.rb +1 -0
  52. data/lib/effective_learndash/version.rb +1 -1
  53. data/lib/effective_learndash.rb +6 -1
  54. data/lib/generators/effective_learndash/install_generator.rb +0 -1
  55. metadata +33 -4
@@ -3,22 +3,88 @@ module Effective
3
3
  has_many :learndash_enrollments
4
4
  has_many :learndash_users, through: :learndash_enrollments
5
5
 
6
+ log_changes if respond_to?(:log_changes)
7
+
8
+ # rich_text_body - Used by the select step
9
+ has_many_rich_texts
10
+
11
+ # rich_text_body
12
+
13
+ # rich_text_all_steps_content
14
+ # rich_text_start_content
15
+ # rich_text_select_content
16
+ # rich_text_select_content
17
+
18
+ acts_as_slugged
19
+ log_changes if respond_to?(:log_changes)
20
+ acts_as_role_restricted if respond_to?(:acts_as_role_restricted)
21
+
6
22
  effective_resource do
7
23
  # This user the wordpress credentials
8
- course_id :integer
9
- status :string
10
- title :string
24
+ course_id :integer
25
+ title :string
26
+ status :string
27
+
28
+ # Our attributes
29
+ slug :string
30
+
31
+ # For course purchases
32
+ can_register :boolean
33
+
34
+ # Pricing
35
+ regular_price :integer
36
+ member_price :integer
37
+
38
+ qb_item_name :string
39
+ tax_exempt :boolean
40
+
41
+ # Access
42
+ roles_mask :integer
43
+ authenticate_user :boolean
11
44
 
12
45
  timestamps
13
46
  end
14
47
 
15
48
  scope :deep, -> { all }
16
49
  scope :sorted, -> { order(:title) }
50
+ scope :registerable, -> { where(can_register: true) }
51
+ scope :published, -> { all }
52
+
53
+ scope :paginate, -> (page: nil, per_page: nil) {
54
+ page = (page || 1).to_i
55
+ offset = [(page - 1), 0].max * (per_page || EffectiveLearndash.per_page)
56
+
57
+ limit(per_page).offset(offset)
58
+ }
59
+
60
+ scope :learndash_courses, -> (user: nil, unpublished: false) {
61
+ scope = all.deep.sorted
62
+
63
+ if defined?(EffectiveRoles) && EffectiveLearndash.use_effective_roles
64
+ scope = scope.for_role(user&.roles)
65
+ end
66
+
67
+ if user.blank?
68
+ scope = scope.where(authenticate_user: false)
69
+ end
70
+
71
+ # TODO
72
+ # unless unpublished
73
+ # scope = scope.published
74
+ # end
75
+
76
+ scope
77
+ }
17
78
 
18
79
  validates :course_id, presence: true
19
80
  validates :status, presence: true
20
81
  validates :title, presence: true
21
82
 
83
+ with_options(if: -> { can_register? }) do
84
+ validates :regular_price, presence: true
85
+ validates :member_price, presence: true
86
+ end
87
+
22
88
  # Syncs all courses
23
89
  def self.refresh!
24
90
  courses = all()
@@ -35,5 +101,14 @@ module Effective
35
101
  title.presence || 'learndash course'
36
102
  end
37
103
 
104
+ def body
105
+ rich_text_body
106
+ end
107
+
108
+ # Todo
109
+ def draft?
110
+ false
111
+ end
112
+
38
113
  end
39
114
  end
@@ -1,11 +1,11 @@
1
1
  module Effective
2
2
  class LearndashEnrollment < ActiveRecord::Base
3
3
  belongs_to :owner, polymorphic: true
4
- log_changes(to: :owner) if respond_to?(:log_changes)
5
-
6
4
  belongs_to :learndash_course
7
5
  belongs_to :learndash_user
8
6
 
7
+ log_changes(to: :learndash_course, except: [:last_synced_at]) if respond_to?(:log_changes)
8
+
9
9
  PROGRESS_STATUSES = ['not-started', 'in-progress', 'completed']
10
10
 
11
11
  effective_resource do
@@ -58,7 +58,11 @@ module Effective
58
58
  progress_status == 'completed'
59
59
  end
60
60
 
61
- def refresh!
61
+ def refresh!(force: false)
62
+ unless force
63
+ return if last_synced_at.present? && (Time.zone.now - last_synced_at) < 5
64
+ end
65
+
62
66
  assign_api_attributes
63
67
  save!
64
68
  end
@@ -44,13 +44,12 @@ module Effective
44
44
  owner&.to_s || username.presence || 'learndash user'
45
45
  end
46
46
 
47
- def check_and_refresh!
48
- return if last_synced_at.present? && (Time.zone.now - last_synced_at) < 10
49
- return if learndash_enrollments.none? { |enrollment| !enrollment.completed? }
50
- refresh!
51
- end
47
+ def refresh!(force: false)
48
+ unless force
49
+ return if last_synced_at.present? && (Time.zone.now - last_synced_at) < 5
50
+ return if learndash_enrollments.none? { |enrollment| !enrollment.completed? }
51
+ end
52
52
 
53
- def refresh!
54
53
  assign_api_course_enrollments
55
54
  save!
56
55
  end
@@ -0,0 +1,25 @@
1
+ = tabs do
2
+ = tab "Learndash Course" do
3
+ = render 'admin/learndash_courses/form_learndash_course', learndash_course: learndash_course
4
+
5
+ - if learndash_course.persisted?
6
+ = tab 'Enrollments' do
7
+ %h2 Enrollments
8
+ %p Click the New button from the below table to enroll a user into this course.
9
+ %p Enrolling a user here will enroll them on the LearnDash site.
10
+ %p Alternately, if this course is available for registration, the enrollment will be created upon registration purchase.
11
+
12
+ - datatable = Admin::EffectiveLearndashEnrollmentsDatatable.new(learndash_course: learndash_course)
13
+ = render_datatable(datatable, inline: true)
14
+
15
+ = tab 'Registrations' do
16
+ %h2 Purchases
17
+ - datatable = Admin::EffectiveCourseRegistrationsDatatable.new(learndash_course: learndash_course)
18
+ = render_inline_datatable(datatable)
19
+
20
+ = tab 'Wizard' do
21
+ = render '/admin/learndash_courses/form_course_registration_content', learndash_course: learndash_course
22
+
23
+ - if learndash_course.respond_to?(:log_changes_datatable)
24
+ = tab "Logs" do
25
+ = render_inline_datatable(learndash_course.log_changes_datatable)
@@ -0,0 +1,19 @@
1
+ %p Each of the following content areas will be displayed on the course purchase wizard.
2
+
3
+ = effective_form_with(model: [:admin, learndash_course], engine: true) do |f|
4
+ = card("All Steps") do
5
+ = f.rich_text_area "rich_text_all_steps_content", label: false,
6
+ hint: "displayed on all steps"
7
+
8
+ %hr
9
+
10
+ - enabled = EffectiveLearndash.CourseRegistration.all_wizard_steps
11
+
12
+ - EffectiveLearndash.CourseRegistration::WIZARD_STEPS.each do |step, title|
13
+ - next unless enabled.include?(step)
14
+
15
+ = card("#{title}") do
16
+ = f.rich_text_area "rich_text_#{step}_content", label: false,
17
+ hint: "displayed on the course purchase wizard #{step} wizard step only"
18
+
19
+ = f.submit
@@ -0,0 +1,32 @@
1
+ = effective_form_with(model: [:admin, learndash_course], engine: true) do |f|
2
+ = f.static_field :title
3
+
4
+ = f.static_field :learndash_course_url do
5
+ = link_to(learndash_course.link, learndash_course.link, target: '_blank')
6
+
7
+ = f.static_field :learndash_course_admin do
8
+ = link_to "Learndash LMS Course Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/post.php?post=#{learndash_course.course_id}&action=edit", target: '_blank'
9
+
10
+ - if f.object.persisted? || f.object.errors.include?(:slug)
11
+ - current_url = (effective_learndash.learndash_course_url(f.object) rescue nil)
12
+ = f.text_field :slug, hint: "The slug controls this course's internet address. Be careful, changing the slug will break links that other websites may have to the old address.<br>#{('This course is currently reachable via ' + link_to(current_url.gsub(f.object.slug, '<strong>' + f.object.slug + '</strong>').html_safe, current_url)) if current_url }".html_safe
13
+
14
+ = f.check_box :can_register, label: 'Yes, this course is displayed and available for registration'
15
+
16
+ = f.show_if :can_register, true do
17
+ = card('Pricing Information') do
18
+ %p.text-muted
19
+ Charge the following amounts during course registration. Enter $0 for free.
20
+
21
+ .row
22
+ .col-lg-3= f.price_field :regular_price, label: 'Price to applicants or new users'
23
+
24
+ .row
25
+ .col-lg-3= f.price_field :member_price, label: 'Price to existing members'
26
+
27
+ = f.check_box :tax_exempt
28
+
29
+ .row
30
+ .col-lg-3= f.text_field :qb_item_name, label: "Quickbooks Item Name"
31
+
32
+ = f.submit
@@ -1,10 +1,10 @@
1
- = card('Learndash Course') do
1
+ = card('LearnDash Course') do
2
2
  %p= learndash_course.title
3
3
  %p= link_to(learndash_course.link, learndash_course.link, target: '_blank')
4
4
 
5
- %p= link_to "Learndash LMS Course Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/post.php?post=#{learndash_course.course_id}}&action=edit", target: '_blank'
5
+ %p= link_to "LearnDash LMS Course Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/post.php?post=#{learndash_course.course_id}}&action=edit", target: '_blank'
6
6
 
7
- %h3 Learndash User Enrollments
7
+ %h3 LearnDash User Enrollments
8
8
 
9
9
  %p Click the New button from the below table to enroll a user into this course.
10
10
 
@@ -1,5 +1,5 @@
1
1
  - if owner.learndash_user.blank?
2
- %p #{owner} does not yet have an account on Learndash.
2
+ %p #{owner} does not yet have an account on LearnDash.
3
3
 
4
4
  - if owner.learndash_user.present?
5
5
  = render('admin/learndash_users/learndash_user', learndash_user: owner.learndash_user)
@@ -1,6 +1,6 @@
1
1
  = effective_form_with(model: [:admin, learndash_user], engine: true) do |f|
2
2
 
3
3
  = f.select :owner, {'Owners' => current_user.class.sorted }, polymorphic: true,
4
- hint: 'Create a Learndash user account for this website user'
4
+ hint: 'Create a LearnDash account for this user'
5
5
 
6
6
  = f.submit
@@ -1,19 +1,19 @@
1
- = card('Learndash User') do
1
+ = card('LearnDash') do
2
2
  %p
3
3
  = link_to(learndash_user.owner, "/admin/users/#{learndash_user.owner.to_param}/edit")
4
- has an existing account on Learndash.
4
+ has an existing account on LearnDash.
5
5
 
6
6
  %ul
7
7
  %li Email: #{learndash_user.email}
8
8
  %li Username: #{learndash_user.username}
9
9
  %li Password: #{learndash_user.password}
10
10
 
11
- %p= link_to "Learndash LMS User Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/user-edit.php?user_id=#{learndash_user.user_id}", target: '_blank'
11
+ %p= link_to "LearnDash LMS User Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/user-edit.php?user_id=#{learndash_user.user_id}", target: '_blank'
12
12
 
13
13
  %p
14
14
  %small Last refreshed #{time_ago_in_words(learndash_user.last_synced_at)} ago.
15
15
 
16
- %h3 Learndash Course Enrollments
16
+ %h3 LearnDash Course Enrollments
17
17
 
18
18
  %p Click the New button from the below table to manually enroll this user into a new course.
19
19
 
@@ -0,0 +1,10 @@
1
+ - all_steps_content = resource.learndash_course&.rich_text_all_steps_content
2
+ - step_content = resource.learndash_course&.send("rich_text_#{step}_content")
3
+
4
+ - if all_steps_content.present?
5
+ .card.mb-4
6
+ .card-body= all_steps_content
7
+
8
+ - if step_content.present?
9
+ .card.mb-4
10
+ .card-body= step_content
@@ -0,0 +1,9 @@
1
+ = card do
2
+ .row
3
+ .col-sm
4
+ %h5.card-title= course_registration.wizard_step_title(:course)
5
+ .col-sm-auto.text-right
6
+ = link_to('Edit', wizard_path(:course)) if edit_effective_wizard?
7
+
8
+ - datatable = EffectiveCourseRegistrantsDatatable.new(course_registration: course_registration)
9
+ .mb-4= render_simple_datatable(datatable)
@@ -0,0 +1,3 @@
1
+ .effective-course-registration
2
+ - course_registration.render_steps.each do |partial|
3
+ = render "effective/course_registrations/#{partial}", course_registration: course_registration, step: partial
@@ -0,0 +1,30 @@
1
+ -# In progress course purchase
2
+ - wizard = EffectiveLearndash.CourseRegistration.in_progress.for(current_user).first
3
+ - datatable = EffectiveResources.best('EffectiveCourseRegistrationsDatatable').new(self, namespace: :effective)
4
+
5
+ - if wizard.present?
6
+ %h2 In Progress Course Registrations
7
+
8
+ %p
9
+ Your course registration for
10
+ = link_to(wizard.learndash_course, effective_learndash.learndash_course_path(wizard.learndash_course))
11
+ is incomplete
12
+
13
+ %p
14
+ Please
15
+ = link_to("Continue registration for #{wizard.learndash_course}", effective_learndash.learndash_course_course_registration_build_path(wizard.learndash_course, wizard, wizard.next_step), 'data-turbolinks' => false, class: 'btn btn-primary')
16
+ or you can
17
+ = link_to('Abandon course registration', effective_learndash.learndash_course_course_registration_path(wizard.learndash_course, wizard), 'data-confirm': "Really delete #{wizard}?", 'data-method': :delete, class: 'btn btn-danger')
18
+ to register for another course.
19
+
20
+ %hr
21
+
22
+ %h2 Course Registrations
23
+
24
+ - if datatable.present?
25
+ = render_simple_datatable(datatable)
26
+ - else
27
+ %p You have no past course registrations. When you do, we'll show them here.
28
+
29
+ - if false
30
+ %p= link_to 'View all Course', effective_learndash.learndash_courses_path, class: 'btn btn-primary'
@@ -0,0 +1,3 @@
1
+ .row
2
+ .col-lg-3.mb-3= render_wizard_sidebar(resource)
3
+ .col-lg-9= yield
@@ -0,0 +1,4 @@
1
+ - if course_registration.submit_order&.purchased?
2
+ .card.mb-4
3
+ .card-body
4
+ = render(course_registration.submit_order)
@@ -0,0 +1,39 @@
1
+ = card('Course Registration') do
2
+ %table.table.table-sm
3
+ %tbody
4
+ %tr
5
+ %th.border-0 Course
6
+ %td.border-0
7
+ %p
8
+ %strong=course_registration.course
9
+
10
+ - learndash_user = course_registration.learndash_owner.learndash_user
11
+ %p Your course account credentials are:
12
+
13
+ %ul
14
+ %li
15
+ %strong Username:
16
+ #{learndash_user.username}
17
+ %li
18
+ %strong Password:
19
+ #{learndash_user.password}
20
+
21
+ %p= link_to('Sign in to your course account', EffectiveLearndash.learndash_url, target: '_blank', class: 'btn btn-primary mb-2')
22
+
23
+ - if request.path.start_with?('/admin')
24
+ %tr
25
+ %th Registered by
26
+ %td
27
+ - url = (polymorphic_admin_path(course_registration.owner) rescue "/admin/users/#{course_registration.owner.to_param}/edit")
28
+ = link_to(course_registration.owner, url)
29
+ - else
30
+ %tr
31
+ %th Registered by
32
+ %td= course_registration.owner
33
+
34
+ - if course_registration.orders.present?
35
+ %tr
36
+ %th Order
37
+ %td
38
+ - course_registration.orders.each do |order|
39
+ = link_to(order, effective_orders.order_path(order))
@@ -0,0 +1,15 @@
1
+ = render 'layout' do
2
+ = render 'effective/course_registrations/content', resource: resource
3
+
4
+ - raise('expected owner to respond to billing_address') unless resource.owner.respond_to?(:billing_address)
5
+
6
+ = card('Billing Address') do
7
+ %p Please enter your billing address
8
+
9
+ = effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
10
+ = f.hidden_field :id
11
+
12
+ = f.fields_for(:owner, f.object.owner) do |fu|
13
+ = effective_address_fields(fu, :billing)
14
+
15
+ = f.save 'Save and Continue'
@@ -0,0 +1,6 @@
1
+ = render 'layout' do
2
+ = render 'effective/course_registrations/content', resource: resource
3
+
4
+ .card
5
+ .card-body
6
+ = render_checkout_step2(resource.submit_order, purchased_url: wizard_path(:submitted), deferred_url: wizard_path(:checkout), declined_url: wizard_path(:checkout))
@@ -0,0 +1,20 @@
1
+ = render 'layout' do
2
+ = render 'effective/course_registrations/content', resource: resource
3
+
4
+ = card('Course') do
5
+ %p= resource.learndash_course
6
+ %p= price_to_currency(resource.registration_price)
7
+
8
+ = effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
9
+ = f.hidden_field :id
10
+
11
+ = f.fields_for :course_registrants, (f.object.course_registrant || f.object.build_course_registrant) do |fr|
12
+ = fr.hidden_field :course_registration_id
13
+ = fr.hidden_field :course_registration_type
14
+
15
+ = fr.hidden_field :owner_id
16
+ = fr.hidden_field :owner_type
17
+
18
+ = fr.hidden_field :learndash_course_id
19
+
20
+ = f.save 'Save and Continue'
@@ -0,0 +1,25 @@
1
+ = render 'layout' do
2
+ = render 'effective/course_registrations/content', resource: resource
3
+
4
+ .card
5
+ .card-body
6
+ %p Welcome #{current_user}!
7
+
8
+ %p You are registering for #{resource.course}.
9
+
10
+ - existing = resource.owner.learndash_user&.enrollment(course: resource.course)
11
+
12
+ - if existing.present?
13
+ .alert.alert-warning
14
+ You are already enrolled in #{link_to(resource.course, EffectiveLearndash.learndash_url, target: '_blank')}.
15
+
16
+ - if existing.blank?
17
+ = effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
18
+ = f.hidden_field :id
19
+
20
+ = f.hidden_field :learndash_course_id
21
+
22
+ = f.hidden_field :owner_type
23
+ = f.hidden_field :owner_id
24
+
25
+ = f.save 'Save and Continue'
@@ -0,0 +1,15 @@
1
+ = render 'layout' do
2
+ = render 'effective/course_registrations/content', resource: resource
3
+
4
+ - raise('expected a submitted course_registration') unless resource.was_submitted?
5
+ - raise('expected a purchased course_registration submit_order') unless resource.submit_order&.purchased?
6
+
7
+ .alert.alert-warning.mb-4
8
+ Successfully paid on #{resource.submit_order.purchased_at.strftime('%F')}.
9
+
10
+ = link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary mb-4'
11
+
12
+ = render 'effective/course_registrations/summary', course_registration: resource
13
+ = render 'effective/course_registrations/orders', course_registration: resource
14
+
15
+ = link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary'
@@ -0,0 +1,8 @@
1
+ = render 'layout' do
2
+ = render 'effective/course_registrations/content', resource: resource
3
+
4
+ = render('effective/course_registrations/course_registration', course_registration: resource)
5
+
6
+ = effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
7
+ = f.hidden_field :id
8
+ = f.submit 'Save and Continue', class: 'btn btn-primary'
@@ -1,31 +1,29 @@
1
1
  - learndash_user = current_user.try(:learndash_user)
2
2
  - authorized = learndash_user && EffectiveResources.authorized?(self, :show, learndash_user)
3
3
 
4
- %h2 Learndash Courses
4
+ %h2 Courses
5
5
 
6
6
  - if learndash_user.blank?
7
- %p You do not have a Learndash account.
8
-
9
- - if learndash_user.present?
10
- %p
11
- = succeed('.') do
12
- You have an existing account on
13
- = link_to('Learndash', EffectiveLearndash.learndash_url, target: '_blank')
7
+ %p You do not have an account to access courses. When you are enrolled in a course, your account credentials will be displayed here.
14
8
 
15
9
  - if learndash_user.present? && authorized
16
- - learndash_user.check_and_refresh!
10
+ - learndash_user.refresh!
17
11
 
18
- %p Please sign into Learndash with the following credentials:
12
+ %p Your course account credentials are:
19
13
 
20
14
  %ul
21
- %li Email: #{learndash_user.email}
22
- %li Username: #{learndash_user.username}
23
- %li Password: #{learndash_user.password}
15
+ %li
16
+ %strong Username:
17
+ #{learndash_user.username}
18
+ %li
19
+ %strong Password:
20
+ #{learndash_user.password}
24
21
 
25
- - if learndash_user.learndash_enrollments.present?
26
- %p You are enrolled in #{pluralize(learndash_user.learndash_enrollments.length, 'course')}.
22
+ %p= link_to('Sign in to your course account', EffectiveLearndash.learndash_url, target: '_blank', class: 'btn btn-primary')
27
23
 
24
+ - if learndash_user.learndash_enrollments.present?
28
25
  - datatable = EffectiveResources.best('EffectiveLearndashEnrollmentsDatatable').new(self)
29
26
  = render_datatable(datatable, simple: true)
27
+
30
28
  - else
31
- You are not enrolled in any Learndash courses.
29
+ %p You are not enrolled in any courses.
@@ -0,0 +1,13 @@
1
+ %table.table.effective-learndash-courses-table
2
+ %tbody
3
+ %tr
4
+ %th Regular Price
5
+ %td= price_to_currency(learndash_course.regular_price)
6
+ %tr
7
+ %th Discounted Price
8
+ %td= price_to_currency(learndash_course.member_price)
9
+
10
+ - if learndash_course.body.present?
11
+ %tr
12
+ %th Description
13
+ %td= learndash_course.body
@@ -0,0 +1,5 @@
1
+ = card do
2
+ - if @datatable.present?(self)
3
+ = render_datatable(@datatable, simple: true)
4
+ - else
5
+ %p There are no courses available for purchase. When there are, we'll show them here.
@@ -0,0 +1,6 @@
1
+ .effective-learndash-course
2
+ - if @learndash_course.registerable?
3
+ .resource-buttons
4
+ = link_to 'Register', effective_learndash.new_learndash_course_course_registration_path(@learndash_course), class: 'btn btn-primary'
5
+
6
+ = render 'effective/learndash_courses/learndash_course', learndash_course: @learndash_course
@@ -15,4 +15,13 @@ EffectiveLearndash.setup do |config|
15
15
  # Usernames can only contain lowercase letters (a-z) and numbers.
16
16
  # config.wp_username = Proc.new { |user| "user#{user.id}" }
17
17
  # config.wp_password = Proc.new { |user| SecureRandom.base64(12) }
18
+
19
+ # Course Purchase Wizard Settings
20
+ # config.course_registration_class_name = 'Effective::CourseRegistration'
21
+
22
+ # Pagination length on the Events#index page
23
+ config.per_page = 10
24
+
25
+ # Events can be restricted by role
26
+ config.use_effective_roles = true
18
27
  end
data/config/routes.rb CHANGED
@@ -5,10 +5,19 @@ Rails.application.routes.draw do
5
5
  end
6
6
 
7
7
  EffectiveLearndash::Engine.routes.draw do
8
+ # Public routes
9
+ scope module: 'effective' do
10
+ resources :learndash_courses, only: [:index] do
11
+ resources :course_registrations, only: [:new, :show, :destroy] do
12
+ resources :build, controller: :course_registrations, only: [:show, :update]
13
+ end
14
+ end
15
+ end
16
+
8
17
  namespace :admin do
9
18
  get '/learndash', to: 'learndash#index', as: :learndash
10
19
 
11
- resources :learndash_users, only: [:index, :show, :new, :create, :update] do
20
+ resources :learndash_users, except: [:edit, :destroy] do
12
21
  post :refresh, on: :member
13
22
  end
14
23
 
@@ -16,10 +25,11 @@ EffectiveLearndash::Engine.routes.draw do
16
25
  post :refresh, on: :member
17
26
  end
18
27
 
19
- resources :learndash_courses, only: [:index, :show, :update] do
28
+ resources :learndash_courses, only: [:index, :edit, :update] do
20
29
  get :refresh, on: :collection
21
30
  end
22
31
 
32
+ resources :course_registrants, only: [:index]
33
+ resources :course_registrations, only: [:index, :show]
23
34
  end
24
-
25
35
  end