chg: [app:scores] Added support of first_completion
This commit is contained in:
parent
6814294e77
commit
fb32b59abe
2 changed files with 16 additions and 3 deletions
12
exercise.py
12
exercise.py
|
@ -273,8 +273,18 @@ def mark_task_completed(user_id: int, exercise_uuid: str , task_uuid: str):
|
|||
if not is_completed:
|
||||
db.EXERCISES_STATUS[exercise_uuid]['tasks'][task_uuid]['completed_by_user'].append({
|
||||
'user_id': user_id,
|
||||
'time': time.time(),
|
||||
'timestamp': time.time(),
|
||||
'first_completion': False,
|
||||
})
|
||||
# Update who was the first to complete the task
|
||||
first_completion_index = None
|
||||
first_completion_time = time.time()
|
||||
for i, entry in enumerate(db.EXERCISES_STATUS[exercise_uuid]['tasks'][task_uuid]['completed_by_user']):
|
||||
db.EXERCISES_STATUS[exercise_uuid]['tasks'][task_uuid]['completed_by_user'][i]['first_completion'] = False
|
||||
if entry['timestamp'] < first_completion_time:
|
||||
first_completion_time = entry['timestamp']
|
||||
first_completion_index = i
|
||||
db.EXERCISES_STATUS[exercise_uuid]['tasks'][task_uuid]['completed_by_user'][first_completion_index]['first_completion'] = True
|
||||
|
||||
|
||||
def mark_task_incomplete(user_id: int, exercise_uuid: str , task_uuid: str):
|
||||
|
|
|
@ -108,8 +108,11 @@
|
|||
<small :class="progress.exercises[exercise.uuid].tasks_completion[task.uuid] ? 'dark:text-green-400 text-green-600' : 'dark:text-slate-500 text-slate-400'"> (+{{ task.score }})</small>
|
||||
</span>
|
||||
<span class="text-sm leading-3">
|
||||
<span v-if="progress.exercises[exercise.uuid].tasks_completion[task.uuid].time">
|
||||
{{ (new Date(progress.exercises[exercise.uuid].tasks_completion[task.uuid].time * 1000)).toTimeString().split(' ', 1)[0] }}
|
||||
<span
|
||||
v-if="progress.exercises[exercise.uuid].tasks_completion[task.uuid].timestamp"
|
||||
:class="progress.exercises[exercise.uuid].tasks_completion[task.uuid].first_completion ? 'font-bold' : 'font-extralight'"
|
||||
>
|
||||
{{ (new Date(progress.exercises[exercise.uuid].tasks_completion[task.uuid].timestamp * 1000)).toTimeString().split(' ', 1)[0] }}
|
||||
</span>
|
||||
<span v-else></span>
|
||||
</span>
|
||||
|
|
Loading…
Reference in a new issue