Module: EffectiveMembershipsDirectory
- Extended by:
- ActiveSupport::Concern
- Included in:
- Effective::MembershipDirectory
- Defined in:
- app/models/concerns/effective_memberships_directory.rb
Overview
This is a search model for the MembershipDirectories screen
EffectiveMembershipsDirectory Mark your directory search model with include EffectiveMembershipsDirectory
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#collection ⇒ Object
Base collection to search.
-
#membership_owners ⇒ Object
The unpaginated results of the search.
- #per_page ⇒ Object
- #present? ⇒ Boolean
-
#results(page: nil) ⇒ Object
The paginated results.
-
#search! ⇒ Object
Search and assigns the collection Assigns the entire collection() if there are no search terms Otherwise validate the search terms.
-
#search_any_columns ⇒ Object
Search Users and Organizations for only these fields.
Instance Method Details
#collection ⇒ Object
Base collection to search. Can be configured per tenant.
31 32 33 34 |
# File 'app/models/concerns/effective_memberships_directory.rb', line 31 def collection # Example::User.members.membership_in_good_standing.all raise('to be implemented by app membership_directory') end |
#membership_owners ⇒ Object
The unpaginated results of the search
60 61 62 |
# File 'app/models/concerns/effective_memberships_directory.rb', line 60 def membership_owners @membership_owners || collection end |
#per_page ⇒ Object
42 43 44 |
# File 'app/models/concerns/effective_memberships_directory.rb', line 42 def per_page 24 end |
#present? ⇒ Boolean
46 47 48 |
# File 'app/models/concerns/effective_memberships_directory.rb', line 46 def present? term.present? || first_name.present? || last_name.present? || category.present? end |
#results(page: nil) ⇒ Object
The paginated results
65 66 67 68 69 70 |
# File 'app/models/concerns/effective_memberships_directory.rb', line 65 def results(page: nil) page = (page || 1).to_i offset = [(page - 1), 0].max * per_page membership_owners.limit(per_page).offset(offset) end |
#search! ⇒ Object
Search and assigns the collection Assigns the entire collection() if there are no search terms Otherwise validate the search terms
53 54 55 56 57 |
# File 'app/models/concerns/effective_memberships_directory.rb', line 53 def search! @membership_owners = build_collection() @membership_owners = @membership_owners.none if present? && !valid? @membership_owners end |
#search_any_columns ⇒ Object
Search Users and Organizations for only these fields. Passed into search_any. Return nil for all. Should this include email?
38 39 40 |
# File 'app/models/concerns/effective_memberships_directory.rb', line 38 def search_any_columns [:title, :name, :first_name, :middle_name, :last_name] end |