Help us understand the problem. What is going on with this article?

redmineのガントチャートの開始月がイケていないので直してみた

redmineのガントチャートの開始月は、当月開始なので、月初めは前月のタスクが見えなくて使いづらい。なので、開始月を前月からのスタートにするように設定を変更します。

下記サイトを参考にしました。
https://blog.kakakikikeke.com/2012/09/redmine.html

ソースコードの変更

変更するファイルは/usr/src/redmine/lib/redmine/helpers/gantt.rbです。
initialize関数の中のelseが変更対象で、オプションが特に指定されていない(デフォルトの状態)のときは現在の月と年を取得しています。

      def initialize(options={})
        options = options.dup
        if options[:year] && options[:year].to_i >0
          @year_from = options[:year].to_i
          if options[:month] && options[:month].to_i >=1 && options[:month].to_i <= 12
            @month_from = options[:month].to_i
          else
            @month_from = 1
          end
        else
          @month_from ||= User.current.today.month
          @year_from ||= User.current.today.year
        end

この記述を、下記の通り修正します。@month_fromの値を-1することで、前月からの開始月の表示になります。また、1月にこの処理を実行すると、@month_fromの値が0になってしまうので、12に修正のうえ、@year_fromを前年(-1)にします。

      def initialize(options={})
        options = options.dup
        if options[:year] && options[:year].to_i >0
          @year_from = options[:year].to_i
          if options[:month] && options[:month].to_i >=1 && options[:month].to_i <= 12
            @month_from = options[:month].to_i
          else
            @month_from = 1
          end
        else
          @month_from ||= User.current.today.month - 1
          @year_from ||= User.current.today.year
          if @month_from == 0
            @month_from = 12
            @year_from ||= User.current.today.year
          end
#          @month_from ||= User.current.today.month
#          @year_from ||= User.current.today.year
        end

参考文献

asubee
お仕事でサーバ&インフラエンジニアや、アーキテクト的なお仕事をしつつ、趣味でDockerとかLinuxと戯れています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした