Sha256: bcac28739abc8b79dcf54f41ff4a3d89ade9e605ea865a08c93ab712ccfc9457

Contents?: true

Size: 1.8 KB

Versions: 14

Compression:

Stored size: 1.8 KB

Contents

# frozen_string_literal: true

class Tramway::Event::Events::Show::EventDecorator < ::Tramway::Core::ApplicationDecorator
  class << self
    def collections
      [:all]
    end
  end

  delegate :title, to: :object
  delegate :description, to: :object
  delegate :participant_form_fields, to: :object
  delegate :sections, to: :object
  delegate :partakings, to: :object
  delegate :request_collecting_state, to: :object

  if defined?(::Tramway::Partner)
    ::Tramway::Partner::Partnership.partnership_type.values.each do |partnership_type|
      decorate_association partnership_type.to_s.pluralize
    end
  end

  def background
    object.photo
  end

  def duration
    return unless object.begin_date.present? || object.end_date.present?

    if object.begin_date.to_date == object.end_date.to_date
      I18n.l(object.begin_date, format: '%d %B %Y').to_s
    elsif object.begin_date.month == object.end_date.month
      "#{I18n.t('date.from')} #{I18n.l(object.begin_date, format: '%d')} #{I18n.t('date.to')} #{I18n.l(object.end_date, format: '%d %B %Y')}"
    else
      "#{I18n.t('date.from')} #{I18n.l(object.begin_date, format: '%d %B %Y')} #{I18n.t('date.to')} #{I18n.l(object.end_date, format: '%d %B %Y')}"
    end
  end

  def partners
    if defined?(::Tramway::Partner)
      @partners ||= ::Tramway::Partner::Partnership.partnership_type.values.reduce({}) do |hash, partnership_type|
        hash.merge! partnership_type => (object.send(partnership_type.to_s.pluralize).active.map do |partner|
          Tramway::Partner::OrganizationFeatureDecorator.decorate partner
        end)
      end
    end
  end

  alias tagline duration

  def responsible_person
    {
      phone: (object.creator.phone if object.creator&.phone&.present?),
      email: (object.creator.email if object.creator&.email&.present?)
    }
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
tramway-event-1.11.4 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.11.2.1 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.11.2 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.11.1 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.11.0.1 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.11 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.10.2 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.10.1 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.10.0.2 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.10.0.1 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.10 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.9.31.2 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.9.31.1 app/decorators/tramway/event/events/show/event_decorator.rb
tramway-event-1.9.31 app/decorators/tramway/event/events/show/event_decorator.rb