effective_memberships 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 541315ace60a5bc7727f069d36afa0a6c0c520b2be2744f7f9485d1e4a327b02
4
- data.tar.gz: 8f3fadb661ec2591b61df8ccb66e4df0291c16a07d3ab347a8fea44d329a87be
3
+ metadata.gz: be186a54404ee8564606cdbeb991f89eac977c24da038bcdd7e8d066a07135d5
4
+ data.tar.gz: b45bbf9c7f8c581c7497455fc9a6d50254f08526c9bb1372bb2c6bea46c99fb3
5
5
  SHA512:
6
- metadata.gz: a0d8040eca6bbe1e88eccd5a457ac735d61d151b891b6a94b21c3e4d3a2abfc29bc82af41fdd64e23435bbe5d4a12bbbf169d6d223855cd5c6eefd55e295ba18
7
- data.tar.gz: a429ccfe8d26cbaa94dbd0170fd4a442e04f140c138caf1edb5300b33f9367a96422eb68c5fcf17e66d0ca6ded772355e6acc136fc91c8ef674a01a99a4d5455
6
+ metadata.gz: 1b5abcc5857d2c2b445e7d89d98452f60b9654458242bfdb0f3a2a63e27997e41c586ab0ea526a260f345e1145a920b16e2e0527d154546afc129c02b3e8d136
7
+ data.tar.gz: 9efdc2ec2ef92d21aac19b70eaca29d1a3d0221f6d0fc593ed3982885984da2c409f519b98d9d2b60ae01ee00fc43e7c01d074efadb0b5234698b8bab7fde59c
@@ -0,0 +1,19 @@
1
+ module Admin
2
+ class FeePaymentsController < ApplicationController
3
+ before_action(:authenticate_user!) if defined?(Devise)
4
+ before_action { EffectiveResources.authorize!(self, :admin, :effective_memberships) }
5
+
6
+ include Effective::CrudController
7
+
8
+ resource_scope -> { EffectiveMemberships.FeePayment.deep.all }
9
+ datatable -> { Admin::EffectiveFeePaymentsDatatable.new }
10
+
11
+ private
12
+
13
+ def permitted_params
14
+ model = (params.key?(:effective_applicant) ? :effective_fee_payment : :fee_payment)
15
+ params.require(model).permit!
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,51 @@
1
+ module Admin
2
+ class EffectiveFeePaymentsDatatable < Effective::Datatable
3
+ filters do
4
+ scope :all
5
+ scope :in_progress, label: 'Open / Active'
6
+ scope :done, label: 'Done'
7
+ end
8
+
9
+ datatable do
10
+ order :id
11
+ col :id, visible: false
12
+
13
+ col :status
14
+
15
+ col :created_at, label: 'Created', as: :date, visible: false
16
+ col :updated_at, label: 'Updated', visible: false
17
+
18
+ col :period, visible: false
19
+ col :submitted_at, label: 'Submitted', visible: false, as: :date
20
+
21
+ col :owner
22
+
23
+ col :category, search: { collection: EffectiveMemberships.Category.all, polymorphic: false }
24
+
25
+ col :orders, visible: false
26
+
27
+ actions_col
28
+ end
29
+
30
+ collection do
31
+ fee_payments = EffectiveMemberships.FeePayment.deep.all
32
+
33
+ raise('expected an owner_id, not user_id') if attributes[:user_id].present?
34
+
35
+ if fee_payments == :in_progress && attributes[:owner_id].blank?
36
+ fee_payments = fee_payments.where.not(status: :draft)
37
+ end
38
+
39
+ if attributes[:owner_id].present?
40
+ fee_payments = fee_payments.where(owner_id: attributes[:owner_id])
41
+ end
42
+
43
+ if attributes[:except_id].present?
44
+ fee_payments = fee_payments.where.not(id: attributes[:except_id])
45
+ end
46
+
47
+ fee_payments
48
+ end
49
+
50
+ end
51
+ end
@@ -0,0 +1,29 @@
1
+ # Dashboard Fee Payments
2
+ class EffectiveFeePaymentsDatatable < Effective::Datatable
3
+ datatable do
4
+ order :created_at
5
+
6
+ col :token, visible: false
7
+ col :created_at, visible: false
8
+
9
+ col :status
10
+ col :period, visible: false
11
+ col :submitted_at, label: 'Submitted', as: :date
12
+
13
+ col :orders
14
+
15
+ actions_col(show: false) do |fee_payment|
16
+ if fee_payment.draft?
17
+ dropdown_link_to('Continue', effective_memberships.fee_payment_build_path(fee_payment, fee_payment.next_step), 'data-turbolinks' => false)
18
+ dropdown_link_to('Delete', effective_memberships.fee_payment_path(fee_payment), 'data-confirm': "Really delete #{fee_payment}?", 'data-method': :delete)
19
+ else
20
+ dropdown_link_to('Show', effective_memberships.fee_payment_path(fee_payment))
21
+ end
22
+ end
23
+ end
24
+
25
+ collection do
26
+ EffectiveMemberships.FeePayment.deep.where(owner: current_user.effective_memberships_owner)
27
+ end
28
+
29
+ end
@@ -50,10 +50,16 @@ module EffectiveMembershipsFeePayment
50
50
  attr_accessor :declare_code_of_ethics
