effective_memberships 0.3.13 → 0.4.1

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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/admin/organizations_controller.rb +19 -0
  3. data/app/controllers/admin/representatives_controller.rb +19 -0
  4. data/app/controllers/effective/applicants_controller.rb +2 -3
  5. data/app/controllers/effective/fee_payments_controller.rb +1 -2
  6. data/app/controllers/effective/organizations_controller.rb +16 -0
  7. data/app/controllers/effective/representatives_controller.rb +19 -0
  8. data/app/datatables/admin/effective_applicants_datatable.rb +10 -5
  9. data/app/datatables/admin/effective_categories_datatable.rb +7 -0
  10. data/app/datatables/admin/effective_fee_payments_datatable.rb +11 -6
  11. data/app/datatables/admin/effective_organizations_datatable.rb +31 -0
  12. data/app/datatables/admin/effective_representatives_datatable.rb +28 -0
  13. data/app/datatables/effective_applicants_datatable.rb +1 -1
  14. data/app/datatables/effective_fee_payments_datatable.rb +5 -4
  15. data/app/datatables/effective_organizations_datatable.rb +18 -0
  16. data/app/datatables/effective_representatives_datatable.rb +40 -0
  17. data/app/helpers/effective_memberships_helper.rb +25 -0
  18. data/app/mailers/effective/memberships_mailer.rb +34 -15
  19. data/app/models/concerns/effective_memberships_applicant.rb +63 -30
  20. data/app/models/concerns/effective_memberships_category.rb +32 -5
  21. data/app/models/concerns/effective_memberships_fee_payment.rb +44 -45
  22. data/app/models/concerns/effective_memberships_organization.rb +94 -0
  23. data/app/models/concerns/effective_memberships_owner.rb +0 -55
  24. data/app/models/concerns/effective_memberships_registrar.rb +5 -3
  25. data/app/models/concerns/effective_memberships_user.rb +70 -0
  26. data/app/models/effective/fee.rb +1 -1
  27. data/app/models/effective/organization.rb +8 -0
  28. data/app/models/effective/registrar_action.rb +16 -1
  29. data/app/models/effective/representative.rb +56 -0
  30. data/app/views/admin/categories/_form_applicant_eligibility.html.haml +1 -1
  31. data/app/views/admin/categories/_form_applicant_steps.html.haml +29 -24
  32. data/app/views/admin/categories/_form_category.html.haml +3 -0
  33. data/app/views/admin/categories/_form_renewals.html.haml +0 -2
  34. data/app/views/admin/organizations/_fields.html.haml +6 -0
  35. data/app/views/admin/organizations/_form.html.haml +31 -0
  36. data/app/views/admin/organizations/_form_organization.html.haml +23 -0
  37. data/app/views/admin/registrar_actions/_form_fees_paid.html.haml +16 -0
  38. data/app/views/admin/representatives/_form.html.haml +38 -0
  39. data/app/views/{effective/applicants/_demographics_fields.html.haml → admin/representatives/_user_fields.html.haml} +2 -6
  40. data/app/views/effective/applicants/_dashboard.html.haml +24 -5
  41. data/app/views/effective/applicants/_demographics.html.haml +1 -1
  42. data/app/views/effective/applicants/_missing_info.html.haml +7 -3
  43. data/app/views/effective/applicants/_organization.html.haml +9 -0
  44. data/app/views/effective/applicants/_select_organization.html.haml +21 -0
  45. data/app/views/effective/applicants/_summary.html.haml +17 -9
  46. data/app/views/effective/applicants/billing.html.haml +2 -2
  47. data/app/views/effective/applicants/demographics.html.haml +7 -6
  48. data/app/views/effective/applicants/education.html.haml +2 -2
  49. data/app/views/effective/applicants/organization.html.haml +19 -0
  50. data/app/views/effective/applicants/references.html.haml +1 -1
  51. data/app/views/effective/applicants/select.html.haml +11 -1
  52. data/app/views/effective/applicants/stamp.html.haml +2 -2
  53. data/app/views/effective/applicants/start.html.haml +17 -11
  54. data/app/views/effective/applicants/submitted.html.haml +5 -5
  55. data/app/views/effective/applicants/summary.html.haml +1 -1
  56. data/app/views/effective/fee_payments/_demographics.html.haml +1 -1
  57. data/app/views/effective/fee_payments/_organization.html.haml +9 -0
  58. data/app/views/effective/fee_payments/_summary.html.haml +39 -1
  59. data/app/views/effective/fee_payments/billing.html.haml +2 -2
  60. data/app/views/effective/fee_payments/demographics.html.haml +2 -2
  61. data/app/views/effective/fee_payments/organization.html.haml +18 -0
  62. data/app/views/effective/fee_payments/start.html.haml +20 -17
  63. data/app/views/effective/fee_payments/submitted.html.haml +10 -3
  64. data/app/views/effective/fees/_dashboard.html.haml +20 -8
  65. data/app/views/effective/memberships/_dashboard.html.haml +16 -5
  66. data/app/views/effective/organizations/_dashboard.html.haml +10 -0
  67. data/app/views/effective/organizations/_form.html.haml +8 -0
  68. data/app/views/effective/organizations/_form_organization.html.haml +11 -0
  69. data/app/views/effective/representatives/_form.html.haml +33 -0
  70. data/app/views/effective/{fee_payments/_demographics_fields.html.haml → representatives/_user_fields.html.haml} +2 -6
  71. data/app/views/organizations/_demographics.html.haml +45 -0
  72. data/app/views/organizations/_fields_demographics.html.haml +29 -0
  73. data/app/views/users/_demographics.html.haml +50 -0
  74. data/app/views/users/_fields_demographics.html.haml +29 -0
  75. data/config/effective_memberships.rb +4 -0
  76. data/config/routes.rb +9 -0
  77. data/db/migrate/01_create_effective_memberships.rb.erb +57 -10
  78. data/db/seeds.rb +18 -0
  79. data/lib/effective_memberships/engine.rb +3 -0
  80. data/lib/effective_memberships/version.rb +1 -1
  81. data/lib/effective_memberships.rb +7 -3
  82. metadata +33 -20
  83. data/app/views/effective/applicants/_demographics_owner.html.haml +0 -20
  84. data/app/views/effective/fee_payments/_demographics_owner.html.haml +0 -20
