def tearDown(self): with self.app.test_request_context(): self.assertIsNotNone(self.operator) Restaurant.delete(self.operator.restaurant_id) User.delete(self.operator.id) for res_id in self.reservation_ids: Reservation.delete_customer_reservation(res_id)
def test_delete_customer(self): with self.app.app_context(): for res_id in self.reservation_ids: Reservation.delete_customer_reservation(res_id) r = Reservation.get_reservation(res_id) self.assertIsNone(r)
def update_status(reservation_id: int, status: int, time: datetime = None): res = Reservation.get_reservation(reservation_id=int(reservation_id)) if (res is not None and res.restaurant_id == current_user.restaurant_id): mess = Reservation.update_reservation_status( reservation_id=int(reservation_id), status=status, time=time) return mess return None
def _reserve(restaurant_id): form = ReservationForm() restaurant = Restaurant.get(restaurant_id) if (request.method == 'POST'): if (current_user.is_positive): return render_template( 'error.html', error_message= "Error: you cannot reserve a table while marked as positive!") reservation_time = datetime.combine( ReservationForm(request.form).data['reservation_date'], ReservationForm(request.form).data['reservation_time']) if (reservation_time <= datetime.now()): flash( 'Invalid Date Error. You cannot reserve a table in the past!', 'booking') return redirect(request.referrer) if ReservationForm(request.form).validate_on_submit(): seats = ReservationForm(request.form).data['seats'] id = Reservation.new(int(current_user.id), int(restaurant_id), reservation_time, seats) if (id): flash('Reservation added correctly', 'booking') return redirect('/restaurants') else: flash( 'Overbooking notification: no table available at the requested time', 'booking') return redirect('/restaurants') return render_template('reserve.html', name=restaurant.name, form=form)
def home(page: int): reservations, more = Reservation.get_paged_reservations( restaurant_id=current_user.restaurant_id, page=page) users = [] for reservation in reservations: user = User.get(id=reservation.user_id) users.append(user) res = zip(reservations, users) if not reservations and page > 1: return "", 404 else: return render_template("reservations.html", reservations=res, current_page=page, morepages=more, customers=Reservation.get_seated_customers( restaurant_id=current_user.restaurant_id), today=False)
def test_get_reservations(self): try: with self.app.app_context(): for res in self.reservations: res_id = Reservation.new(**res) self.reservation_ids.append(res_id) r = Reservation.get_customer_reservations(1) self.assertIsNotNone(r) r = Reservation.get_paged_reservations(self.restaurant_id, 1) self.assertIsNotNone(r) r = Reservation.get_paged_reservation_of_today( self.restaurant_id, 1) self.assertIsNotNone(r) for res_id in self.reservation_ids: r = Reservation.get_reservation(res_id) self.assertIsNotNone(res_id) sc = Reservation.get_seated_customers(self.restaurant_id) self.assertEqual(sc, 0) r = Reservation.get_reservation(-1) self.assertIsNone(r) r = Reservation.get_customer_reservations(2) self.assertEqual(len(r), 0) r, _ = Reservation.get_paged_reservation_of_today(1000, 1) self.assertEqual(len(r), 0) r, _ = Reservation.get_paged_reservations(1000, 1) self.assertEqual(len(r), 0) except Exception as e: logging.error(e) self.fail('failed')
def get_reservations(): form = ReservationForm() reservations = Reservation.get_customer_reservations(current_user.id) n_of_res = len(reservations) restaurants = [] for reservation in reservations: restaurant = Restaurant.get(reservation.restaurant_id) restaurants.append(restaurant) res = zip(reservations, restaurants) return render_template("customer_reservations.html", reservations=res, form=form, n_of_res = n_of_res)
def update_user_reservation(reservation_id: int): form = ReservationForm() if request.method == 'POST': new_date = new_date = datetime.combine(form.data['reservation_date'], form.data['reservation_time']) if (new_date <= datetime.now()): flash( 'Invalid Date Error. You cannot reserve a table in the past!', 'reservation_mod') return redirect('/my_reservations/') if form.validate_on_submit(): new_seats = form.data['seats'] mess = Reservation.update_customer_reservation(int(reservation_id), new_date, new_seats) flash(mess, 'reservation_mod') return redirect('/my_reservations/')
def test_update(self): with self.app.app_context(): new_res_time = datetime.combine(datetime.today(), time(21, 00)) for res in self.reservations: res_id = Reservation.new(**res) self.assertIsNotNone(res_id) self.reservation_ids.append(res_id) for res_id in self.reservation_ids: Reservation.update_customer_reservation( res_id, new_res_time, 4) Reservation.update_reservation_status(res_id, 2) r = Reservation.get_reservation(res_id) self.assertIsNotNone(r)
def delete_user_reservation(reservation_id: int): mess = Reservation.delete_customer_reservation(int(reservation_id)) flash(mess, 'reservation_mod') return redirect(request.referrer)
def test_create_reservation(self): with self.app.test_request_context(): for res in self.reservations: res_id = Reservation.new(**res) self.assertIsNotNone(res_id) self.reservation_ids.append(res_id)