effective_memberships 0.4.15 → 0.4.18
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/models/concerns/effective_memberships_applicant.rb +13 -4
- data/app/models/concerns/effective_memberships_category.rb +1 -0
- data/app/models/concerns/effective_memberships_owner.rb +9 -0
- data/app/models/effective/applicant_experience.rb +1 -1
- data/app/views/admin/applicants/_form.html.haml +1 -54
- data/app/views/admin/applicants/_form_applicant.html.haml +56 -0
- data/app/views/effective/applicants/endorsements.html.haml +1 -1
- data/app/views/effective/applicants/experience.html.haml +3 -0
- data/app/views/effective/applicants/select.html.haml +1 -0
- data/lib/effective_memberships/version.rb +1 -1
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 51b551fdd6f2f1148fcca4d2d34a8745c14e359210634508ae26939d4a4563ec
         | 
| 4 | 
            +
              data.tar.gz: 85fff32681fd9c9e64e1010df663fb2ec7aeb5f95e2b9a95aeb7e944aad370c2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9e8c76e43c5e006162ffdc8c13274f3a6f70046a52bafac971487161f6720ba3ea056235c271d1e41778d2ec93cbc9feb4ca07e89486fd5f97a36e57f6308abc
         | 
| 7 | 
            +
              data.tar.gz: 6cbadbdab149dd6f473fede0536c5f79710cd354cf229fc24f30ae3dbc0ae3706167eb45374e6839fd4e578da45944389c885fb279238dbd9d326872a9677d55
         | 
| @@ -53,6 +53,7 @@ module EffectiveMembershipsApplicant | |
| 53 53 | 
             
                  organization: 'Organization',         # Organization only. Organization fields.
         | 
| 54 54 | 
             
                  education: 'Education',
         | 
| 55 55 | 
             
                  course_amounts: 'Courses',
         | 
| 56 | 
            +
                  equivalences: 'Equivalent Memberships',
         | 
| 56 57 | 
             
                  transcripts: 'Transcripts',
         | 
| 57 58 | 
             
                  experience: 'Work Experience',
         | 
| 58 59 | 
             
                  references: 'References',
         | 
| @@ -373,6 +374,14 @@ module EffectiveMembershipsApplicant | |
| 373 374 | 
             
                  can_revisit_completed_steps(step)
         | 
| 374 375 | 
             
                end
         | 
| 375 376 |  | 
| 377 | 
            +
                def applicant_fee_category
         | 
| 378 | 
            +
                  category
         | 
| 379 | 
            +
                end
         | 
| 380 | 
            +
             | 
| 381 | 
            +
                def applicant_fee_price
         | 
| 382 | 
            +
                  category.applicant_fee
         | 
| 383 | 
            +
                end
         | 
| 384 | 
            +
             | 
| 376 385 | 
             
                # All Fees and Orders
         | 
| 377 386 | 
             
                def submit_fees
         | 
| 378 387 | 
             
                  # Find or build submit fee
         | 
| @@ -380,10 +389,10 @@ module EffectiveMembershipsApplicant | |
| 380 389 |  | 
| 381 390 | 
             
                  unless fee.purchased?
         | 
| 382 391 | 
             
                    fee.assign_attributes(
         | 
| 383 | 
            -
                      category:  | 
| 384 | 
            -
                      price:  | 
| 385 | 
            -
                      tax_exempt:  | 
| 386 | 
            -
                      qb_item_name:  | 
| 392 | 
            +
                      category: applicant_fee_category(),
         | 
| 393 | 
            +
                      price: applicant_fee_price(),
         | 
| 394 | 
            +
                      tax_exempt: applicant_fee_category().applicant_fee_tax_exempt,
         | 
| 395 | 
            +
                      qb_item_name: applicant_fee_category().applicant_fee_qb_item_name
         | 
| 387 396 | 
             
                    )
         | 
| 388 397 | 
             
                  end
         | 
| 389 398 |  | 
| @@ -101,6 +101,7 @@ module EffectiveMembershipsCategory | |
| 101 101 |  | 
| 102 102 | 
             
                serialize :can_apply_restricted_ids, Array
         | 
| 103 103 | 
             
                serialize :applicant_wizard_steps, Array
         | 
| 104 | 
            +
                serialize :applicant_review_wizard_steps, Array
         | 