@@ -3,8 +3,10 @@ class CreateEffectiveMemberships < ActiveRecord::Migration[6.0]
3
3
 
4
4
  # Categories
5
5
  create_table :categories do |t|
6
+ t.string :category_type # Individual or Organization
7
+
6
8
  t.string :title
7
- t.string :category
9
+ t.string :category # Freeform
8
10
 
9
11
  t.integer :position
10
12
 
@@ -119,12 +121,57 @@ class CreateEffectiveMemberships < ActiveRecord::Migration[6.0]
119
121
  add_index :membership_histories, [:owner_id, :owner_type]
120
122
  add_index :membership_histories, :start_on
121
123
 
124
+ # Organizations
125
+ create_table :organizations do |t|
126
+ t.string :email
127
+
128
+ t.string :title
129
+
130
+ t.string :phone
131
+ t.string :fax
132
+ t.string :website
133
+
134
+ t.string :category
135
+ t.text :notes
136
+
137
+ t.integer :roles_mask
138
+ t.boolean :archived, default: false
139
+
140
+ t.integer :representatives_count, default: 0
141
+
142
+ t.datetime :updated_at
143
+ t.datetime :created_at
144
+ end
145
+
146
+ add_index :organizations, :title
147
+
148
+ # Representatives
149
+ create_table :representatives do |t|
150
+ t.integer :organization_id
151
+ t.string :organization_type
152
+
153
+ t.integer :user_id
154
+ t.string :user_type
155
+
156
+ t.integer :roles_mask
157
+
158
+ t.datetime :updated_at
159
+ t.datetime :created_at
160
+ end
161
+
162
+ add_index :representatives, [:organization_id, :organization_type]
163
+ add_index :representatives, [:user_id, :user_type]
164
+
122
165
  # Applicants
123
166
  create_table :applicants do |t|
