Files
KeepItGoingServer/tasks/urls.py
T
Keith SmithandClaude Sonnet 4.5 6a0b35c39c Initial commit: KeepItGoing task management server
Features:
- Django-based REST API with web interface
- Task management with tags, priorities, and due dates
- Time tracking with start/stop timers
- Subtasks support
- Task filtering (all, today, upcoming, overdue, completed)
- Tag-based organization with color coding
- Sorting by due date and priority
- Auto-assign tags when filtering
- Responsive 3-pane layout (sidebar, task list, detail panel)
- Task sharing between users
- Mobile-responsive design with dark mode support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 17:41:29 -07:00

40 lines
2.3 KiB
Python

"""
Task URLs for KeepItGoing.
"""
from django.urls import path
from . import views
# API URLs (to be included under /api/tasks/)
api_urlpatterns = [
path('', views.TaskListCreateAPIView.as_view(), name='api-task-list'),
path('<uuid:pk>/', views.TaskDetailAPIView.as_view(), name='api-task-detail'),
path('tags/', views.TagListCreateAPIView.as_view(), name='api-tag-list'),
path('tags/<uuid:pk>/', views.TagDetailAPIView.as_view(), name='api-tag-detail'),
path('time-entries/', views.TimeEntryListCreateAPIView.as_view(), name='api-time-entry-list'),
path('time-entries/<uuid:pk>/', views.TimeEntryDetailAPIView.as_view(), name='api-time-entry-detail'),
path('<uuid:task_id>/start-timer/', views.start_timer, name='api-start-timer'),
path('time-entries/<uuid:entry_id>/stop/', views.stop_timer, name='api-stop-timer'),
path('shares/', views.TaskShareListCreateAPIView.as_view(), name='api-share-list'),
path('shares/<uuid:pk>/', views.TaskShareDeleteAPIView.as_view(), name='api-share-delete'),
]
# Web URLs (to be included at root level)
web_urlpatterns = [
path('', views.DashboardView.as_view(), name='dashboard'),
path('tasks/', views.TaskListView.as_view(), name='task-list'),
path('tasks/new/', views.TaskCreateView.as_view(), name='task-create'),
path('tasks/<uuid:task_id>/', views.TaskDetailView.as_view(), name='task-detail'),
path('tasks/<uuid:task_id>/detail-partial/', views.task_detail_partial, name='task-detail-partial'),
path('tasks/quick-add/', views.task_quick_add, name='task-quick-add'),
path('tasks/<uuid:task_id>/toggle/', views.task_toggle_status, name='task-toggle'),
path('tasks/<uuid:task_id>/delete/', views.task_delete, name='task-delete'),
path('tasks/<uuid:task_id>/subtask/', views.subtask_create, name='subtask-create'),
path('tasks/<uuid:task_id>/timer/start/', views.web_timer_start, name='timer-start'),
path('tasks/<uuid:task_id>/timer/stop/', views.web_timer_stop, name='timer-stop'),
path('tags/', views.TagListView.as_view(), name='tag-list'),
path('tags/new/', views.TagListView.as_view(), name='tag-create'),
path('tags/<uuid:tag_id>/', views.TagDetailView.as_view(), name='tag-detail'),
path('tags/<uuid:tag_id>/delete/', views.tag_delete, name='tag-delete'),
]