在 Redmine 的甘特圖(gatt chart)預設是 年 / 年週 來顯示
由於業務需求,希望客制加上 月/日 的每一天來方便觀看,並且 Redmine 預設的甘特圖視角太大了,希望每次預設顯示為 “一個月”
一樣此篇適用於 Redmine 2.6 版本
Redmine 替甘特圖加入每月的每一天
修改 show.html.erb,這是甘特圖顯示的 code。
$ vim /usr/share/nginx/html/redmine/app/views/gantts/show.html.erb
調整以下 Source code
@@ -237,6 +237,9 @@
left = 0
height = g_height + header_height - 1
wday = @gantt.date_from.cwday
+
+ month_f = @gantt.date_from
+ mday = month_f.day
%>
<% (@gantt.date_to - @gantt.date_from + 1).to_i.times do %>
<%
@@ -251,12 +254,18 @@
clss << " nwday" if @gantt.non_working_week_days.include?(wday)
%>
<%= content_tag(:div, :style => style, :class => clss) do %>
- <%= day_letter(wday) %>
+ <%= mday %> <!--%= day_letter(wday) % modified by tattoo-->
<% end %>
<%
left = left + width + 1
wday = wday + 1
wday = 1 if wday > 7
+
+ mday += 1
+ if mday > Date.new(month_f.year, month_f.month, -1).day
+ mday = 1
+ month_f = month_f >> 1
+ end
%>
<% end %>
<% end %>
– 代表移除此行 code
+ 代表加入的 code,其餘參考位置
重啟服務
$ service thin restart

Redmine 修改甘特圖視角
由 Redmine 預設的 Zoom in / out 視角為參考,找到喜歡的視角為 zoom 4。註1
$ vim /usr/share/nginx/html/redmine/app/views/gantts/show.html.erb
修改 show.html.erb :71
<%= link_to_function l(:button_apply), '$("#query_form").submit()',
:class => 'icon icon-checked' %>
- <%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 },
+ <%= link_to l(:button_clear), { :project_id => @project, :set_filter => 4 },
:class => 'icon icon-reload' %>
將預設 set_filter 改為 4,視角就會改變囉
重啟服務
$ service thin restart
註1:甘特圖視角,在放大 / 縮小的過程中,你可以從網址找到 zoom in / out 的數值
http://……./issues/gantt?month=9&months=6&year=2015&zoom=4
參考資料:
Change the week days to month days in Gantt view


dear 沙先生您好!
您的文章非常的實戰,實用!對成是開發者可以說長得有幫助!
有一個小問題想跟您請教!
最近在改redmine的程式!怎麼改都改不上去!
已經在本機Redmine 的 developement mode 下確認我改的程式是work的了!
但是換上正式機(production mode)後Redmine卻好完全不更新程式依樣!
完全不鳥我! 即使重啟阿帕契後也一樣照跑舊Code!彷彿沒修改過一樣!
我也試過bundle exec rake tmp:cache:clear tmp:sessions:clear RAILS_ENV=production 清掉cache也沒用 想請教您一下
sincerely Josh
Dear Josh
我想你的問題看起來像是沒有生效修改後的 source code,想請您嘗試以下幾種方式
1. kill掉所有 rails & thin 的服務進程,重新啟動 rails 使用 production
ruby script/rails server webrick -e production
2. 確認你 apache 連的 thin socket 不是舊有的 socket
3. 如果以上方式都無效,請查看 redmine 的 log 啟動時的參數是否正確 %redmine_root%/log/production.log