effective_learndash 0.1.2 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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