| 104 105 | 
             
                serialize :fee_payment_wizard_steps, Array
         | 
| 105 106 |  | 
| 106 107 | 
             
                scope :deep, -> { includes(:rich_texts) }
         | 
| @@ -53,6 +53,15 @@ module EffectiveMembershipsOwner | |
| 53 53 | 
             
                  where(id: with_paid_fees_through.select(:owner_id))
         | 
| 54 54 | 
             
                }
         | 
| 55 55 |  | 
| 56 | 
            +
                scope :members_with_category, -> (categories) {
         | 
| 57 | 
            +
                  raise('expected an EffectiveMemberships.Category') unless Array(categories).all? { |cat| cat.kind_of?(EffectiveMemberships.Category) }
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                  membership_categories = Effective::MembershipCategory.where(category: categories)
         | 
| 60 | 
            +
                  memberships = Effective::Membership.where(id: membership_categories.select(:membership_id))
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                  where(id: memberships.where(owner_type: name).select(:owner_id))
         | 
| 63 | 
            +
                }
         | 
| 64 | 
            +
             | 
| 56 65 | 
             
              end
         | 
| 57 66 |  | 
| 58 67 | 
             
              def assign_member_role
         | 
| @@ -34,7 +34,7 @@ module Effective | |
| 34 34 | 
             
                validates :position, presence: true
         | 
| 35 35 | 
             
                validates :employer, presence: true
         | 
| 36 36 | 
             
                validates :start_on, presence: true
         | 
| 37 | 
            -
                validates :end_on, presence: true
         | 
| 37 | 
            +
                validates :end_on, presence: true, unless: -> { still_work_here? }
         | 
| 38 38 | 
             
                validates :level, presence: true, inclusion: { in: LEVELS }
         | 
| 39 39 | 
             
                validates :months, presence: true
         | 
| 40 40 |  | 
| @@ -1,54 +1 @@ | |
| 1 | 
            -
            =  | 
| 2 | 
            -
              - # Done applicants have the Applicant tab first. In progress ones the Status tab
         | 
| 3 | 
            -
              - if applicant.done?
         | 
| 4 | 
            -
                = tab 'Applicant' do
         | 
| 5 | 
            -
                  .mb-4= render 'effective/applicants/summary', applicant: applicant, namespace: :admin
         | 
| 6 | 
            -
                  = render 'effective/applicants/applicant', applicant: applicant, namespace: :admin
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                = tab 'Status' do
         | 
| 9 | 
            -
                  = render 'admin/applicants/status', applicant: applicant, namespace: :admin
         | 
| 10 | 
            -
             | 
| 11 | 
            -
              - if applicant.in_progress?
         | 
| 12 | 
            -
                = tab 'Status' do
         | 
| 13 | 
            -
                  = render 'admin/applicants/status', applicant: applicant, namespace: :admin
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                = tab 'Applicant' do
         | 
| 16 | 
            -
                  .mb-4= render 'effective/applicants/summary', applicant: applicant, namespace: :admin
         | 
| 17 | 
            -
                  = render 'effective/applicants/applicant', applicant: applicant, namespace: :admin
         | 
| 18 | 
            -
             | 
| 19 | 
            -
              - # Just normal tabs now
         | 
| 20 | 
            -
              - if applicant.was_submitted? && !applicant.was_approved?
         | 
| 21 | 
            -
                = tab 'Process' do
         | 
| 22 | 
            -
                  = render 'admin/applicants/form_process', applicant: applicant
         | 
| 23 | 
            -
             | 
| 24 | 
            -
              - if applicant.applicant_references.present?
         | 
| 25 | 
            -
                = tab 'References' do
         | 
| 26 | 
            -
                  .mb-4= render_inline_datatable(Admin::EffectiveApplicantReferencesDatatable.new(applicant: applicant))
         | 
| 27 | 
            -
             | 
| 28 | 
            -
              - if applicant.applicant_endorsements.present?
         | 
| 29 | 
            -
                = tab 'Endorsements' do
         | 
| 30 | 
            -
                  .mb-4= render_inline_datatable(Admin::EffectiveApplicantEndorsementsDatatable.new(applicant: applicant))
         | 
| 31 | 
            -
             | 
| 32 | 
            -
              - if applicant.transcripts_required?
         | 
| 33 | 
            -
                = tab 'Transcripts' do
         | 
