Compare commits

...

3 Commits

Author SHA1 Message Date
fe00b91658 feat: add a tab for overdue tasks 2025-11-08 10:42:55 +01:00
64380dab6a feat: valid overdue filter 2025-11-08 10:42:47 +01:00
95b8536aa3 feat: add filter for overdue task 2025-11-08 10:42:36 +01:00
3 changed files with 5 additions and 1 deletions

View File

@@ -52,7 +52,7 @@ def index() -> str:
search_query = request.args.get('search', '') search_query = request.args.get('search', '')
# Validate filter type # Validate filter type
valid_filters = ['all', 'today', 'upcoming', 'active', 'completed'] valid_filters = ['all', 'today', 'upcoming', 'overdue', 'active', 'completed']
if filter_type not in valid_filters: if filter_type not in valid_filters:
filter_type = 'all' filter_type = 'all'

View File

@@ -28,6 +28,8 @@ def get_tasks(filter_type: str = 'all', search_query: Optional[str] = None) -> Q
query = query.filter(Task.due_date == date.today()) query = query.filter(Task.due_date == date.today())
elif filter_type == 'upcoming': elif filter_type == 'upcoming':
query = query.filter(Task.due_date > date.today()) query = query.filter(Task.due_date > date.today())
elif filter_type == 'overdue':
query = query.filter(Task.due_date < date.today(), Task.completed.is_(False))
elif filter_type == 'completed': elif filter_type == 'completed':
query = query.filter(Task.completed.is_(True)) query = query.filter(Task.completed.is_(True))
elif filter_type == 'active': elif filter_type == 'active':

View File

@@ -21,6 +21,8 @@
class="filter-tab {{ 'active' if filter_type == 'today' else '' }}">Today</a> class="filter-tab {{ 'active' if filter_type == 'today' else '' }}">Today</a>
<a href="{{ url_for('tasks.index', filter='upcoming') }}" <a href="{{ url_for('tasks.index', filter='upcoming') }}"
class="filter-tab {{ 'active' if filter_type == 'upcoming' else '' }}">Upcoming</a> class="filter-tab {{ 'active' if filter_type == 'upcoming' else '' }}">Upcoming</a>
<a href="{{ url_for('tasks.index', filter='overdue') }}"
class="filter-tab {{ 'active' if filter_type == 'overdue' else '' }}">Overdue</a>
<a href="{{ url_for('tasks.index', filter='active') }}" <a href="{{ url_for('tasks.index', filter='active') }}"
class="filter-tab {{ 'active' if filter_type == 'active' else '' }}">Active</a> class="filter-tab {{ 'active' if filter_type == 'active' else '' }}">Active</a>
<a href="{{ url_for('tasks.index', filter='completed') }}" <a href="{{ url_for('tasks.index', filter='completed') }}"