Sha256: 17ff4db5f2f6eb694a47c6f3fb992f04543764470ebc0a293ffe116c1bc49de8

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require 'peoplefinder'

module Peoplefinder::Concerns::Completion
  extend ActiveSupport::Concern

  included do
    COMPLETION_SCORE_FIELDS = [
      :given_name,
      :surname,
      :email,
      :primary_phone_number,
      :secondary_phone_number,
      :location,
      :description,
      :groups,
      :image
    ]

    def completion_score_fields
      fields = COMPLETION_SCORE_FIELDS
      if no_phone
        fields -= [:primary_phone_number, :secondary_phone_number]
      end
      fields
    end

    scope :inadequate_profiles,
      lambda {
        where("
          COALESCE(image,'') = ''
          OR COALESCE(location,'') = ''
          OR COALESCE(
            primary_phone_number, secondary_phone_number,''
          ) = ''"
        ).order(:email)
      }

    def completion_score
      completed = completion_score_fields.map { |f| send(f).present? }
      (100 * completed.select { |f| f }.length) / completion_score_fields.length
    end

    def incomplete?
      completion_score < 100
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
peoplefinder-0.0.2 app/models/peoplefinder/concerns/completion.rb