Sha256: 9e57b2780ece7527cbe677f71a8c70ba6e1d5418c5d13ce0a142c81a98c54137

Contents?: true

Size: 1.43 KB

Versions: 18

Compression:

Stored size: 1.43 KB

Contents

module KirguduBase
	module Common
		class PortalUser  < ::KirguduBase::BaseModel

			include ::KirguduBase::Models::BasicProperties::User
			include ::KirguduBase::Models::BasicProperties::Portal


			validates_presence_of :user_id, :portal_id
			validates_uniqueness_of :user_id, scope: :portal_id


			scope :by_status, lambda { |value| where { status_id == value } if value }


			scope :with_keyword, lambda { |value|
				if value
					value = value.gsub('%', '')
					like_value = "%#{value}%"
					where { (user.first_name.like like_value) | (user.last_name.like like_value) }
				end
			}

			def self.apply_filters_to_query(query, filters={})
				filters ||= {}

				filters.merge!({
					               order:
							               ["#{::KirguduBase::Common::Portal.table_name}.name asc",
							               "#{::KirguduBase::Security::User.table_name}.last_name asc",
							               "#{::KirguduBase::Security::User.table_name}.first_name asc"].join(", ")
				               })

				query = query.joins(:user).includes(:portal, :user)

				super(query, filters)
			end


			def name_for_breadcrumbs
				self.user_name
			end

			def to_s
				self.user_name
			end

			def as_json(options = { })
				# just in case someone says as_json(nil) and bypasses
				# our default...
				super((options || { }).merge({
					                             :methods => [:user_name, :portal_name]
				                             }))
			end

		end
	end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
kirgudu_base-0.0.21 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.19 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.18 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.17 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.16 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.15 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.14 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.13 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.12 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.11 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.10 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.9 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.8 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.7 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.6 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.5 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.4 app/models/kirgudu_base/common/portal_user.rb
kirgudu_base-0.0.3 app/models/kirgudu_base/common/portal_user.rb