167
+ t.string :applicant_type
124
168
  t.string :token
125
169
 
126
- t.integer :owner_id
127
- t.string :owner_type
170
+ t.integer :user_id
171
+ t.string :user_type
172
+
173
+ t.integer :organization_id
174
+ t.string :organization_type
128
175
 
129
176
  t.integer :category_id
130
177
  t.string :category_type
@@ -132,8 +179,6 @@ class CreateEffectiveMemberships < ActiveRecord::Migration[6.0]
132
179
  t.integer :from_category_id
133
180
  t.string :from_category_type
134
181
 
135
- t.string :applicant_type
136
-
137
182
  # Acts as Statused
138
183
  t.string :status
139
184
  t.text :status_steps
@@ -169,7 +214,8 @@ class CreateEffectiveMemberships < ActiveRecord::Migration[6.0]
169
214
  t.datetime :created_at
170
215
  end
171
216
 
172
- add_index :applicants, [:owner_id, :owner_type]
217
+ add_index :applicants, [:user_id, :user_type]
218
+ add_index :applicants, [:organization_id, :organization_type]
173
219
  add_index :applicants, :status
174
220
  add_index :applicants, :token
175
221
 
@@ -361,12 +407,12 @@ class CreateEffectiveMemberships < ActiveRecord::Migration[6.0]
361
407
  create_table :fee_payments do |t|
362
408
  t.string :token
363
409
 
364
- t.integer :owner_id
365
- t.string :owner_type
366
-
367
410
  t.integer :user_id
368
411
  t.string :user_type
369
412
 
413
+ t.integer :organization_id
414
+ t.string :organization_type
415
+
370
416
  t.integer :category_id
371
417
  t.string :category_type
372
418
 
@@ -386,7 +432,8 @@ class CreateEffectiveMemberships < ActiveRecord::Migration[6.0]
386
432
  t.datetime :created_at
387
433
  end
388
434
 
389
- add_index :fee_payments, [:owner_id, :owner_type]
435
+ add_index :fee_payments, [:user_id, :user_type]
436
+ add_index :fee_payments, [:organization_id, :organization_type]
390
437
  add_index :fee_payments, :status
391
438
  add_index :fee_payments, :token
392
439
 
data/db/seeds.rb CHANGED
@@ -56,6 +56,24 @@ retired = Effective::Category.create!(
56
56
  tax_exempt: false
57
57
  )
58
58
 
59
+ member = Effective::Category.create!(
60
+ category_type: 'Organization',
61
+ title: "Corporate",
62
+ can_apply_new: true,
63
+ can_apply_existing: true,
64
+ create_renewal_fees: true,
65
+ create_late_fees: true,
66
+ min_applicant_references: 2,
67
+ min_applicant_reviews: 2,
68
+ applicant_fee: 100_00,
69
+ renewal_fee: 250_00,
70
+ late_fee: 50_00,
71
+ prorated_jan: 120_00, prorated_feb: 110_00, prorated_mar: 100_00, prorated_apr: 90_00, prorated_may: 80_00, prorated_jun: 70_00,
72
+ prorated_jul: 60_00, prorated_aug: 50_00, prorated_sep: 40_00, prorated_oct: 30_00, prorated_nov: 20_00, prorated_dec: 10_00,
73
+ qb_item_name: 'Corporate Member Quickbooks Name',
74
+ tax_exempt: false
75
+ )
76
+
59
77
  area = Effective::ApplicantCourseArea.create!(title: 'Science')
60
78
  area.applicant_course_names.create!(title: 'Science 100')
61
79
  area.applicant_course_names.create!(title: 'Science 200')
@@ -13,6 +13,9 @@ module EffectiveMemberships
13
13
  ActiveRecord::Base.extend(EffectiveMembershipsOwner::Base)
14
14
  ActiveRecord::Base.extend(EffectiveMembershipsCategory::Base)
15
15
 
16
+ ActiveRecord::Base.extend(EffectiveMembershipsUser::Base)
17
+ ActiveRecord::Base.extend(EffectiveMembershipsOrganization::Base)
18
+
16
19
  ActiveRecord::Base.extend(EffectiveMembershipsApplicant::Base)
