Sha256: 6d6b6b2476258ca3e72ad2399a55b66ecf2da9397517a607273c17fd8ab7d7f3

Contents?: true

Size: 932 Bytes

Versions: 4

Compression:

Stored size: 932 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.5 app/controllers/concerns/decidim/use_organization_time_zone.rb
decidim-core-0.28.4 app/controllers/concerns/decidim/use_organization_time_zone.rb
decidim-core-0.28.3 app/controllers/concerns/decidim/use_organization_time_zone.rb
decidim-core-0.28.2 app/controllers/concerns/decidim/use_organization_time_zone.rb