Sha256: 75d6cc5455d21ccf690ccabfe8bda36cfb10c244ac408dac0db7813a5d9df2d2

Contents?: true

Size: 944 Bytes

Versions: 3

Compression:

Stored size: 944 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(&action)
        Time.use_zone(organization_time_zone, &action)
      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

3 entries across 3 versions & 1 rubygems

Version Path
decidim-core-0.27.9 app/controllers/concerns/decidim/use_organization_time_zone.rb
decidim-core-0.27.8 app/controllers/concerns/decidim/use_organization_time_zone.rb
decidim-core-0.27.7 app/controllers/concerns/decidim/use_organization_time_zone.rb