51
51
  attr_accessor :declare_truth
52
52
 
53
+ # Throwaway
54
+ attr_accessor :upgrade
55
+
53
56
  # Application Namespace
54
57
  belongs_to :owner, polymorphic: true
55
58
  accepts_nested_attributes_for :owner
56
59
 
60
+ belongs_to :user, polymorphic: true, optional: true
61
+ accepts_nested_attributes_for :user
62
+
57
63
  # Like maybe optionally it makes sense.
58
64
  belongs_to :category, polymorphic: true, optional: true
59
65
 
@@ -22,17 +22,15 @@ module EffectiveMembershipsOwner
22
22
 
23
23
  included do
24
24
  # App scoped
25
- has_many :applicants, as: :owner
26
- has_many :fee_payments, as: :owner
25
+ has_many :applicants, -> { order(:id) }, inverse_of: :owner, as: :owner
26
+ has_many :fee_payments, -> { order(:id) }, inverse_of: :owner, as: :owner
27
27
 
28
28
  # Effective scoped
29
29
  has_many :fees, -> { order(:id) }, inverse_of: :owner, as: :owner, class_name: 'Effective::Fee', dependent: :nullify
30
30
  accepts_nested_attributes_for :fees, reject_if: :all_blank, allow_destroy: true
31
31
 
32
32
  has_many :orders, -> { order(:id) }, inverse_of: :user, as: :user, class_name: 'Effective::Order', dependent: :nullify
33
- # Do not accepts nested attributes
34
-
35
- #accepts_nested_attributes_for :orders, reject_if: :all_blank, allow_destroy: true
33
+ accepts_nested_attributes_for :orders, reject_if: :all_blank, allow_destroy: true
36
34
 
37
35
  has_one :membership, inverse_of: :owner, as: :owner, class_name: 'Effective::Membership'
38
36
  accepts_nested_attributes_for :membership
@@ -0,0 +1 @@
1
+ = render 'effective/fee_payments/fee_payment', fee_payment: fee_payment
@@ -0,0 +1,10 @@
1
+ - authorized = EffectiveResources.authorized?(self, :new, EffectiveMemberships.FeePayment)
2
+ - datatable = EffectiveResources.best('EffectiveFeePaymentsDatatable').new(self)
3
+ - in_progress = current_user.effective_memberships_owner.fee_payments.in_progress
4
+
5
+ %h2 Fee Payments
6
+
7
+ - if datatable.present?
8
+ = render_simple_datatable(datatable)
9
+ - else
10
+ %p You have no past fee payments. When you do, we'll show them here.
@@ -3,4 +3,4 @@
3
3
  - steps = fee_payment.required_steps - blacklist
