You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
3.4 KiB
98 lines
3.4 KiB
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.')
|
|
|