Skip to content

Commit 0f4deaf

Browse files
committed
Add priorities in task list
1 parent 280ac81 commit 0f4deaf

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

app.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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
116119
def 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

templates/index.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ <h1>Endless Task List App using Flask</h1>
4141
max="9999-12-31"
4242
required
4343
/><br />
44+
Priority:
45+
<select id="priority" name="priority">
46+
<option value="1">Low</option>
47+
<option value="2">Medium</option>
48+
<option value="3">High</option>
49+
</select>
4450
<input type="submit" value="Add Task" />
4551
</form>
4652
<ul>

0 commit comments

Comments
 (0)