init
This commit is contained in:
0
web/management/commands/__init__.py
Normal file
0
web/management/commands/__init__.py
Normal file
72
web/management/commands/datafill.py
Normal file
72
web/management/commands/datafill.py
Normal file
@@ -0,0 +1,72 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import numpy as np
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.management import BaseCommand
|
||||
|
||||
from web.models import Activity, ActivityLog, User
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
def handle(self, *args, **options):
|
||||
User.objects.all().delete()
|
||||
Activity.objects.all().delete()
|
||||
ActivityLog.objects.all().delete()
|
||||
|
||||
activity_sleeping = Activity(type='Сон')
|
||||
activity_sleeping.save()
|
||||
activity_eating = Activity(type='Еда')
|
||||
activity_eating.save()
|
||||
activity_studying = Activity(type='Учёба')
|
||||
activity_studying.save()
|
||||
activity_working = Activity(type='Работа')
|
||||
activity_working.save()
|
||||
activity_logistics = Activity(type='Транспорт')
|
||||
activity_logistics.save()
|
||||
activity_pastime = Activity(type='Досуг')
|
||||
activity_pastime.save()
|
||||
|
||||
user1 = User(name='Вася', email='vasya@abra.me')
|
||||
user1.save()
|
||||
user2 = User(name='Петя', email='petya@abra.me')
|
||||
user2.save()
|
||||
|
||||
start_date = datetime(2018, 12, 1, 0, 0, 0)
|
||||
days = (datetime.utcnow() - start_date) // timedelta(days=1) - 1
|
||||
|
||||
for i in range(days):
|
||||
day_start = start_date + timedelta(days=1) * i
|
||||
|
||||
def add_activity(user, activity, start_offset, end_offset, variance):
|
||||
activity_log = ActivityLog(
|
||||
user=user,
|
||||
activity=activity,
|
||||
start_time=day_start + start_offset + variance * abs(np.random.normal()),
|
||||
end_time=day_start + end_offset - variance * abs(np.random.normal()),
|
||||
)
|
||||
try:
|
||||
activity_log.clean()
|
||||
except ValidationError as e:
|
||||
print(e.message)
|
||||
return
|
||||
|
||||
activity_log.save()
|
||||
print(activity_log)
|
||||
|
||||
add_activity(user1, activity_sleeping, timedelta(hours=-24 + 22), timedelta(hours=8), timedelta(hours=2))
|
||||
add_activity(user1, activity_eating, timedelta(hours=8), timedelta(hours=8.5), timedelta(minutes=5))
|
||||
add_activity(user1, activity_logistics, timedelta(hours=8.5), timedelta(hours=9.5), timedelta(minutes=10))
|
||||
add_activity(user1, activity_working, timedelta(hours=9.5), timedelta(hours=14), timedelta(minutes=30))
|
||||
add_activity(user1, activity_eating, timedelta(hours=14), timedelta(hours=14.5), timedelta(minutes=5))
|
||||
add_activity(user1, activity_working, timedelta(hours=14.5), timedelta(hours=18), timedelta(minutes=30))
|
||||
add_activity(user1, activity_logistics, timedelta(hours=18), timedelta(hours=19), timedelta(minutes=10))
|
||||
add_activity(user1, activity_eating, timedelta(hours=20), timedelta(hours=20.5), timedelta(minutes=5))
|
||||
add_activity(user1, activity_pastime, timedelta(hours=20.5), timedelta(hours=22), timedelta(minutes=10))
|
||||
|
||||
add_activity(user2, activity_sleeping, timedelta(hours=0), timedelta(hours=6), timedelta(hours=1))
|
||||
add_activity(user2, activity_pastime, timedelta(hours=6), timedelta(hours=7), timedelta(minutes=10))
|
||||
add_activity(user2, activity_logistics, timedelta(hours=7), timedelta(hours=8), timedelta(minutes=10))
|
||||
add_activity(user2, activity_studying, timedelta(hours=8), timedelta(hours=18), timedelta(minutes=30))
|
||||
add_activity(user2, activity_logistics, timedelta(hours=18), timedelta(hours=19), timedelta(minutes=10))
|
||||
add_activity(user2, activity_eating, timedelta(hours=19), timedelta(hours=20), timedelta(minutes=10))
|
||||
add_activity(user2, activity_pastime, timedelta(hours=20), timedelta(hours=24), timedelta(minutes=10))
|
Reference in New Issue
Block a user