Metadata-Version: 2.1
Name: django-s-tasks-api
Version: 1.0.0
Summary: django-s-tasks-api is a simple tasks rest api of django.
Home-page: https://github.com/Saknowman/django-s-tasks-api
Author: Yuki Sakumoto
Author-email: snowman.sucking@gmail.com
License: MIT
Description: # django-s-tasks-api
        
        **django-s-tasks-api** is a simple task and group task rest api of django.
        
        ## Installation
        To install django-s-tasks-api like this:
        ```shell script
        pip install django-s-tasks-api 
        ```
        
        ## Configuration
        We need to hook **django-s-tasks-api** into our project.
        1. Put s_tasks_api into your INSTALLED_APPS at settings module:
            ```python:project/settings.py
            INSTALLED_APPS = (
                ...,
                'rest_framework',
                'django_filters',
                's_tasks_api',
            )
            ```
           
        2. Create **s_tasks_api** database table and load default data by running:
            ```shell script
            python manage.py migrate
            python manage.py loaddata s_tasks_api/fixtures/default_task_status_data.json
            ```
           
        3. Add url patterns at project.urls module:
            ```python:project/urls.py
            from s_tasks_api import urls as s_tasks_api_urls
        
            urlpatterns = [
                ...,
                path(r'api/tasks/', include(s_tasks_api_urls))
            ]
            ```
           
           
        ## API
        ### Task Status
        #### List task status
        Show task status list.
         
        ```text
        method: GET
        url: /api/tasks/status/
        name: s-tasks:status-list
        view: s_tasks_api.views.TaskStatusViewSet
        ```
        
        #### Detail task status
        Show task status detail.
         
        ```text
        method: GET
        url: /api/tasks/status/<pk>
        name: s-tasks:status-detail
        view: s_tasks_api.views.TaskStatusViewSet
        ```
        
        #### Add task status
        Add task status.
        Only admin user can use this.
         
        ```text
        method: POST
        url: /api/tasks/status/
        parameters: 
        {
            'value': 'new status'
        }
        name: s-tasks:status-list
        view: s_tasks_api.views.TaskStatusViewSet
        ```   
        
        
        #### Update task status
        Update task status.
        Only admin can use this.
         
        ```text
        method: GET
        url: /api/tasks/status/<pk>
        parameters:
        {
            'value': 'changed'
        }
        name: s-tasks:status-detail
        view: s_tasks_api.views.TaskStatusViewSet
        ```
        
        
        #### Delete task status
        Delete task status.
        Only admin can use this.
         
        ```text
        method: GET
        url: /api/tasks/status/<pk>
        name: s-tasks:status-detail
        view: s_tasks_api.views.TaskStatusViewSet
        ```
        
        ### Task Tags
        This is almost same as Task Status API, so just change status to tags.
        But Add Tags is allowed to login user not only admin.
        
        
        ### Tasks
        
        #### List tasks
        Show tasks list which are created by user or assigned.
        This is filterable.
        ```text
        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.TaskViewSet
        ```
        
        #### Detail tasks
        Show tasks detail.
        ```text
        method: GET
        url: /api/tasks/<pk>/
        name: s-tasks:tasks-detail
        view: s_tasks_api.views.TaskViewSet
        ```
        
        
        #### Add tasks
        Add users task.
        ```text
        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.TaskViewSet
        ```
        
        
        #### Change task
        Change tasks detail.
        ```text
        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.TaskViewSet
        ```
        
        
        #### Complete/Un Complete task
        Complete or Un Complete task.
        ```text
        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.TaskViewSet
        ```
        
        
        ### Group Tasks
        
        #### List group tasks
        Show tasks list in all user's group.
        This is filterable.
        ```text
        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.GroupTaskViewSet
        ```
        
        #### Detail group tasks
        Show group tasks detail.
        ```text
        method: GET
        url: /api/tasks/group/<pk>/
        name: s-tasks:group-tasks-detail
        view: s_tasks_api.views.GroupTaskViewSet
        ```
        
        #### Add group task
        Add group task.
        ```text
        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.TaskViewSet
        ```
        
        #### Move task from user's to group's
        Move task from user's to group's
        ```text
        method: 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.GroupTaskViewSet
        ```
        
        
        #### Update group task
        Update group task.
        Permission is depends on lock_level and assign_lock_level.
        ```text
        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.GroupTaskViewSet
        ```
        
        #### Complete/Un Complete group task
        Complete and Un Complete group task.
        Permission is depends on lock_level.
        ```text
        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.GroupTaskViewSet
        ```
        
        #### Delete group task
        Delete group task with task.
        ```text
        method: DELETE
        url: /api/tasks/group/<pk>/
        name s-tasks:group-tasks-detail
        view: s_tasks_api.views.GroupTaskViewSet
        ```
        
        #### Remove group task to user's task
        Remove group task to user's task
        ```text
        method: 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
        ```
        
Platform: UNKNOWN
Classifier: Framework :: Django :: 3.0
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.7
Description-Content-Type: text/markdown