17
20
  ActiveRecord::Base.extend(EffectiveMembershipsApplicantReview::Base)
18
21
  ActiveRecord::Base.extend(EffectiveMembershipsFeePayment::Base)
@@ -1,3 +1,3 @@
1
1
  module EffectiveMemberships
2
- VERSION = '0.3.13'
2
+ VERSION = '0.4.1'
3
3
  end
@@ -6,11 +6,11 @@ module EffectiveMemberships
6
6
 
7
7
  def self.config_keys
8
8
  [
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, :membership_card_class_name,
9
+ :categories_table_name, :applicants_table_name, :applicant_reviews_table_name, :fee_payments_table_name, :organizations_table_name, :representatives_table_name,
10
+ :category_class_name, :organization_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, :applicant_reviews,
12
12
  :layout,
13
- :mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin, :use_effective_email_templates
13
+ :mailer, :parent_mailer, :deliver_method, :mailer_layout, :mailer_sender, :mailer_admin, :mailer_subject, :use_effective_email_templates
14
14
  ]
15
15
  end
16
16
 
@@ -20,6 +20,10 @@ module EffectiveMemberships
20
20
  category_class_name&.constantize || Effective::Category
21
21
  end
22
22
 
23
+ def self.Organization
24
+ organization_class_name&.constantize || Effective::Organization
25
+ end
26
+
23
27
  def self.Applicant
24
28
  applicant_class_name&.constantize || Effective::Applicant
25
29
  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.3.13
4
+ version: 0.4.1
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-03-03 00:00:00.000000000 Z
11
+ date: 2022-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -192,20 +192,6 @@ dependencies:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: effective_organizations
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
195
  - !ruby/object:Gem::Dependency
210
196
  name: effective_developer
211
197
  requirement: !ruby/object:Gem::Requirement
@@ -262,12 +248,16 @@ files:
262
248
  - app/controllers/admin/fee_payments_controller.rb
263
249
  - app/controllers/admin/fees_controller.rb
264
250
  - app/controllers/admin/memberships_controller.rb
251
+ - app/controllers/admin/organizations_controller.rb
265
252
  - app/controllers/admin/registrar_actions_controller.rb
253
+ - app/controllers/admin/representatives_controller.rb
266
254
  - app/controllers/effective/applicant_references_controller.rb
267
255
  - app/controllers/effective/applicants_controller.rb
268
256
  - app/controllers/effective/fee_payments_controller.rb
269
257
  - app/controllers/effective/membership_cards_controller.rb
270
258
  - app/controllers/effective/memberships_directory_controller.rb
259
+ - app/controllers/effective/organizations_controller.rb
260
+ - app/controllers/effective/representatives_controller.rb
271
261
  - app/datatables/admin/effective_applicant_course_areas_datatable.rb
272
262
  - app/datatables/admin/effective_applicant_course_names_datatable.rb
273
263
  - app/datatables/admin/effective_applicant_references_datatable.rb
@@ -277,6 +267,8 @@ files:
277
267
  - app/datatables/admin/effective_fees_datatable.rb
278
268
  - app/datatables/admin/effective_membership_histories_datatable.rb
279
269
  - app/datatables/admin/effective_memberships_datatable.rb
270
+ - app/datatables/admin/effective_organizations_datatable.rb
271
+ - app/datatables/admin/effective_representatives_datatable.rb
280
272
  - app/datatables/effective_applicant_courses_datatable.rb
281
273
  - app/datatables/effective_applicant_educations_datatable.rb
282
274
  - app/datatables/effective_applicant_experiences_datatable.rb
@@ -284,6 +276,8 @@ files:
284
276
  - app/datatables/effective_applicants_datatable.rb
285
277
  - app/datatables/effective_fee_payments_datatable.rb
286
278
  - app/datatables/effective_memberships_directory_datatable.rb
279
+ - app/datatables/effective_organizations_datatable.rb
280
+ - app/datatables/effective_representatives_datatable.rb
287
281
  - app/helpers/effective_memberships_helper.rb
