99 lines
3.4 KiB
Python
Executable File
99 lines
3.4 KiB
Python
Executable File
import django, sys, os
|
|
os.environ['DJANGO_SETTINGS_MODULE'] = 'apiserver.settings'
|
|
django.setup()
|
|
|
|
import datetime
|
|
import json
|
|
from django.utils.timezone import now, pytz
|
|
from apiserver.api import models, utils
|
|
|
|
# Member orientation
|
|
print('Updating member orientation dates')
|
|
sessions = models.Session.objects.filter(course = 249)
|
|
|
|
def get_member(obj):
|
|
# same as in serialzers.py -> get_cards for example
|
|
if obj.user:
|
|
member = obj.user.member
|
|
else:
|
|
member = models.Member.objects.get(id=obj.member_id)
|
|
return member
|
|
|
|
|
|
for session in sessions:
|
|
students = models.Training.objects.filter(session = session)
|
|
for student in students:
|
|
if student.attendance_status == 'Attended':
|
|
member = get_member(student)
|
|
if not member.orientation_date:
|
|
member.orientation_date = session.datetime.astimezone(pytz.timezone('America/Edmonton')).date()
|
|
member.save()
|
|
|
|
# Lathe
|
|
print('Updating lathe training dates')
|
|
sessions = models.Session.objects.filter(course = 281)
|
|
|
|
for session in sessions:
|
|
students = models.Training.objects.filter(session = session)
|
|
for student in students:
|
|
if student.attendance_status == 'Attended':
|
|
member = get_member(student)
|
|
if not member.lathe_cert_date:
|
|
member.lathe_cert_date = session.datetime.astimezone(pytz.timezone('America/Edmonton')).date()
|
|
member.save()
|
|
|
|
# Manual Mill
|
|
print('Updating mill training dates')
|
|
sessions = models.Session.objects.filter(course = 283)
|
|
|
|
for session in sessions:
|
|
students = models.Training.objects.filter(session = session)
|
|
for student in students:
|
|
if student.attendance_status == 'Attended':
|
|
member = get_member(student)
|
|
if not member.mill_cert_date:
|
|
member.mill_cert_date = session.datetime.astimezone(pytz.timezone('America/Edmonton')).date()
|
|
member.save()
|
|
|
|
|
|
# Woodworking tools
|
|
print('Updating woodworking training dates')
|
|
sessions = models.Session.objects.filter(course = 261)
|
|
|
|
for session in sessions:
|
|
students = models.Training.objects.filter(session = session)
|
|
for student in students:
|
|
if student.attendance_status == 'Attended':
|
|
member = get_member(student)
|
|
if not member.wood_cert_date:
|
|
member.wood_cert_date = session.datetime.astimezone(pytz.timezone('America/Edmonton')).date()
|
|
member.save()
|
|
|
|
# Woodworking-2 tools
|
|
print('Updating woodworking-2 training dates')
|
|
sessions = models.Session.objects.filter(course = 401)
|
|
|
|
for session in sessions:
|
|
students = models.Training.objects.filter(session = session)
|
|
for student in students:
|
|
if student.attendance_status == 'Attended':
|
|
member = get_member(student)
|
|
if not member.wood2_cert_date:
|
|
member.wood2_cert_date = session.datetime.astimezone(pytz.timezone('America/Edmonton')).date()
|
|
member.save()
|
|
|
|
# CNC tools
|
|
print('Updating CNC training dates')
|
|
sessions = models.Session.objects.filter(course = 259)
|
|
|
|
for session in sessions:
|
|
students = models.Training.objects.filter(session = session)
|
|
for student in students:
|
|
if student.attendance_status == 'Attended':
|
|
member = get_member(student)
|
|
if not member.cnc_cert_date:
|
|
member.cnc_cert_date = session.datetime.astimezone(pytz.timezone('America/Edmonton')).date()
|
|
member.save()
|
|
|
|
print('Done.')
|