def edit(): """ All of this is test code, to check database and input correctness. """ weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] users = User.query.all() if request.method == 'POST': for day in weekdays: shifts_per_day = request.form.getlist(day.lower() + "-time") for i in range(len(shifts_per_day)): if shifts_per_day[i] is not "": time = datetime.strptime(shifts_per_day[i], "%I:%M") shift = beginning_of_week(days=weekdays.index(day)).replace( hour=time.hour, minute=time.minute, second=0 ) user = users[i] Shift(user.id, shift, shift + timedelta(hours=5)).save_to_database() return redirect(url_for('.view')) return render_template('schedule/edit_schedule.html', weekdays=weekdays, users=users)
def view(start_date, week_length): if start_date: start_datetime = datetime.fromtimestamp(start_date) else: start_datetime = beginning_of_week(days=0) if week_length: end_datetime = end_of_week(days=(week_length-7)) else: week_length = 7 end_datetime = end_of_week(days=-1) weekdays = [] for i in range(week_length): weekdays.append(start_datetime + timedelta(days=i)) users = User.query.all() schedules = [] for user in users: schedules.append(Schedule(user.id, start_datetime, end_datetime)) return render_template('schedule/view_schedule.html', week_length=week_length, weekdays=weekdays, schedules=schedules)
def test_get_all_shifts_before_end_time(self): user_id = 5 first_start = beginning_of_week() first_end = first_start + timedelta(hours=5) second_start = first_start + timedelta(hours=10) second_end = second_start + timedelta(hours=5) shift1 = Shift(user_id, first_start, first_end) shift1.save_to_database() shift2 = Shift(user_id, second_start, second_end) shift2.save_to_database() search_end = second_end - timedelta(hours=1) shift_list = Shift.get_shifts_by_user_id(user_id, end_time=search_end) self.assertEqual(len(shift_list), 1) db.session.delete(shift1) db.session.delete(shift2) db.session.commit()