Sha256: da3a98f101d17ffb5b3e13cbe94c6c7a083a140b43f786a62a4a359b7cb1f24c
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
# -*- encoding : utf-8 -*- require 'search/conditions/abstract' module RademadeAdmin module Search module Conditions class RelatedList < Abstract attr_reader :item protected def initialize(item, params, data_items) @item = item super(params, data_items) end def where where_conditions = RademadeAdmin::Search::Part::Where.new(:and) where_conditions.add(:id, related_item_ids) @params.slice(*@data_items.origin_fields).each do |field, value| where_conditions.add(field, value) end where_conditions end def order order_conditions = RademadeAdmin::Search::Part::Order.new field = @params[:sort] || default_order_field order_conditions.add(field, @params[:direction]) order_conditions end def page @params[:page] || 1 end def per_page @params[:paginate] || 20 end private def default_order_field @data_items.has_field?(:position) ? :position : :id end def related_item_ids related_items = @item.send(params[:relation]) related_items.map do |related_item| related_item.id.to_s end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rademade_admin-0.1.0 | app/services/search/conditions/related_list.rb |