| 34 | 
            -
                  = render 'admin/applicants/form_transcripts', applicant: applicant
         | 
| 35 | 
            -
             | 
| 36 | 
            -
              - if applicant.fees.present? || applicant.orders.present?
         | 
| 37 | 
            -
                = tab 'Fees' do
         | 
| 38 | 
            -
                  .mb-4
         | 
| 39 | 
            -
                    %h2 Fees
         | 
| 40 | 
            -
                    - datatable = Admin::EffectiveFeesDatatable.new(applicant: applicant, total: false)
         | 
| 41 | 
            -
                    = render_datatable(datatable, simple: true, inline: true)
         | 
| 42 | 
            -
             | 
| 43 | 
            -
                  .mb-4
         | 
| 44 | 
            -
                    %h2 Orders
         | 
| 45 | 
            -
                    - datatable = Admin::EffectiveOrdersDatatable.new(parent: applicant, owner: applicant.owner, user: applicant.owner, total: false)
         | 
| 46 | 
            -
                    = render_datatable(datatable, simple: true)
         | 
| 47 | 
            -
             | 
| 48 | 
            -
              - if applicant.owner.applicants.any? { |other| other.was_submitted? && other.id != applicant.id }
         | 
| 49 | 
            -
                = tab 'Other Applications' do
         | 
| 50 | 
            -
                  = render_datatable(Admin::EffectiveApplicantsDatatable.new(owner: applicant.owner, except_id: applicant.id))
         | 
| 51 | 
            -
             | 
| 52 | 
            -
              - if applicant.persisted? && applicant.respond_to?(:log_changes_datatable)
         | 
| 53 | 
            -
                = tab 'Logs' do
         | 
| 54 | 
            -
                  = render_inline_datatable(applicant.log_changes_datatable)
         | 
| 1 | 
            +
            = render('admin/applicants/form_applicant', applicant: applicant)
         | 
| @@ -0,0 +1,56 @@ | |
| 1 | 
            +
            = tabs do
         | 
| 2 | 
            +
              - # Done applicants have the Applicant tab first. In progress ones the Status tab
         | 
| 3 | 
            +
              - if applicant.done?
         | 
| 4 | 
            +
                = tab 'Applicant' do
         | 
| 5 | 
            +
                  .mb-4= render 'effective/applicants/summary', applicant: applicant, namespace: :admin
         | 
| 6 | 
            +
                  = render 'effective/applicants/applicant', applicant: applicant, namespace: :admin
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                = tab 'Status' do
         | 
| 9 | 
            +
                  = render 'admin/applicants/status', applicant: applicant, namespace: :admin
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              - if applicant.in_progress?
         | 
| 12 | 
            +
                = tab 'Status' do
         | 
| 13 | 
            +
                  = render 'admin/applicants/status', applicant: applicant, namespace: :admin
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                = tab 'Applicant' do
         | 
| 16 | 
            +
                  .mb-4= render 'effective/applicants/summary', applicant: applicant, namespace: :admin
         | 
| 17 | 
            +
                  = render 'effective/applicants/applicant', applicant: applicant, namespace: :admin
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              - # Just normal tabs now
         | 
| 20 | 
            +
              - if applicant.was_submitted? && !applicant.was_approved?
         | 
| 21 | 
            +
                = tab 'Process' do
         | 
| 22 | 
            +
                  = render 'admin/applicants/form_process', applicant: applicant
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              - if applicant.applicant_references.present?
         | 
| 25 | 
            +
                = tab 'References' do
         | 
| 26 | 
            +
                  .mb-4= render_inline_datatable(Admin::EffectiveApplicantReferencesDatatable.new(applicant: applicant))
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              - if applicant.applicant_endorsements.present?
         | 
| 29 | 
            +
                = tab 'Endorsements' do
         | 
| 30 | 
            +
                  .mb-4= render_inline_datatable(Admin::EffectiveApplicantEndorsementsDatatable.new(applicant: applicant))
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              - if applicant.transcripts_required?
         | 
| 33 | 
            +
                = tab 'Transcripts' do
         | 
| 34 | 
            +
                  = render 'admin/applicants/form_transcripts', applicant: applicant
         | 
| 35 | 
            +
             | 
| 36 | 
            +
              = yield
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              - if applicant.fees.present? || applicant.orders.present?
         | 
