diff --git a/Dockerfile b/Dockerfile
index 0a15af0..0337818 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -10,7 +10,7 @@ COPY requirements.txt /www/app/
RUN pip install -r /www/app/requirements.txt
-COPY ./ /www/app/
+COPY . /www/app/
RUN ls /www/app/frontend/taskmanager
diff --git a/alembic/versions/fb82c06d1fa2_create_lists_subsystem.py b/alembic/versions/fb82c06d1fa2_create_lists_subsystem.py
index 82b73c8..ebba9f3 100644
--- a/alembic/versions/fb82c06d1fa2_create_lists_subsystem.py
+++ b/alembic/versions/fb82c06d1fa2_create_lists_subsystem.py
@@ -31,7 +31,6 @@ def upgrade():
sa.Column("status", sa.String(64), nullable=False),
sa.Column("description", sa.Text),
sa.Column("list_id", sa.BIGINT, nullable=False),
- sa.Column("soft_deleted", sa.BOOLEAN, nullable=False),
sa.Column("created_at", sa.DateTime, nullable=False),
sa.Column("modified_at", sa.DateTime, nullable=False),
sa.ForeignKeyConstraint(['list_id'], ['lists.id'])
diff --git a/frontend/taskmanager/src/assets/check.png b/frontend/taskmanager/src/assets/check.png
new file mode 100644
index 0000000..bc64da9
Binary files /dev/null and b/frontend/taskmanager/src/assets/check.png differ
diff --git a/frontend/taskmanager/src/assets/trash.png b/frontend/taskmanager/src/assets/trash.png
new file mode 100644
index 0000000..83af4d9
Binary files /dev/null and b/frontend/taskmanager/src/assets/trash.png differ
diff --git a/frontend/taskmanager/src/components/ListSelected.vue b/frontend/taskmanager/src/components/ListSelected.vue
index 652195d..798d743 100644
--- a/frontend/taskmanager/src/components/ListSelected.vue
+++ b/frontend/taskmanager/src/components/ListSelected.vue
@@ -1,22 +1,29 @@
+
-
diff --git a/frontend/taskmanager/src/util/apiUtil.js b/frontend/taskmanager/src/util/apiUtil.js
index 5241007..a295fb4 100644
--- a/frontend/taskmanager/src/util/apiUtil.js
+++ b/frontend/taskmanager/src/util/apiUtil.js
@@ -1,3 +1,4 @@
export const baseUrl = "taskmanagerbackend";
export const backendPort = ":31001";
export const listsUri = "/lists";
+export const tasksUri = "/tasks"
diff --git a/lists/constants.py b/lists/constants.py
new file mode 100644
index 0000000..52e64c9
--- /dev/null
+++ b/lists/constants.py
@@ -0,0 +1,6 @@
+from enum import Enum
+
+class TaskStatus(Enum):
+ DONE = "DONE"
+ NOT_DONE = "NOT_DONE"
+
diff --git a/lists/dtos.py b/lists/dtos.py
index 585fd2e..aab9551 100644
--- a/lists/dtos.py
+++ b/lists/dtos.py
@@ -6,27 +6,30 @@
class TaskListsDto:
- def __init__(self):
- self.lists = []
-
- def set_lists(self, taskListDtos=[]):
+ def __init__(self, taskListDtos):
self.lists = taskListDtos
class TaskListDto:
- def __init__(self):
- self.id = ""
- self.name = ""
- self.recurring_deadline = None
-
- def set_id(self, id):
+ def __init__(self, id, name, recurring_deadline):
self.id = id
-
- def set_name(self, name):
self.name = name
-
- def set_recurring_deadline(self, recurring_deadline):
self.recurring_deadline = recurring_deadline
+class TasksDto:
+
+ def __init__(self, taskDtos):
+ self.tasks = taskDtos
+
+
+class TaskDto:
+
+ def __init__(self, id, name, status, description):
+ self.id = id
+ self.name = name
+ self.status = status
+ self.description = description
+
+
diff --git a/lists/list_service.py b/lists/list_service.py
index 75f5ede..5023a39 100644
--- a/lists/list_service.py
+++ b/lists/list_service.py
@@ -1,6 +1,8 @@
-from .models import List
+from .models import List, Task
from database import db
-from .dtos import TaskListDto, TaskListsDto
+from .dtos import TaskListDto, TaskListsDto,\
+ TaskDto, TasksDto
+from .constants import TaskStatus
import json
import time
from flask import make_response, abort
@@ -15,6 +17,12 @@ def create_and_get_list(name, recurring_deadline):
return new_list
+def create_and_get_task(name, status, description, list_id):
+ new_task = Task(name=name, status=status,
+ description=description, list_id=list_id)
+ return new_task
+
+
def create_task_list(request_dict):
new_list = create_and_get_list(request_dict["name"],
request_dict["recurring_deadline"])
@@ -29,14 +37,10 @@ def get_all_lists():
task_lists = List.query.all()
task_list_dtos = []
for task_list in task_lists:
- task_list_dto = TaskListDto()
- task_list_dto.set_id(task_list.id)
- task_list_dto.set_name(task_list.name)
- task_list_dto.set_recurring_deadline(
+ task_list_dto = TaskListDto(task_list.id, task_list.name,
task_list.recurring_deadline.strftime(STRP_FORMAT))
task_list_dtos.append(task_list_dto.__dict__)
- task_lists_dto = TaskListsDto()
- task_lists_dto.set_lists(task_list_dtos)
+ task_lists_dto = TaskListsDto(task_list_dtos)
return json.dumps(task_lists_dto.__dict__)
@@ -50,3 +54,26 @@ def delete_task_list(list_id):
return response
response["message"] = "List not found"
abort(make_response(json.dumps(response), 404))
+
+
+def create_task(request_dict):
+ new_task = create_and_get_task(request_dict["name"], TaskStatus.NOT_DONE.value,
+ request_dict["description"], request_dict["list_id"])
+ db.session.add(new_task)
+ db.session.commit()
+ response = dict()
+ response["message"] = "created a new task for list" +\
+ str(request_dict["list_id"])
+ return response
+
+
+def getListTasks(list_id):
+ list_tasks = Task.query.filter_by(list_id=list_id).all()
+ taskDtos = []
+ for list_task in list_tasks:
+ task_dto = TaskDto(list_task.id, list_task.name,
+ list_task.status, list_task.description)
+ taskDtos.append(task_dto.__dict__)
+ tasksDto = TasksDto(taskDtos)
+ return json.dumps(tasksDto.__dict__)
+
diff --git a/lists/models.py b/lists/models.py
index 7ede847..93b2a1d 100644
--- a/lists/models.py
+++ b/lists/models.py
@@ -29,9 +29,9 @@ class Task(db.Model, Audited):
description = db.Column("description", db.String)
list_id = db.Column("list_id", db.ForeignKey(List.id),
nullable=False)
- soft_deleted = db.Column("soft_deleted", db.BOOLEAN, nullable=False)
-
+# can be used for further extending the functionality of the list
+# in the future.
class ListProperty(db.Model, Audited):
''' This class represents list properties'''
__tablename__ = "list_properties"
diff --git a/lists/views.py b/lists/views.py
index 319cb21..bef770c 100644
--- a/lists/views.py
+++ b/lists/views.py
@@ -1,7 +1,5 @@
from flask import Blueprint, request
-from .models import List
from . import list_service
-from database import db
lists = Blueprint("list_controller", __name__)
@@ -23,3 +21,17 @@ def getAllLists():
def deleteList(list_id):
response = list_service.delete_task_list(list_id)
return response
+
+
+@lists.route("/tasks", methods=["POST"])
+def createTaskInList(list_id):
+ request_json = request.json
+ request_json["list_id"] = list_id
+ response = list_service.create_task(request_json)
+ return response
+
+
+@lists.route("/tasks", methods=["GET"])
+def getAllTasksFromList(list_id):
+ response = list_service.getListTasks(list_id)
+ return response