Sha256: a3c945de9c3ecfba1124582754accf13856a3ffc4471791a9948388350277dbf

Contents?: true

Size: 931 Bytes

Versions: 4

Compression:

Stored size: 931 Bytes

Contents

# frozen_string_literal: true

require "active_support/concern"

module Decidim
  # When included in a controller this concern will wrap any action
  # in the context of the organization configured time zone
  module UseOrganizationTimeZone
    extend ActiveSupport::Concern

    included do
      around_action :use_organization_time_zone
      helper_method :organization_time_zone

      # Executes a block of code in the context of the the organization's time zone
      #
      # &action - a block of code to be wrapped around the time zone
      #
      # Returns nothing.
      def use_organization_time_zone(&)
        Time.use_zone(organization_time_zone, &)
      end

      # The current time zone from the organization. Available as a helper for the views.
      #
      # Returns a String.
      def organization_time_zone
        @organization_time_zone ||= current_organization.time_zone
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
decidim-core-0.28.1 app/controllers/concerns/decidim/use_organization_time_zone.rb
decidim-core-0.28.0 app/controllers/concerns/decidim/use_organization_time_zone.rb
decidim-core-0.28.0.rc5 app/controllers/concerns/decidim/use_organization_time_zone.rb
decidim-core-0.28.0.rc4 app/controllers/concerns/decidim/use_organization_time_zone.rb