-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPerson.py
135 lines (101 loc) · 5.08 KB
/
Person.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Import the Session object and engine from your construct_db.py file
from construct_db import *
from management_utils import DB_Utils
class Person():
def __init__(self, session, username: str, password: str, login_signup: str):
'''
This is the constructor to initialize a new user.
Parameters:
username: str
password: str
'''
self.username = username
self.session = session
if login_signup == "signup":
# Create a User object
self.id = DB_Utils.create_user(self.session, username, password)
else:
# get user
self.id = self.get_user_id(username)
def get_user_id(self, username):
id = DB_Utils.get_user_id(self.session, username)
if id == 0:
print("this username does not exist\n")
return id
def create_project(self, name, description):
result = DB_Utils.create_project(self.session, self.id, name, description)
print(result[0])
return result[1]
def view_projects(self):
projects = DB_Utils.get_projects(self.session, self.id)
if len(projects) > 0:
for project in projects:
print(f"ID: {project['id']} Name: {project['name']} Description: {project['description']}\n")
else:
print("You have no projects.\n")
def view_admin_projects(self):
projects = DB_Utils.get_projects_admin(self.session, self.id)
if len(projects) > 0:
for project in projects:
print(f"ID: {project['id']} Name: {project['name']} Description: {project['description']}\n")
else:
print("You have no projects that you admin.\n")
def admin_projects_length(self):
projects = DB_Utils.get_projects_admin(self.session, self.id)
return len(projects)
def admin_project_IDs(self):
projects = DB_Utils.get_projects_admin(self.session, self.id)
IDs = []
for project in projects:
IDs.append(str(project['id']))
return IDs
def change_project_name(self, project_id, new_name):
DB_Utils.change_project_name(self.session, project_id, new_name)
def change_project_description(self, project_id, new_description):
DB_Utils.change_project_description(self.session, project_id, new_description)
def invite_member(self, recipient_user, project_id=None, task_id=None):
result = DB_Utils.invite_member(self.session, self.id, self.username, recipient_user, project_id, task_id)
print(result)
def remove_project_member(self, username, project_id):
result = DB_Utils.remove_project_member(self.session, self.id, username, project_id)
print(result)
def add_project_member(self, project_id):
result = DB_Utils.add_project_member(self.session, self.id, project_id)
print(result)
def view_tasks(self):
tasks = DB_Utils.get_tasks(self.session, self.id)
if len(tasks) > 0:
for task in tasks:
print(f"ID: {task['id']} Name: {task['name']} Priority: {task['priority']}\nDescription: {task['description']} Deadline: {task['deadline']}\n")
else:
print("You have no tasks.\n")
def create_task(self, name, description, priority, project_id=None, deadline=None):
return DB_Utils.create_task(self.session, self.id, name, description, priority, project_id, deadline)
def change_task_name(self, task_id, new_name):
DB_Utils.change_task_name(self.session, task_id, new_name)
def change_task_description(self, task_id, new_description):
DB_Utils.change_task_description(self.session, task_id, new_description)
def change_task_priority(self, task_id, new_priority):
DB_Utils.change_task_priority(self.session, task_id, new_priority)
def change_task_deadline(self, task_id, new_deadline):
DB_Utils.change_task_deadline(self.session, task_id, new_deadline)
def add_task_member(self, task_id):
result = DB_Utils.add_task_member(self.session, self.id, task_id)
print(result)
def remove_task_member(self, task_id):
result = DB_Utils.remove_task_member(self.session, self.id, task_id)
print(result)
def get_notifications(self):
return DB_Utils.get_notifications(self.session, self.id)
def notifications_length(self):
return DB_Utils.notifications_length(self.session, self.id)
def change_invitation_status(self, message_id, new_status):
DB_Utils.change_invitation_status(self.session, message_id, new_status)
def delete_invitation(self, message_id):
return DB_Utils.delete_invitation(self.session, message_id)
def delete_project(self, project_id):
result = DB_Utils.delete_project(self.session, self.id, project_id)
print(result)
def delete_task(self, task_id):
result = DB_Utils.delete_task(self.session, self.id, task_id)
print(result)