coins-demo/todo/urls.py
multun c7ad961ef3 Implement mail tracker system
* Implement mail tracking

Signed-off-by: Victor "multun" Collod <victor.collod@prologin.org>

* Implement task merging

* Add a mail tracker title format pattern

* Autocomplete task names

* Fix comment display

* Track notification answers

* Add a socket timeout for the mail worker

A mail worker is a long running application. And sometimes, the IMAP server
just hangs for hours for no apparent reason. imaplib doesn't enable setting
a timeout, and setting it globally seems fine.

* Only validate the merge form when submitted

* Redirect to the new form when merging

* Prettier task edit UI

* Make task merging optional

* Test mail tracking

* Update documentation for mail tracking

* Update dependencies

* Add the TODO_COMMENT_CLASSES setting

* Fix dependencies install order

* Remove debug leftovers, improve documentation

* Fail on missing from_address
2019-03-11 00:04:19 -07:00

86 lines
1.9 KiB
Python

from django.urls import path
from todo import views
from todo.features import HAS_TASK_MERGE
app_name = 'todo'
from django.conf import settings
urlpatterns = [
path(
'',
views.list_lists,
name="lists"),
# View reorder_tasks is only called by JQuery for drag/drop task ordering.
path(
'reorder_tasks/',
views.reorder_tasks,
name="reorder_tasks"),
# Allow users to post tasks from outside django-todo (e.g. for filing tickets - see docs)
path(
'ticket/add/',
views.external_add,
name="external_add"),
# Three paths into `list_detail` view
path(
'mine/',
views.list_detail,
{'list_slug': 'mine'},
name="mine"),
path(
'<int:list_id>/<str:list_slug>/completed/',
views.list_detail,
{'view_completed': True},
name='list_detail_completed'),
path(
'<int:list_id>/<str:list_slug>/',
views.list_detail,
name='list_detail'),
path(
'<int:list_id>/<str:list_slug>/delete/',
views.del_list,
name="del_list"),
path(
'add_list/',
views.add_list,
name="add_list"),
path(
'task/<int:task_id>/',
views.task_detail,
name='task_detail'),
]
if HAS_TASK_MERGE:
# ensure autocomplete is optional
from todo.views.task_autocomplete import TaskAutocomplete
urlpatterns.append(
path(
'task/<int:task_id>/autocomplete/',
TaskAutocomplete.as_view(),
name='task_autocomplete')
)
urlpatterns.extend([
path(
'toggle_done/<int:task_id>/',
views.toggle_done,
name='task_toggle_done'),
path(
'delete/<int:task_id>/',
views.delete_task,
name='delete_task'),
path(
'search/',
views.search,
name="search"),
])