@@ -45,6 +45,8 @@ class Task(db.Model):
4545 due_date = db .Column (
4646 db .Date , default = datetime .now ().date (), nullable = False
4747 ) # task due date
48+ priority = db .Column (db .Integer , default = 1 ,
49+ nullable = False ) # task priority
4850 completed = db .Column (
4951 db .Boolean , default = False , nullable = False
5052 ) # is task completed
@@ -106,6 +108,7 @@ def index(): # get index page template
106108 Task .due_date
107109 ).all () # get list of tasks sorted by due date
108110 user = User .query .first () # get first user
111+ # get today's date in YYYY-MM-DD format
109112 today = datetime .now ().strftime ("%Y-%m-%d" )
110113 return render_template (
111114 "index.html" , tasks = tasks , user = user , today = today
@@ -116,11 +119,14 @@ def index(): # get index page template
116119def add_task (): # add task to task list
117120 name = request .form .get ("name" ) # get name from request form
118121 due_date = request .form .get ("due_date" ) # get due date
122+ priority = int (request .form .get ("priority" )) # get priority
119123 user = User .query .first () # get first user
120124 if user :
121125 new_task = Task (
122- name = name , user_id = user .id , due_date = datetime .strptime (
123- due_date , "%Y-%m-%d" )
126+ name = name ,
127+ user_id = user .id ,
128+ priority = priority ,
129+ due_date = datetime .strptime (due_date , "%Y-%m-%d" ),
124130 )
125131 db .session .add (new_task ) # add new task to task list
126132 db .session .commit () # commit database changes
@@ -134,7 +140,7 @@ def complete_task(task_id): # complete task from task id
134140 task .completed = True # complete the task
135141 user = User .query .first () # get first user
136142 if user :
137- user .add_xp (1 ) # add XP
143+ user .add_xp (round ( task . priority ) ) # add XP
138144 db .session .commit () # commit database changes
139145 return redirect (url_for ("index" )) # redirect to index page template
140146
@@ -150,14 +156,22 @@ def init_db(): # initialize database
150156 column ["name" ] for column in db .inspect (db .engine ).get_columns ("task" )
151157 ]: # check if due date column is not in task table
152158 db .session .execute (
153- text ("ALTER TABLE task ADD COLUMN due_date DATE" )
159+ text ("ALTER TABLE task ADD COLUMN due_date DATE NOT NULL " )
154160 ) # create due date column
161+ if "priority" not in [
162+ column ["name" ] for column in db .inspect (db .engine ).get_columns ("task" )
163+ ]: # check if priority column is not in task table
164+ db .session .execute (
165+ text ("ALTER TABLE task ADD COLUMN priority INT NOT NULL" )
166+ ) # create priority column
155167 tasks = Task .query .all () # get list of tasks
156168 for task in tasks : # repeat for each task
157169 if task .due_date is None : # check if task due date is none
158170 task .due_date = (
159171 datetime .now ().date ()
160172 ) # set task due date to today's date
173+ if task .priority is None : # check if task priority is none
174+ task .priority = 1 # set task priority to low
161175 db .session .commit () # commit database changes
162176
163177
0 commit comments