288
282
  - app/mailers/effective/memberships_mailer.rb
289
283
  - app/models/concerns/effective_memberships_applicant.rb
@@ -291,8 +285,10 @@ files:
291
285
  - app/models/concerns/effective_memberships_card.rb
292
286
  - app/models/concerns/effective_memberships_category.rb
293
287
  - app/models/concerns/effective_memberships_fee_payment.rb
288
+ - app/models/concerns/effective_memberships_organization.rb
294
289
  - app/models/concerns/effective_memberships_owner.rb
295
290
  - app/models/concerns/effective_memberships_registrar.rb
291
+ - app/models/concerns/effective_memberships_user.rb
296
292
  - app/models/effective/applicant.rb
297
293
  - app/models/effective/applicant_course.rb
298
294
  - app/models/effective/applicant_course_area.rb
@@ -308,8 +304,10 @@ files:
308
304
  - app/models/effective/membership_card.rb
309
305
  - app/models/effective/membership_category.rb
310
306
  - app/models/effective/membership_history.rb
307
+ - app/models/effective/organization.rb
311
308
  - app/models/effective/registrar.rb
312
309
  - app/models/effective/registrar_action.rb
310
+ - app/models/effective/representative.rb
313
311
  - app/views/admin/applicant_course_areas/_form.html.haml
314
312
  - app/views/admin/applicant_course_areas/_form_applicant_course_area.html.haml
315
313
  - app/views/admin/applicant_course_areas/index.html.haml
@@ -337,6 +335,9 @@ files:
337
335
  - app/views/admin/fees/_fee.html.haml
338
336
  - app/views/admin/fees/_form.html.haml
339
337
  - app/views/admin/memberships/_status.html.haml
338
+ - app/views/admin/organizations/_fields.html.haml
339
+ - app/views/admin/organizations/_form.html.haml
340
+ - app/views/admin/organizations/_form_organization.html.haml
340
341
  - app/views/admin/registrar_actions/_form.html.haml
341
342
  - app/views/admin/registrar_actions/_form_assign.html.haml
342
343
  - app/views/admin/registrar_actions/_form_bad_standing.html.haml
@@ -344,6 +345,8 @@ files:
344
345
  - app/views/admin/registrar_actions/_form_reclassify.html.haml
345
346
  - app/views/admin/registrar_actions/_form_register.html.haml
346
347
  - app/views/admin/registrar_actions/_form_remove.html.haml
348
+ - app/views/admin/representatives/_form.html.haml
349
+ - app/views/admin/representatives/_user_fields.html.haml
347
350
  - app/views/effective/applicant_references/_applicant_reference.html.haml
348
351
  - app/views/effective/applicant_references/_datatable_actions.html.haml
349
352
  - app/views/effective/applicant_references/_form.html.haml
@@ -356,16 +359,16 @@ files:
356
359
  - app/views/effective/applicants/_dashboard.html.haml
357
360
  - app/views/effective/applicants/_declarations.html.haml
358
361
  - app/views/effective/applicants/_demographics.html.haml
359
- - app/views/effective/applicants/_demographics_fields.html.haml
360
- - app/views/effective/applicants/_demographics_owner.html.haml
361
362
  - app/views/effective/applicants/_education.html.haml
362
363
  - app/views/effective/applicants/_experience.html.haml
363
364
  - app/views/effective/applicants/_files.html.haml
364
365
  - app/views/effective/applicants/_layout.html.haml
365
366
  - app/views/effective/applicants/_missing_info.html.haml
366
367
  - app/views/effective/applicants/_orders.html.haml
368
+ - app/views/effective/applicants/_organization.html.haml
367
369
  - app/views/effective/applicants/_references.html.haml
368
370
  - app/views/effective/applicants/_select.html.haml
371
+ - app/views/effective/applicants/_select_organization.html.haml
369
372
  - app/views/effective/applicants/_stamp.html.haml
370
373
  - app/views/effective/applicants/_summary.html.haml
371
374
  - app/views/effective/applicants/billing.html.haml
@@ -376,6 +379,7 @@ files:
376
379
  - app/views/effective/applicants/education.html.haml
