def name_attendance_sunday_school(request): if not request.user.is_authenticated: return redirect('config:login') if request.user.username != 'admin': return HttpResponse('Unauthorized', status=401) err, student = '', '' full_name = request.POST['full_name'] student_names = StudentSelector().get_all_student_names() try: student = StudentSelector.get_student_by_full_name(full_name) AttendanceService().add_attendance_by_student(student, for_sunday_school=True) except ObjectDoesNotExist: err = 'Name does not exist.' except IntegrityError: err = f'{str(student)} has already been recorded.' context = { 'err': err, 'student_names': student_names, 'attendance_count': AttendanceSelector.get_attendance_count_by_day(for_sunday_school=True), } return render(request, 'attendance/sunday_school.html', context)
def card_attendance_summer_club(request): if not request.user.is_authenticated: return redirect('config:login') if request.user.username != 'admin': return HttpResponse('Unauthorized', status=401) err, card = '', '' card_number = request.POST['card_number'] student_names = StudentSelector().get_all_student_names() try: card = CardSelector().get_card_by_number(card_number) AttendanceService().add_attendance_by_card(card=card) except ObjectDoesNotExist: err = 'Card does not exist.' except IntegrityError: err = f'{str(card.holder)} has already been recorded.' context = { 'err': err, 'student_names': student_names, 'attendance_count': AttendanceSelector.get_attendance_count_by_day(), } return render(request, 'attendance/summer_club.html', context)
def summer_club(request): if not request.user.is_authenticated: return redirect('config:login') if request.user.username != 'admin': return HttpResponse('Unauthorized', status=401) context = { 'title': "Summer Club", 'student_names': StudentSelector().get_all_student_names(), 'attendance_count': AttendanceSelector.get_attendance_count_by_day(), } return render(request, 'attendance/summer_club.html', context)
def bible_study(request): if not request.user.is_authenticated: return redirect('config:login') if request.user.username != 'admin': return HttpResponse('Unauthorized', status=401) context = { 'title': "Bible Study", 'student_names': StudentSelector().get_all_student_names(), 'attendance_count': AttendanceSelector.get_attendance_count_by_day(for_bible_study=True), } return render(request, 'attendance/bible_study.html', context)
import sys from attendance.selectors.day import DaySelector, Day from attendance.selectors.attendance import AttendanceSelector from attendance.services import MultiplierService from config.selectors.student import StudentSelector yesterday: Day = DaySelector.get_yesterday_or_none() if not yesterday: sys.exit(1) all_students = StudentSelector.get_all_student_count() unattended_students = AttendanceSelector.get_unattended_students_by_day( yesterday) attended_students = all_students - unattended_students report = f'''{yesterday.date} - {yesterday.get_service()}: Attendance Report Unattended students : {len(unattended_students)} Total students : {len(all_students)} % Attendance : {(attended_students/all_students) * 100}% ''' def get_multiplier(student, day): multiplier = MultiplierService.get_or_create_multiplier(student) if day.for_sunday_school: return multiplier.sunday_school elif day.for_bible_study: return multiplier.bible_study return multiplier.summer_club