Package: django-s-tasks-api
django-s-tasks-apidjango-s-tasks-apiis a simple task and group task rest api of django.InstallationTo install django-s-tasks-api like this:pipinstalldjango-s-tasks-apiConfigurationWe need to hookdjango-s-tasks-apiinto our project.Put s_tasks_api into your INSTALLED_APPS at settings module:INSTALLED_APPS = (
    ...,
    'rest_framework',
    'django_filters',
    's_tasks_api',
)Creates_tasks_apidatabase table and load default data by running:pythonmanage.pymigrate
pythonmanage.pyloaddatas_tasks_api/fixtures/default_task_status_data.jsonAdd url patterns at project.urls module:from s_tasks_api import urls as s_tasks_api_urls

urlpatterns = [
    ...,
    path(r'api/tasks/', include(s_tasks_api_urls))
]APITask StatusList task statusShow task status list.method: GET
url: /api/tasks/status/
name: s-tasks:status-list
view: s_tasks_api.views.TaskStatusViewSetDetail task statusShow task status detail.method: GET
url: /api/tasks/status/<pk>
name: s-tasks:status-detail
view: s_tasks_api.views.TaskStatusViewSetAdd task statusAdd task status.
Only admin user can use this.method: POST
url: /api/tasks/status/
parameters: 
{
    'value': 'new status'
}
name: s-tasks:status-list
view: s_tasks_api.views.TaskStatusViewSetUpdate task statusUpdate task status.
Only admin can use this.method: GET
url: /api/tasks/status/<pk>
parameters:
{
    'value': 'changed'
}
name: s-tasks:status-detail
view: s_tasks_api.views.TaskStatusViewSetDelete task statusDelete task status.
Only admin can use this.method: GET
url: /api/tasks/status/<pk>
name: s-tasks:status-detail
view: s_tasks_api.views.TaskStatusViewSetTask TagsThis is almost same as Task Status API, so just change status to tags.
But Add Tags is allowed to login user not only admin.TasksList tasksShow tasks list which are created by user or assigned.
This is filterable.method: GET
url: /api/tasks/
filterable_parameters: [
    'title' (contains),
    'detail' (contains),
    'due_date' (less than or equals),
    'completed',
    'status',
    'tag',
]
name: s-tasks:tasks-list
view: s_tasks_api.views.TaskViewSetDetail tasksShow tasks detail.method: GET
url: /api/tasks/<pk>/
name: s-tasks:tasks-detail
view: s_tasks_api.views.TaskViewSetAdd tasksAdd users task.method: POST
url: /api/tasks/
parameters: 
{
    'title': 'new_task', 
    'detail': 'task detail',
    'due_date': '2099-12-03', 
    'status': 2, 
    'tag': 1
}
name: s-tasks:tasks-list
view: s_tasks_api.views.TaskViewSetChange taskChange tasks detail.method: PUT/PATCH
url: /api/tasks/<pk>/
parameters: 
{
    'title': 'changed', 'detail': 'changed detail',
    'due_date': '2100-10-10', 'status': 3, 'tag': 3
}
name: s-tasks:tasks-detail
view: s_tasks_api.views.TaskViewSetComplete/Un Complete taskComplete or Un Complete task.method: PATCH
url: /api/tasks/<pk>/complete/   or   /api/tasks/<pk>/un_complete/
parameters: {}
name: s-tasks:tasks-complete   or   s-tasks:tasks-un-complete
view: s_tasks_api.views.TaskViewSetGroup TasksList group tasksShow tasks list in all user's group.
This is filterable.method: GET
url: /api/tasks/group/
filterable_parameters: [
    'title' (contains),
    'detail' (contains),
    'due_date' (less than or equals),
    'completed',
    'status',
    'tag',
    'created_by',
    'assignee',
    'group',
]
name: s-tasks:group-tasks-list
view: s_tasks_api.views.GroupTaskViewSetDetail group tasksShow group tasks detail.method: GET
url: /api/tasks/group/<pk>/
name: s-tasks:group-tasks-detail
view: s_tasks_api.views.GroupTaskViewSetAdd group taskAdd group task.method: POST
url: /api/tasks/create_group_task/
parameters: 
{
    'title': 'new_task', 
    'detail': 'task detail',
    'due_date': '2099-12-03', 
    'status': 2, 
    'tag': 1,
    'group': 2, 
    'assignee': 2,
    'lock_level': 0, 
    'assign_lock_level': 0
}
name: s-tasks:tasks-create-group-task
view: s_tasks_api.views.TaskViewSetMove task from user's to group'sMove task from user's to group'smethod: POST
url: /api/tasks/group/
parameters: 
{
    'task_id': 1,
    'group': 2, 
    'assignee': 2,
    'lock_level': 0, 
    'assign_lock_level': 0
}
name: s-tasks:group-tasks-list
view: s_tasks_api.views.GroupTaskViewSetUpdate group taskUpdate group task.
Permission is depends on lock_level and assign_lock_level.method: PUT/PATCH
url: /api/tasks/group/<pk>/
parameters: 
{
    'title': 'changed', 
    'detail': 'changed detail',
    'due_date': '2100-10-10', 
    'status': 3, 
    'tag': 3,
    'assignee': 2,
    'lock_level': 0, 
    'assign_lock_level': 0
}
name: s-tasks:group-tasks-detail
view: s_tasks_api.views.GroupTaskViewSetComplete/Un Complete group taskComplete and Un Complete group task.
Permission is depends on lock_level.method: PATCH
url: /api/group/tasks/<pk>/complete/   or   /api/tasks/group/<pk>/un_complete/
parameters: {}
name: s-tasks:group-tasks-complete   or   s-tasks:group-tasks-un-complete
view: s_tasks_api.views.GroupTaskViewSetDelete group taskDelete group task with task.method: DELETE
url: /api/tasks/group/<pk>/
name s-tasks:group-tasks-detail
view: s_tasks_api.views.GroupTaskViewSetRemove group task to user's taskRemove group task to user's taskmethod: DELETE
url: /api/tasks/group/<pk>/remove_to_my_task/
name s-tasks:group-tasks-remove-to-my-task
view: s_tasks_api.views.GroupTaskViewSet