Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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