effective_memberships 0.3.7 → 0.3.8
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.
- checksums.yaml +4 -4
- data/app/controllers/effective/membership_cards_controller.rb +19 -0
- data/app/models/concerns/effective_memberships_card.rb +56 -0
- data/app/models/concerns/effective_memberships_registrar.rb +1 -1
- data/app/models/effective/membership_card.rb +7 -0
- data/app/views/effective/membership_cards/index.html.haml +16 -0
- data/config/routes.rb +7 -0
- data/lib/effective_memberships/version.rb +1 -1
- data/lib/effective_memberships.rb +5 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5429d3c4c93088302ef65577a3f97649d2bb56191f701a5475f41973860ad21
|
4
|
+
data.tar.gz: 276b0b0d68ebf151cf67d8f542105b656688b1bf4969c5047c13c1667d364dca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b1c53a8c3cec9712413f4d2c8f58786db72d8e2a12da1f40920fa39ffae3162e67c9782c72bf290ec91b1a29e3aa93374b0c09cb09dafda6151803aec93d578
|
7
|
+
data.tar.gz: f7bb8c97dbbc5c4f45f6c8b60cc4979fc4de32822b06f4a930a69fc6e7844fba015bf2dd9fa5a4038e885ab6353497cee7a1db0aafb1ec20c561389255315fd1
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Effective
|
2
|
+
class MembershipCardsController < ApplicationController
|
3
|
+
before_action(:authenticate_user!) if defined?(Devise)
|
4
|
+
|
5
|
+
include Effective::CrudController
|
6
|
+
|
7
|
+
resource_scope -> { EffectiveMemberships.MembershipCard }
|
8
|
+
|
9
|
+
def show
|
10
|
+
membership = Effective::Membership.find(params[:id])
|
11
|
+
card = resource_scope.new(membership: membership)
|
12
|
+
|
13
|
+
EffectiveResources.authorize!(self, :show, card)
|
14
|
+
|
15
|
+
send_data(card.to_pdf, filename: card.filename, type: card.content_type, disposition: 'attachment')
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# EffectiveMembershipsCard
|
4
|
+
# Mark your card model with include EffectiveMembershipsCard to get all the includes
|
5
|
+
|
6
|
+
module EffectiveMembershipsCard
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def effective_memberships_card?; true; end
|
11
|
+
end
|
12
|
+
|
13
|
+
included do
|
14
|
+
include ActiveModel::Model
|
15
|
+
|
16
|
+
attr_accessor :membership
|
17
|
+
validates :membership, presence: true
|
18
|
+
end
|
19
|
+
|
20
|
+
# Instance Methods
|
21
|
+
def owner
|
22
|
+
membership&.owner
|
23
|
+
end
|
24
|
+
|
25
|
+
def content_type
|
26
|
+
'application/pdf'
|
27
|
+
end
|
28
|
+
|
29
|
+
def filename
|
30
|
+
"#{self.class.name.split('::').first.downcase}-membership-card-#{Time.zone.now.strftime('%F')}.pdf"
|
31
|
+
end
|
32
|
+
|
33
|
+
def to_pdf
|
34
|
+
raise('is invalid') unless valid?
|
35
|
+
|
36
|
+
return pdf.render() if pdf.respond_to?(:render) # Prawn
|
37
|
+
return pdf.to_pdf() if pdf.respond_to?(:to_pdf) # CombinePdf
|
38
|
+
|
39
|
+
pdf
|
40
|
+
end
|
41
|
+
|
42
|
+
def pdf
|
43
|
+
@pdf ||= build_pdf()
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def build_pdf()
|
49
|
+
raise('to be implemented')
|
50
|
+
|
51
|
+
# pdf = Prawn::Document.new
|
52
|
+
# pdf.text("Membership Card for #{membership.owner} Number #{membership.number}")
|
53
|
+
# pdf
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -219,7 +219,7 @@ module EffectiveMembershipsRegistrar
|
|
219
219
|
|
220
220
|
if owner.outstanding_fee_payment_fees.present?
|
221
221
|
order = Effective::Order.new(items: owner.outstanding_fee_payment_fees, user: owner)
|
222
|
-
order.
|
222
|
+
order.mark_as_purchased!
|
223
223
|
end
|
224
224
|
|
225
225
|
owner.update_membership_status!
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- owners = current_user.effective_memberships_owners
|
2
|
+
|
3
|
+
- owners.each do |owner|
|
4
|
+
- membership = owner.membership
|
5
|
+
- card = EffectiveMemberships.MembershipCard.new(membership: membership)
|
6
|
+
|
7
|
+
- next unless EffectiveResources.authorized?(self, :show, card)
|
8
|
+
|
9
|
+
= card('Membership Card') do
|
10
|
+
%p
|
11
|
+
Your membership card for
|
12
|
+
= membership.categories.to_sentence
|
13
|
+
= membership.owner.to_s
|
14
|
+
is available for download:
|
15
|
+
|
16
|
+
%p= link_to 'Download Membership Card', effective_memberships.membership_card_membership_path(membership, format: :pdf), class: 'btn btn-primary'
|
data/config/routes.rb
CHANGED
@@ -18,6 +18,13 @@ EffectiveMemberships::Engine.routes.draw do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
get '/directory', to: 'memberships_directory#index'
|
21
|
+
|
22
|
+
resources :membership_cards, only: :index
|
23
|
+
|
24
|
+
resources :memberships, only: [] do
|
25
|
+
get :membership_card, on: :member, to: 'membership_cards#show'
|
26
|
+
end
|
27
|
+
|
21
28
|
end
|
22
29
|
|
23
30
|
namespace :admin do
|
@@ -7,7 +7,7 @@ module EffectiveMemberships
|
|
7
7
|
def self.config_keys
|
8
8
|
[
|
9
9
|
:categories_table_name, :applicants_table_name, :applicant_reviews_table_name, :fee_payments_table_name,
|
10
|
-
:category_class_name, :applicant_class_name, :applicant_review_class_name, :fee_payment_class_name, :registrar_class_name,
|
10
|
+
:category_class_name, :applicant_class_name, :applicant_review_class_name, :fee_payment_class_name, :registrar_class_name, :membership_card_class_name,
|
11
11
|
:additional_fee_types,
|
12
12
|
:layout,
|
13
13
|
:mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin, :use_effective_email_templates
|
@@ -32,6 +32,10 @@ module EffectiveMemberships
|
|
32
32
|
fee_payment_class_name&.constantize || Effective::FeePayment
|
33
33
|
end
|
34
34
|
|
35
|
+
def self.MembershipCard
|
36
|
+
membership_card_class_name&.constantize || Effective::MembershipCard
|
37
|
+
end
|
38
|
+
|
35
39
|
# Singleton
|
36
40
|
def self.Registrar
|
37
41
|
klass = registrar_class_name&.constantize || Effective::Registrar
|
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.3.
|
4
|
+
version: 0.3.8
|
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: 2022-02-
|
11
|
+
date: 2022-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -252,6 +252,7 @@ files:
|
|
252
252
|
- app/controllers/effective/applicant_references_controller.rb
|
253
253
|
- app/controllers/effective/applicants_controller.rb
|
254
254
|
- app/controllers/effective/fee_payments_controller.rb
|
255
|
+
- app/controllers/effective/membership_cards_controller.rb
|
255
256
|
- app/controllers/effective/memberships_directory_controller.rb
|
256
257
|
- app/datatables/admin/effective_applicant_course_areas_datatable.rb
|
257
258
|
- app/datatables/admin/effective_applicant_course_names_datatable.rb
|
@@ -273,6 +274,7 @@ files:
|
|
273
274
|
- app/mailers/effective/memberships_mailer.rb
|
274
275
|
- app/models/concerns/effective_memberships_applicant.rb
|
275
276
|
- app/models/concerns/effective_memberships_applicant_review.rb
|
277
|
+
- app/models/concerns/effective_memberships_card.rb
|
276
278
|
- app/models/concerns/effective_memberships_category.rb
|
277
279
|
- app/models/concerns/effective_memberships_fee_payment.rb
|
278
280
|
- app/models/concerns/effective_memberships_owner.rb
|
@@ -289,6 +291,7 @@ files:
|
|
289
291
|
- app/models/effective/fee.rb
|
290
292
|
- app/models/effective/fee_payment.rb
|
291
293
|
- app/models/effective/membership.rb
|
294
|
+
- app/models/effective/membership_card.rb
|
292
295
|
- app/models/effective/membership_category.rb
|
293
296
|
- app/models/effective/membership_history.rb
|
294
297
|
- app/models/effective/registrar.rb
|
@@ -379,6 +382,7 @@ files:
|
|
379
382
|
- app/views/effective/fee_payments/summary.html.haml
|
380
383
|
- app/views/effective/fees/_dashboard.html.haml
|
381
384
|
- app/views/effective/fees/_fee.html.haml
|
385
|
+
- app/views/effective/membership_cards/index.html.haml
|
382
386
|
- app/views/effective/memberships/_dashboard.html.haml
|
383
387
|
- app/views/effective/memberships/_membership.html.haml
|
384
388
|
- app/views/effective/memberships_directory/index.html.haml
|