4
4
 
5
5
  - steps.select { |step| fee_payment.has_completed_step?(step) }.each do |partial|
6
- = render "effective/fee_payments/#{partial}", fee_payment: fee_payment, step: partial
6
+ = render "effective/fee_payments/#{partial}", fee_payment: fee_payment, resource: fee_payment, step: partial
data/config/routes.rb CHANGED
@@ -26,6 +26,7 @@ EffectiveMemberships::Engine.routes.draw do
26
26
  resources :applicant_course_areas, except: [:show]
27
27
  resources :applicant_course_names, except: [:show]
28
28
 
29
+ resources :fee_payments, only: [:index, :show]
29
30
  resources :registrar_actions, only: [:create]
30
31
  end
31
32
 
@@ -353,6 +353,9 @@ class CreateEffectiveMemberships < ActiveRecord::Migration[6.0]
353
353
  t.integer :owner_id
354
354
  t.string :owner_type
355
355
 
356
+ t.integer :user_id
357
+ t.string :user_type
358
+
356
359
  t.integer :category_id
357
360
  t.string :category_type
358
361
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveMemberships
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_memberships
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-17 00:00:00.000000000 Z
11
+ date: 2021-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -214,6 +214,7 @@ files:
214
214
  - app/controllers/admin/applicant_course_names_controller.rb
215
215
  - app/controllers/admin/applicants_controller.rb
216
216
  - app/controllers/admin/categories_controller.rb
217
+ - app/controllers/admin/fee_payments_controller.rb
217
218
  - app/controllers/admin/fees_controller.rb
218
219
  - app/controllers/admin/registrar_actions_controller.rb
219
220
  - app/controllers/effective/applicant_references_controller.rb
@@ -223,6 +224,7 @@ files:
223
224
  - app/datatables/admin/effective_applicant_course_names_datatable.rb
224
225
  - app/datatables/admin/effective_applicants_datatable.rb
225
226
  - app/datatables/admin/effective_categories_datatable.rb
227
+ - app/datatables/admin/effective_fee_payments_datatable.rb
226
228
  - app/datatables/admin/effective_fees_datatable.rb
227
229
  - app/datatables/admin/effective_membership_histories_datatable.rb
228
230
  - app/datatables/effective_applicant_courses_datatable.rb
@@ -230,6 +232,7 @@ files:
230
232
  - app/datatables/effective_applicant_experiences_datatable.rb
231
233
  - app/datatables/effective_applicant_references_datatable.rb
232
234
  - app/datatables/effective_applicants_datatable.rb
235
+ - app/datatables/effective_fee_payments_datatable.rb
233
236
  - app/helpers/effective_memberships_helper.rb
234
237
  - app/mailers/effective/memberships_mailer.rb
235
238
  - app/models/concerns/effective_memberships_applicant.rb
@@ -274,6 +277,7 @@ files:
274
277
  - app/views/admin/categories/_form_fee_payment_content.html.haml
275
278
  - app/views/admin/categories/_form_fee_payment_steps.html.haml
276
279
  - app/views/admin/categories/_form_renewals.html.haml
280
+ - app/views/admin/fee_payments/_fee_payment.html.haml
277
281
  - app/views/admin/fees/_fee.html.haml
278
282
  - app/views/admin/fees/_form.html.haml
279
283
  - app/views/admin/memberships/_status.html.haml
@@ -318,6 +322,7 @@ files:
318
322
  - app/views/effective/applicants/submitted.html.haml
319
323
  - app/views/effective/applicants/summary.html.haml
320
324
  - app/views/effective/fee_payments/_content.html.haml
325
+ - app/views/effective/fee_payments/_dashboard.html.haml
321
326
  - app/views/effective/fee_payments/_declarations.html.haml
322
327
  - app/views/effective/fee_payments/_demographics.html.haml
323
328
  - app/views/effective/fee_payments/_demographics_fields.html.haml