feat: group daily focus items by project with "General" fallback
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -12,45 +12,49 @@
|
||||
<span class="text-sm" style="font-weight:600">{{ focus_date }}</span>
|
||||
</div>
|
||||
|
||||
<!-- Focus items -->
|
||||
<!-- Focus items grouped by project -->
|
||||
{% if items %}
|
||||
<div class="card">
|
||||
{% for item in items %}
|
||||
<div class="focus-item {{ 'completed' if item.completed }}">
|
||||
{% with reorder_url="/focus/reorder", item_id=item.id, extra_fields={"focus_date": focus_date|string} %}
|
||||
{% include 'partials/reorder_arrows.html' %}
|
||||
{% endwith %}
|
||||
<form action="/focus/{{ item.id }}/toggle" method="post" style="display:inline">
|
||||
<div class="row-check">
|
||||
<input type="checkbox" id="f-{{ item.id }}" {{ 'checked' if item.completed }} onchange="this.form.submit()">
|
||||
<label for="f-{{ item.id }}"></label>
|
||||
</div>
|
||||
</form>
|
||||
{% if item.task_id %}
|
||||
<span class="priority-dot priority-{{ item.priority }}"></span>
|
||||
{% if item.title %}
|
||||
<a href="/tasks/{{ item.task_id }}" class="focus-title">{{ item.title }}</a>
|
||||
{% else %}
|
||||
<span class="focus-title" style="color:var(--muted)">[Deleted]</span>
|
||||
{% for group in grouped_items %}
|
||||
<div class="card mb-3">
|
||||
<div class="card-header" style="padding:6px 12px;">
|
||||
<h3 class="card-title" style="font-size:0.85rem;margin:0;">{{ group.label }}</h3>
|
||||
</div>
|
||||
{% for item in group.rows %}
|
||||
<div class="focus-item {{ 'completed' if item.completed }}">
|
||||
{% with reorder_url="/focus/reorder", item_id=item.id, extra_fields={"focus_date": focus_date|string} %}
|
||||
{% include 'partials/reorder_arrows.html' %}
|
||||
{% endwith %}
|
||||
<form action="/focus/{{ item.id }}/toggle" method="post" style="display:inline">
|
||||
<div class="row-check">
|
||||
<input type="checkbox" id="f-{{ item.id }}" {{ 'checked' if item.completed }} onchange="this.form.submit()">
|
||||
<label for="f-{{ item.id }}"></label>
|
||||
</div>
|
||||
</form>
|
||||
{% if item.task_id %}
|
||||
<span class="priority-dot priority-{{ item.priority }}"></span>
|
||||
{% if item.title %}
|
||||
<a href="/tasks/{{ item.task_id }}" class="focus-title">{{ item.title }}</a>
|
||||
{% else %}
|
||||
<span class="focus-title" style="color:var(--muted)">[Deleted]</span>
|
||||
{% endif %}
|
||||
{% if item.estimated_minutes %}<span class="focus-meta">~{{ item.estimated_minutes }}min</span>{% endif %}
|
||||
{% if item.due_date %}<span class="focus-meta">{{ item.due_date }}</span>{% endif %}
|
||||
{% elif item.list_item_id %}
|
||||
<span style="color:var(--muted);font-size:0.85rem;margin-right:4px">☰</span>
|
||||
{% if item.list_item_content %}
|
||||
<a href="/lists/{{ item.list_item_list_id }}" class="focus-title">{{ item.list_item_content }}</a>
|
||||
{% else %}
|
||||
<span class="focus-title" style="color:var(--muted)">[Deleted]</span>
|
||||
{% endif %}
|
||||
{% if item.list_name %}<span class="row-tag" style="background:var(--purple);color:#fff">{{ item.list_name }}</span>{% endif %}
|
||||
{% endif %}
|
||||
{% if item.project_name %}<span class="row-tag">{{ item.project_name }}</span>{% endif %}
|
||||
{% if item.estimated_minutes %}<span class="focus-meta">~{{ item.estimated_minutes }}min</span>{% endif %}
|
||||
{% if item.due_date %}<span class="focus-meta">{{ item.due_date }}</span>{% endif %}
|
||||
{% elif item.list_item_id %}
|
||||
<span style="color:var(--muted);font-size:0.85rem;margin-right:4px">☰</span>
|
||||
{% if item.list_item_content %}
|
||||
<a href="/lists/{{ item.list_item_list_id }}" class="focus-title">{{ item.list_item_content }}</a>
|
||||
{% else %}
|
||||
<span class="focus-title" style="color:var(--muted)">[Deleted]</span>
|
||||
{% endif %}
|
||||
{% if item.list_name %}<span class="row-tag" style="background:var(--purple);color:#fff">{{ item.list_name }}</span>{% endif %}
|
||||
{% endif %}
|
||||
<form action="/focus/{{ item.id }}/remove" method="post" style="display:inline">
|
||||
<button class="btn btn-ghost btn-xs" style="color:var(--red)" title="Remove from focus">×</button>
|
||||
</form>
|
||||
<form action="/focus/{{ item.id }}/remove" method="post" style="display:inline">
|
||||
<button class="btn btn-ghost btn-xs" style="color:var(--red)" title="Remove from focus">×</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="empty-state mb-4"><div class="empty-state-text">No focus items for this day</div></div>
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user