This commit is contained in:
gsinghpal
2026-03-17 13:32:08 -04:00
parent e56974d46f
commit 595dccc17d
11 changed files with 159 additions and 28 deletions

View File

@@ -85,6 +85,8 @@
t-att-data-checked-in="'true' if is_checked_in else 'false'"
t-att-data-check-in-time="current_attendance.check_in.isoformat() if current_attendance and current_attendance.check_in else ''"
t-att-data-location-name="current_attendance.x_fclk_location_id.name if current_attendance and current_attendance.x_fclk_location_id else ''"
t-att-data-location-address="current_attendance.x_fclk_location_id.address if current_attendance and current_attendance.x_fclk_location_id else ''"
t-att-data-location-id="current_attendance.x_fclk_location_id.id if current_attendance and current_attendance.x_fclk_location_id else '0'"
t-att-data-enable-sounds="'true' if enable_sounds else 'false'"
t-att-data-google-maps-key="google_maps_key or ''">
@@ -222,27 +224,27 @@
<a href="/my/clock/timesheets" class="fclk-view-all">View All</a>
</div>
<div class="fclk-recent-list" id="fclk-recent-list">
<t t-foreach="recent_attendances" t-as="att">
<t t-foreach="recent_attendances" t-as="entry">
<div class="fclk-recent-item">
<div class="fclk-recent-date">
<div class="fclk-recent-day-name">
<t t-esc="context_timestamp(att.check_in).strftime('%a')"/>
<t t-esc="entry['day_name']"/>
</div>
<div class="fclk-recent-day-num">
<t t-esc="context_timestamp(att.check_in).strftime('%d')"/>
<t t-esc="entry['day_num']"/>
</div>
</div>
<div class="fclk-recent-info">
<div class="fclk-recent-location">
<t t-esc="att.x_fclk_location_id.name or 'Unknown'"/>
<t t-esc="entry['att'].x_fclk_location_id.name or 'Unknown'"/>
</div>
<div class="fclk-recent-times">
<t t-esc="context_timestamp(att.check_in).strftime('%I:%M %p')"/>
- <t t-esc="context_timestamp(att.check_out).strftime('%I:%M %p') if att.check_out else '--'"/>
<t t-esc="entry['time_in']"/>
- <t t-esc="entry['time_out']"/>
</div>
</div>
<div class="fclk-recent-hours">
<t t-esc="'%.1f' % (att.x_fclk_net_hours or 0)"/>h
<t t-esc="'%.1f' % (entry['att'].x_fclk_net_hours or 0)"/>h
</div>
</div>
</t>

View File

@@ -66,19 +66,19 @@
</tr>
</thead>
<tbody>
<t t-foreach="attendances" t-as="att">
<t t-foreach="attendances" t-as="entry">
<tr>
<td>
<strong><t t-esc="context_timestamp(att.check_in).strftime('%a')"/></strong>
<strong><t t-esc="entry['day_name']"/></strong>
<span style="color:#9ca3af; margin-left:4px;">
<t t-esc="context_timestamp(att.check_in).strftime('%b %d')"/>
<t t-esc="entry['day_date']"/>
</span>
</td>
<td><t t-esc="context_timestamp(att.check_in).strftime('%I:%M %p')"/></td>
<td><t t-esc="entry['time_in']"/></td>
<td>
<t t-if="att.check_out">
<t t-esc="context_timestamp(att.check_out).strftime('%I:%M %p')"/>
<t t-if="att.x_fclk_auto_clocked_out">
<t t-if="entry['att'].check_out">
<t t-esc="entry['time_out']"/>
<t t-if="entry['att'].x_fclk_auto_clocked_out">
<span class="fclk-ts-badge-auto">AUTO</span>
</t>
</t>
@@ -86,18 +86,18 @@
<span style="color:#f59e0b;">Active</span>
</t>
</td>
<td><t t-esc="int(att.x_fclk_break_minutes or 0)"/>m</td>
<td><t t-esc="int(entry['att'].x_fclk_break_minutes or 0)"/>m</td>
<td style="font-weight:600; color:#10B981;">
<t t-esc="'%.1f' % (att.x_fclk_net_hours or 0)"/>h
<t t-esc="'%.1f' % (entry['att'].x_fclk_net_hours or 0)"/>h
</td>
<td style="color:#9ca3af; font-size:12px;">
<t t-esc="att.x_fclk_location_id.name or ''"/>
<t t-esc="entry['att'].x_fclk_location_id.name or ''"/>
</td>
<td>
<a href="#" class="fclk-correction-link"
t-att-data-att-id="att.id"
t-att-data-check-in="att.check_in.strftime('%Y-%m-%d %H:%M:%S') if att.check_in else ''"
t-att-data-check-out="att.check_out.strftime('%Y-%m-%d %H:%M:%S') if att.check_out else ''"
t-att-data-att-id="entry['att'].id"
t-att-data-check-in="entry['att'].check_in.strftime('%Y-%m-%d %H:%M:%S') if entry['att'].check_in else ''"
t-att-data-check-out="entry['att'].check_out.strftime('%Y-%m-%d %H:%M:%S') if entry['att'].check_out else ''"
style="font-size:11px; color:#6b7280;">
Correct
</a>