Sha256: 61a897b8ca20bddd9a20d7ccbd702fb801e684e3d93339684813716e610f2790

Contents?: true

Size: 1.95 KB

Versions: 21

Compression:

Stored size: 1.95 KB

Contents

module Admin
  class EffectiveEventTicketsDatatable < Effective::Datatable
    filters do
      scope :unarchived, label: "All"
      scope :archived
    end

    datatable do
      reorder :position

      col :updated_at, visible: false
      col :created_at, visible: false
      col :id, visible: false
      col :archived, visible: false

      col :event

      col :title
      col :category, visible: false

      col :early_bird_price, as: :price, visible: event&.early_bird_end_at.present?
      col :regular_price, as: :price
      col :member_price, as: :price

      col :waitlist
      col :capacity_available, visible: false
      col :capacity, label: 'Capacity Total', visible: false

      col :capacity_to_s, label: 'Capacity' do |ticket|
        if ticket.capacity.present? && ticket.waitlist?
          "#{ticket.capacity_available} remaining / #{ticket.capacity} total. #{ticket.waitlisted_event_registrants_count} waitlisted."
        elsif ticket.capacity.present?
          "#{ticket.capacity_available} remaining / #{ticket.capacity} total"
        end
      end

      col :category, visible: false

      col :registered_event_registrants_count, label: 'Registered' do |event|
        event.event_registrants.registered.unarchived.count
      end

      col :purchased_event_registrants_count, label: 'Deferred', visible: false do |event|
        event.event_registrants.deferred.unarchived.count
      end

      col :purchased_event_registrants_count, label: 'Purchased', visible: false do |event|
        event.event_registrants.purchased.unarchived.count
      end


      col :question1, visible: false
      col :question2, visible: false
      col :question3, visible: false

      actions_col
    end

    collection do
      scope = Effective::EventTicket.deep.all

      if attributes[:event_id]
        scope = scope.where(event: event)
      end

      scope
    end

    def event
      Effective::Event.find_by_id(attributes[:event_id])
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
effective_events-0.22.2 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.22.1 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.22.0 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.21.3 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.21.2 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.21.1 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.21.0 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.20.6 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.20.5 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.20.4 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.20.3 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.20.2 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.20.1 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.20.0 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.19.2 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.19.1 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.19.0 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.18.2 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.18.1 app/datatables/admin/effective_event_tickets_datatable.rb
effective_events-0.18.0 app/datatables/admin/effective_event_tickets_datatable.rb