Skip to content

Commit 587f3ec

Browse files
committed
Add difficulty values in task list
1 parent 71be1f2 commit 587f3ec

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

app.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ class Task(db.Model):
4747
) # task due date
4848
priority = db.Column(db.Integer, default=1,
4949
nullable=False) # task priority
50+
difficulty = db.Column(db.Integer, default=1,
51+
nullable=False) # task difficulty
5052
completed = db.Column(
5153
db.Boolean, default=False, nullable=False
5254
) # is task completed
@@ -120,12 +122,14 @@ def add_task(): # add task to task list
120122
name = request.form.get("name") # get name from request form
121123
due_date = request.form.get("due_date") # get due date
122124
priority = int(request.form.get("priority")) # get priority
125+
difficulty = int(request.form.get("difficulty")) # get difficulty
123126
user = User.query.first() # get first user
124127
if user:
125128
new_task = Task(
126129
name=name,
127130
user_id=user.id,
128131
priority=priority,
132+
difficulty=difficulty,
129133
due_date=datetime.strptime(due_date, "%Y-%m-%d"),
130134
)
131135
db.session.add(new_task) # add new task to task list
@@ -140,7 +144,7 @@ def complete_task(task_id): # complete task from task id
140144
task.completed = True # complete the task
141145
user = User.query.first() # get first user
142146
if user:
143-
user.add_xp(round(task.priority)) # add XP
147+
user.add_xp(round(task.priority * task.difficulty)) # add XP
144148
db.session.commit() # commit database changes
145149
return redirect(url_for("index")) # redirect to index page template
146150

@@ -156,14 +160,22 @@ def init_db(): # initialize database
156160
column["name"] for column in db.inspect(db.engine).get_columns("task")
157161
]: # check if due date column is not in task table
158162
db.session.execute(
159-
text("ALTER TABLE task ADD COLUMN due_date DATE NOT NULL")
163+
text(
164+
"ALTER TABLE task ADD COLUMN due_date DATE NOT NULL DEFAULT CURRENT_TIMESTAMP"
165+
)
160166
) # create due date column
161167
if "priority" not in [
162168
column["name"] for column in db.inspect(db.engine).get_columns("task")
163169
]: # check if priority column is not in task table
164170
db.session.execute(
165-
text("ALTER TABLE task ADD COLUMN priority INT NOT NULL")
171+
text("ALTER TABLE task ADD COLUMN priority INT NOT NULL DEFAULT 1")
166172
) # create priority column
173+
if "difficulty" not in [
174+
column["name"] for column in db.inspect(db.engine).get_columns("task")
175+
]: # check if difficulty column is not in task table
176+
db.session.execute(
177+
text("ALTER TABLE task ADD COLUMN difficulty INT NOT NULL DEFAULT 1")
178+
) # create difficulty column
167179
tasks = Task.query.all() # get list of tasks
168180
for task in tasks: # repeat for each task
169181
if task.due_date is None: # check if task due date is none
@@ -172,6 +184,8 @@ def init_db(): # initialize database
172184
) # set task due date to today's date
173185
if task.priority is None: # check if task priority is none
174186
task.priority = 1 # set task priority to low
187+
if task.difficulty is None: # check if task difficulty is none
188+
task.difficulty = 1 # set task difficulty to low
175189
db.session.commit() # commit database changes
176190

177191

templates/index.html

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,14 @@ <h1>Endless Task List App using Flask</h1>
4545
<select id="priority" name="priority">
4646
<option value="1">Low</option>
4747
<option value="2">Medium</option>
48-
<option value="3">High</option>
49-
</select>
48+
<option value="3">High</option></select
49+
><br />
50+
Difficulty:
51+
<select id="difficulty" name="difficulty">
52+
<option value="1">Easy</option>
53+
<option value="2">Medium</option>
54+
<option value="3">Hard</option></select
55+
><br />
5056
<input type="submit" value="Add Task" />
5157
</form>
5258
<ul>
@@ -56,8 +62,10 @@ <h1>Endless Task List App using Flask</h1>
5662
Due: {{ task.due_date }}
5763
</li>
5864
Priority: {% if task.priority == 1 %} Low {% elif task.priority == 2 %}
59-
Medium {% elif task.priority == 3 %} High {% endif %} {% if not
60-
task.completed %}<!--show complete button if task is not completed-->
65+
Medium {% elif task.priority == 3 %} High {% endif %}<br />
66+
Difficulty: {% if task.difficulty == 1 %} Easy {% elif task.difficulty
67+
== 2 %} Medium {% elif task.difficulty == 3 %} Hard {% endif %}<br />
68+
{% if not task.completed %}<!--show complete button if task is not completed-->
6169
<a href="/complete_task/{{ task.id }}">Complete</a>
6270
{% endif %}
6371
<a href="/delete_task/{{ task.id }}">Delete</a>

0 commit comments

Comments
 (0)