def unfinalized_week(user): current_term = Term.current_term() if date.today() < current_term.start: return None # current week = up to week we want to access + 1 current_week = Term.reverse_date(current_term, date.today())[0] if date.today() <= current_term.startdate_of_week(current_week) + timedelta(1): # Cannot access past week's because today is less than Wednesday current_week = current_week - 1 for week in range(0, current_week): if not is_week_finalized(user, week): return week return None
def unfinalized_service(user): # return list of service_id and week if has_designated_service(user): current_term = Term.current_term() if date.today() < current_term.start: return None # current week = up to week we want to access + 1 current_week = Term.reverse_date(current_term, datetime.date.today())[0] worker = trainee_from_user(user).worker designated_services = worker.designated.all() if date.today() <= current_term.startdate_of_week(current_week) + timedelta(1): # Cannot access past week's because today is less than Wednesday current_week = current_week - 1 for service in designated_services: for week in range(0, current_week): serv_att = ServiceAttendance.objects.filter(designated_service=service, worker=worker, term=current_term, week=week) if not serv_att.exists(): return [service.id, week] elif not serv_att.first().excused and serv_att.first().get_service_hours() == 0: return [service.id, week] return None
def index(request): my_user = request.user if is_TA(my_user): first = Trainee.objects.first().pk my_user = Trainee.objects.get(pk=request.GET.get('userId', first)) # Default for Daily Bible Reading listJSONRenderer = JSONRenderer() l_render = listJSONRenderer.render trainees = Trainee.objects.all() trainees_bb = l_render(BasicUserSerializer(trainees, many=True).data) current_term = Term.current_term() term_id = current_term.id start_date = current_term.start.strftime('%Y%m%d') current_date = datetime.date.today() try: current_week = Term.reverse_date(current_term, current_date)[0] except ValueError: current_week = 19 term_week_code = str(term_id) + "_" + str(current_week) try: trainee_bible_reading = BibleReading.objects.get(trainee=my_user) user_checked_list = trainee_bible_reading.books_read except ObjectDoesNotExist: user_checked_list = {} trainee_bible_reading = BibleReading( trainee=trainee_from_user(my_user), weekly_reading_status={term_week_code: EMPTY_WEEK_CODE_QUERY}, books_read={}) trainee_bible_reading.save() except MultipleObjectsReturned: return HttpResponse( 'Multiple bible reading records found for trainee!') first_year_checked_list, first_year_progress = calcFirstYearProgress( user_checked_list) second_year_checked_list, second_year_progress = calcSecondYearProgress( user_checked_list) weekly_status = EMPTY_WEEKLY_STATUS finalized_str = UNFINALIZED_STR if term_week_code in trainee_bible_reading.weekly_reading_status: weekly_reading = trainee_bible_reading.weekly_reading_status[ term_week_code] json_weekly_reading = json.loads(weekly_reading) weekly_status = str(json_weekly_reading['status']) finalized_str = str(json_weekly_reading['finalized']) # Send data to the template!!! context = { 'bible_books_list': bible_books_list, 'first_year_checked_list': first_year_checked_list, 'second_year_checked_list': second_year_checked_list, 'first_year_progress': first_year_progress, 'second_year_progress': second_year_progress, 'weekly_status': weekly_status, 'current_week': current_week, 'start_date': start_date, 'finalized': finalized_str, 'trainees_bb': trainees_bb, 'trainee': my_user, } return render(request, 'bible_tracker/index.html', context=context)