在 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