377
380
  - app/views/effective/applicants/experience.html.haml
378
381
  - app/views/effective/applicants/files.html.haml
382
+ - app/views/effective/applicants/organization.html.haml
379
383
  - app/views/effective/applicants/references.html.haml
380
384
  - app/views/effective/applicants/select.html.haml
381
385
  - app/views/effective/applicants/stamp.html.haml
@@ -386,16 +390,16 @@ files:
386
390
  - app/views/effective/fee_payments/_dashboard.html.haml
387
391
  - app/views/effective/fee_payments/_declarations.html.haml
388
392
  - app/views/effective/fee_payments/_demographics.html.haml
389
- - app/views/effective/fee_payments/_demographics_fields.html.haml
390
- - app/views/effective/fee_payments/_demographics_owner.html.haml
391
393
  - app/views/effective/fee_payments/_fee_payment.html.haml
392
394
  - app/views/effective/fee_payments/_layout.html.haml
393
395
  - app/views/effective/fee_payments/_orders.html.haml
396
+ - app/views/effective/fee_payments/_organization.html.haml
394
397
  - app/views/effective/fee_payments/_summary.html.haml
395
398
  - app/views/effective/fee_payments/billing.html.haml
396
399
  - app/views/effective/fee_payments/checkout.html.haml
397
400
  - app/views/effective/fee_payments/declarations.html.haml
398
401
  - app/views/effective/fee_payments/demographics.html.haml
402
+ - app/views/effective/fee_payments/organization.html.haml
399
403
  - app/views/effective/fee_payments/start.html.haml
400
404
  - app/views/effective/fee_payments/submitted.html.haml
401
405
  - app/views/effective/fee_payments/summary.html.haml
@@ -410,6 +414,15 @@ files:
410
414
  - app/views/effective/memberships_mailer/applicant_declined.liquid
411
415
  - app/views/effective/memberships_mailer/applicant_missing_info.liquid
412
416
  - app/views/effective/memberships_mailer/applicant_reference_notification.liquid
417
+ - app/views/effective/organizations/_dashboard.html.haml
418
+ - app/views/effective/organizations/_form.html.haml
419
+ - app/views/effective/organizations/_form_organization.html.haml
420
+ - app/views/effective/representatives/_form.html.haml
421
+ - app/views/effective/representatives/_user_fields.html.haml
422
+ - app/views/organizations/_demographics.html.haml
423
+ - app/views/organizations/_fields_demographics.html.haml
424
+ - app/views/users/_demographics.html.haml
425
+ - app/views/users/_fields_demographics.html.haml
413
426
  - config/effective_memberships.rb
414
427
  - config/routes.rb
415
428
  - db/migrate/01_create_effective_memberships.rb.erb
@@ -1,20 +0,0 @@
1
- %table.table.table-sm
2
- %tbody
3
- %tr
4
- %th Name
5
- %td= owner.to_s
6
-
7
- - if owner.respond_to?(:email) && owner.email.present?
8
- %tr
9
- %th Email
10
- %td= mail_to owner.email
11
-
12
- - if owner.respond_to?(:date_of_birth) && owner.date_of_birth.present?
13
- %tr
14
- %th Date of Birth
15
- %td= owner.date_of_birth.strftime('%F')
16
-
17
- - if owner.respond_to?(:phone) && owner.phone.present?
18
- %tr
19
- %th Phone:
20
- %td= owner.phone
@@ -1,20 +0,0 @@
1
- %table.table.table-sm
2
- %tbody
3
- %tr
4
- %th Name
5
- %td= owner.to_s
6
-
7
- - if owner.respond_to?(:email) && owner.email.present?
8
- %tr
9
- %th Email
10
- %td= mail_to owner.email
11
-
12
- - if owner.respond_to?(:date_of_birth) && owner.date_of_birth.present?
13
- %tr
14
- %th Date of Birth
15
- %td= owner.date_of_birth.strftime('%F')
16
-
17
- - if owner.respond_to?(:phone) && owner.phone.present?
18
- %tr
19
- %th Phone:
20
- %td= owner.phone