/
_calendar.html.erb
44 lines (44 loc) · 1.54 KB
/
_calendar.html.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<%
schedule_entries_by_day = @entries.group_by {|entry| entry.date}
%>
<table class="cal schedule_entry_cal">
<thead>
<tr>
<% (calendar.startdt..calendar.enddt).each do |day| %>
<th><%= day_name(day.wday) %>, <br/><%= month_name(day.month) %> <%= day.day %></th>
<% end %>
</tr>
</thead>
<tbody>
<tr>
<% (calendar.startdt..calendar.enddt).each do |day| %>
<td class="even<%= ' today' if Date.today == day %>">
<ul>
<% if !schedule_entries_by_day[day].nil? %>
<% schedule_entries_by_day[day].sort.each do |entry| %>
<%= render :partial => 'schedules/schedule_entry', :locals => {:entry => entry} %>
<% end %>
<% end %>
<% @availabilities[day].each do |user_id, hours| %>
<% user = User.find(user_id) %>
<%= render :partial => 'schedules/availability', :locals => {:user => user, :hours => hours, :day => day } %>
<% end unless @availabilities.nil? || @availabilities.empty? %>
</ul>
</td>
<% end %>
</tr>
</tbody>
<tfoot>
<tr>
<% entries_by_day = schedule_entries_by_day %>
<% (calendar.startdt..calendar.enddt).each do |day| %>
<th>
<% sum = entries_by_day[day].nil? ? 0 : entries_by_day[day].collect(&:hours).sum %>
<%= sum if sum > 0 %>
<% available_sum = @availabilities[day].nil? ? 0 : @availabilities[day].collect { |user, hours| hours }.sum %>
<%= "<span class='schedule_available'>(#{available_sum.to_s} #{l(:label_schedules_available).downcase})</em>" if available_sum > 0 %>
</th>
<% end %>
</tr>
</tfoot>
</table>