Sha256: 5d1b66862cd42027c7ffcd59445768df922291ac99457569f7b65b3fa92d5235

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module Decidim
  #
  # Decorator for notifications in mail digest
  #
  class NotificationToMailerPresenter < SimpleDelegator
    include Decidim::TranslatableAttributes

    EXTENDED_NOTIFICATIONS_CLASSES = [
      "Decidim::Comments::CommentCreatedEvent"
    ].freeze

    delegate :url_helpers, to: "Decidim::Core::Engine.routes"
    delegate :resource_title, to: :event
    delegate :resource_url, to: :event
    delegate :email_intro, to: :event
    delegate :resource_path, to: :event
    delegate :safe_resource_text, to: :event

    def date_time
      if frequency == :daily
        created_at.strftime("%H:%M")
      else
        I18n.l(created_at, format: :decidim_short)
      end
    end

    def show_extended_information?
      EXTENDED_NOTIFICATIONS_CLASSES.include?(event_class)
    end

    private

    def event
      @event ||= event_class.constantize.new(
        resource: resource,
        user: user,
        user_role: user_role,
        event_name: event_name,
        extra: extra
      )
    end

    def frequency
      @frequency ||= user.notifications_sending_frequency
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
decidim-core-0.27.9 app/presenters/decidim/notification_to_mailer_presenter.rb
decidim-core-0.27.8 app/presenters/decidim/notification_to_mailer_presenter.rb
decidim-core-0.27.7 app/presenters/decidim/notification_to_mailer_presenter.rb
decidim-core-0.27.6 app/presenters/decidim/notification_to_mailer_presenter.rb