import datetime from timetable.models import Hint def get_all_hints_by_date(date): hints = filter_date(date) return hints def get_all_hints_by_class_and_time_period(_class, from_date, to_date): hints_tmp = get_all_hints_by_time_period(from_date, to_date) hints_match = [] for hint in hints_tmp: if _class.id in [x.class_id for x in hint.classes.all()]: hints_match.append(hint) return hints_match def get_all_hints_for_teachers_by_time_period(from_date, to_date): hints_tmp = get_all_hints_by_time_period(from_date, to_date) hints_match = [] for hint in hints_tmp: if hint.teachers: hints_match.append(hint) return hints_match def get_all_hints_not_for_teachers_by_time_period(from_date, to_date): hints_tmp = get_all_hints_by_time_period(from_date, to_date) hints_match = [] for hint in hints_tmp: if not hint.teachers: hints_match.append(hint) return hints_match def get_all_hints_by_time_period(from_date, to_date): print(from_date, to_date) delta = to_date - from_date print(delta.days + 1) week_days = [from_date + datetime.timedelta(days=i) for i in range(delta.days + 1)] hints = [] for week_day in week_days: hints_tmp = get_all_hints_by_date(week_day) for hint in hints_tmp: if hint not in hints: hints.append(hint) print(hints) return hints def filter_date(date): hints = Hint.objects.filter(from_date__lte=date, to_date__gte=date).order_by("from_date", "classes") return hints