-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbackground.py
More file actions
56 lines (50 loc) · 2.13 KB
/
background.py
File metadata and controls
56 lines (50 loc) · 2.13 KB
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
from flask_apscheduler import APScheduler
from app import app
import peewee as pw
from datetime import date, time
import datetime
from models.user import User
from models.activity import Activity
scheduler = APScheduler()
# @scheduler.task('interval', id='do_job_1', seconds=5, misfire_grace_time=900)
# def job1():
# print('Job 1 executed')
@scheduler.task('cron', id='do_backgroundjob', hour='08', minute='10', second='0')
def backgroundjob():
all_user = User.select()
for user in all_user:
print(user.username)
if user:
current_day = date.today()
previous_day = Activity.select().where((Activity.completion_date < current_day)).order_by(Activity.completion_date.desc()).limit(1)
for p in previous_day:
print(p.completion_date)
yesterday = p.completion_date
if yesterday:
from models.dailyrecord import DailyRecord
is_completed = Activity.select().where(Activity.is_completed == 1, Activity.completion_date == yesterday, Activity.user == user.id).count()
print(is_completed)
task = Activity.select().where(Activity.completion_date == yesterday, Activity.user == user.id).count()
if task == 0:
print(user.id)
print(task)
completion_rate = 0
title = yesterday
relationship = DailyRecord(title = title, completion_rate = completion_rate, user = user.id)
else:
print(user.id)
print(task)
completion_rate = is_completed / task * 100
title = yesterday
relationship = DailyRecord(title = title, completion_rate = completion_rate, user = user.id)
if relationship.save() :
print('Successfully saved')
else :
print('Something wrong in the code')
else:
print('Query Problem')
else:
print('No such user')
print("done")
scheduler.init_app(app)
scheduler.start()