| 39 | 
            +
                = tab 'Fees' do
         | 
| 40 | 
            +
                  .mb-4
         | 
| 41 | 
            +
                    %h2 Fees
         | 
| 42 | 
            +
                    - datatable = Admin::EffectiveFeesDatatable.new(applicant: applicant, total: false)
         | 
| 43 | 
            +
                    = render_datatable(datatable, simple: true, inline: true)
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  .mb-4
         | 
| 46 | 
            +
                    %h2 Orders
         | 
| 47 | 
            +
                    - datatable = Admin::EffectiveOrdersDatatable.new(parent: applicant, owner: applicant.owner, user: applicant.owner, total: false)
         | 
| 48 | 
            +
                    = render_datatable(datatable, simple: true)
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              - if applicant.owner.applicants.any? { |other| other.was_submitted? && other.id != applicant.id }
         | 
| 51 | 
            +
                = tab 'Other Applications' do
         | 
| 52 | 
            +
                  = render_datatable(Admin::EffectiveApplicantsDatatable.new(owner: applicant.owner, except_id: applicant.id))
         | 
| 53 | 
            +
             | 
| 54 | 
            +
              - if applicant.persisted? && applicant.respond_to?(:log_changes_datatable)
         | 
| 55 | 
            +
                = tab 'Logs' do
         | 
| 56 | 
            +
                  = render_inline_datatable(applicant.log_changes_datatable)
         | 
| @@ -19,7 +19,7 @@ | |
| 19 19 | 
             
                    = aef.hidden_field :endorser_type
         | 
| 20 20 |  | 
| 21 21 | 
             
                    = aef.select :endorser_id, endorders_collection, required: false,
         | 
| 22 | 
            -
                      ajax_url: effective_memberships.select2_ajax_endorser_applicant_endorsement_path(applicant_id: resource)
         | 
| 22 | 
            +
                      ajax_url: (effective_memberships.select2_ajax_endorser_applicant_endorsement_path(applicant_id: resource) unless Rails.env.test?)
         | 
| 23 23 |  | 
| 24 24 | 
             
                    = aef.check_box :unknown_member, label: 'I cant find my endorser in the above list'
         | 
| 25 25 |  | 
| @@ -3,6 +3,9 @@ | |
| 3 3 |  | 
| 4 4 | 
             
              = card do
         | 
| 5 5 | 
             
                - if resource.min_applicant_educations > 0
         | 
| 6 | 
            +
                  %p You must include #{resource.min_applicant_educations} or more work experiences.
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                - if resource.min_applicant_experiences_months > 0
         | 
| 6 9 | 
             
                  %p You must include #{resource.min_applicant_experiences_months} or more months of experience.
         | 
| 7 10 |  | 
| 8 11 | 
             
                = effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
         | 
| @@ -16,6 +16,7 @@ | |
| 16 16 | 
             
                  = effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
         | 
| 17 17 | 
             
                    = f.hidden_field :id
         | 
| 18 18 |  | 
| 19 | 
            +
                    = f.hidden_field :stream, value: nil
         | 
| 19 20 | 
             
                    = f.hidden_field :organization_id, value: nil
         | 
| 20 21 | 
             
                    = f.hidden_field :organization_type, value: nil
         | 
| 21 22 | 
             
                    = f.hidden_field :category_type, value: EffectiveMemberships.Category.name
         | 
    
        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.4. | 
| 4 | 
            +
              version: 0.4.18
         | 
| 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-07- | 
| 11 | 
            +
            date: 2022-07-29 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -337,6 +337,7 @@ files: | |
| 337 337 | 
             
            - app/views/admin/applicant_endorsements/_applicant_endorsement.html.haml
         | 
| 338 338 | 
             
            - app/views/admin/applicant_references/_applicant_reference.html.haml
         | 
| 339 339 | 
             
            - app/views/admin/applicants/_form.html.haml
         | 
| 340 | 
            +
            - app/views/admin/applicants/_form_applicant.html.haml
         | 
| 340 341 | 
             
            - app/views/admin/applicants/_form_approve.html.haml
         | 
| 341 342 | 
             
            - app/views/admin/applicants/_form_complete.html.haml
         | 
| 342 343 | 
             
            - app/views/admin/applicants/_form_decline.html.haml
         |