Redmineのカレンダーで祝日を表示する
2013-01-30追記
本体のコードを修正しないで済むようにプラグイン化しました。 記事はこちら↓
基本的には以下のサイトと同じですが、祝日名を表示したいので、祝日判定にholidaysを使います。
カレンダー表示時のクラス追加
holidaysのgemを入れます(redmine_backlogsプラグインが使うものでOK)
$ gem install holidays
カレンダー表示を書き換えて、祝日のとき(ついでに土日も)「holiday」クラスを追加します。
diff --git a/app/views/common/_calendar.html.erb b/app/views/common/_calendar.html.erb index 7951b68..6fafcae 100644 --- a/app/views/common/_calendar.html.erb +++ b/app/views/common/_calendar.html.erb @@ -7,8 +7,11 @@ <% day = calendar.startdt while day <= calendar.enddt %> <%= ("<td class='week-number' title='#{ l(:label_week) }'>#{(day+(11-day.cwday)%7).cweek}</td>".html_safe) if day.cwday == calendar.first_wday %> -<td class="<%= day.month==calendar.month ? 'even' : 'odd' %><%= ' today' if Date.today == day %>"> -<p class="day-num"><%= day.day %></p> +<td class="<%= day.month==calendar.month ? 'even' : 'odd' %><%= ' today' if Date.today == day %><%= ' holiday' if day.holiday?(:jp) || day.wday == 0 || day.wday == 6 %>"> +<p class="day-num"> +<% if day.holiday?(:jp) %><span style="float:left; padding: 1px;"><%= day.holidays(:jp).first[:name] %></span><% end %> +<%= day.day %> +</p> <% calendar.events_on(day).each do |i| %> <% if i.is_a? Issue %> <div class="<%= i.css_classes %> <%= 'starting' if day == i.start_date %> <%= 'ending' if day == i.due_date %> tooltip">
css修正
application.css など適当なCSSに、holidayクラスを追加します。
/* holiday */ table.cal td.odd.holiday { background-color: #e3e4e5; } table.cal td.even.holiday { background-color: #ff9999; }