def post(self, request, *args, **kwargs): staff_data = get_object_or_404(Staff, id=self.kwargs['pk']) year = self.kwargs.get('year') month = self.kwargs.get('month') day = self.kwargs.get('day') hour = self.kwargs.get('hour') start_time = make_aware(datetime(year=year, month=month, day=day, hour=hour)) end_time = make_aware(datetime(year=year, month=month, day=day, hour=hour + 1)) booking_data = Booking.objects.filter(staff=staff_data, start=start_time) form = BookingForm(request.POST or None) if booking_data.exists(): form.add_error(None, '既に予約があります。\n別の日時で予約をお願いします。') else: if form.is_valid(): booking = Booking() booking.staff = staff_data booking.start = start_time booking.end = end_time booking.first_name = form.cleaned_data['first_name'] booking.last_name = form.cleaned_data['last_name'] booking.tel = form.cleaned_data['tel'] booking.remarks = form.cleaned_data['remarks'] booking.save() return redirect('thanks') return render(request, 'app/booking.html', { 'staff_data': staff_data, 'year': year, 'month': month, 'day': day, 'hour': hour, 'form': form, })
def book(event_id): data = db.session.query(Event).join( Location, Location.id == Event.location_id).with_entities( Event.name, Event.capacity, Event.start, Event.end, Location.name.label('location_name'), Location.address, Event.img_name).filter(Event.id == event_id).first() ticket_amt = [(i, i) for i in range(1, data.capacity + 1)] form = BookingForm() form.amount.choices = ticket_amt if data is None: return render_template('error_event.html') if form.validate_on_submit(): event = Event.query.get(event_id) event.capacity -= form.amount.data booking = Booking(user_id=current_user.id, event_id=event_id, quantity=form.amount.data, book_time=datetime.utcnow(), last_modified=datetime.utcnow()) db.session.add(booking) db.session.commit() app.logger.info( 'User ID {} has booked {} tickets (Booking ID {}) for Event ID {} at {}.' .format(booking.user_id, booking.quantity, booking.id, booking.event_id, datetime.now())) flash( 'Successfully purchased {} tickets for {}'.format( form.amount.data, data.name), "info") return redirect(url_for('main_panel.events')) return render_template('book.html', event_id=event_id, data=data, form=form)
def index(): form = BookingForm() #Variabel för formen som finns i forms.py if form.validate_on_submit(): try: if int(form.tableInt.data) <= 47 and int( form.tableInt.data ) >= 1: #Verifierar att användaren inte tar något bordsnummer som inte finns i kartan table = Table( tableInt=int(form.tableInt.data), isBooked=True, username=current_user.username ) #Den här variabeln ger datan som sedan ska läggas till i databasen db.session.add(table) #Lägg till i databasen db.session.commit() #Uppdatera databasen med ny data flash('Du har nu bokat ett bord') ## Nu funkar allt bra else: ##om användaren skirver in t.ex. 56 kommer den här köras flash('Det finns ingen plats som heter så') except: #Om det blir helt fel, t.ex. om användaren skirver in bokstäver i formen, så hamnar man här, därför att formens data konverteras till int flash( 'Bokningen kunde inte slutföras, kolla att du inte tar en upptagen plats!' ) return redirect(url_for('index')) ##användaren skickas tll hemsidan tableInfo = Table.query.order_by( Table.tableInt).all() #variabel som har värderna i modelen Table return render_template( 'index.html', title='Home', form=form, tableInfo=tableInfo ) #visar hemsidan och skickar med information som kan användas med jinja2
def accept_blast(blast_id): blast = Blast.query.filter_by(id=blast_id, receiver=current_user.id).first() if not blast: flash('Invalid Blast selected') return redirect(url_for('index')) form = BookingForm() dog_name = blast.slot.subject.dog_name if form.validate_on_submit(): user_id = current_user # Update blast record blast.status = BOOKED # Update parent slot blast.slot.status = BOOKED blast.slot.booker = current_user blast.comments = form.comments.data db.session.commit() send_accepted_blast(blast) send_blast_fulfilled_email(blast.slot) return redirect(url_for('confirmed', slot=blast.slot.id)) return render_template('book_slot.html', title='Slot booked', slot=blast.slot, dog_name=dog_name, form=form)
def booking(teacher_id, day, hour): form = BookingForm() if form.validate_on_submit(): bk = Booking(teacher_id=teacher_id, day=day, hour=hour) bk.student_name = form.contact_info.student_name.data bk.student_phone = form.contact_info.student_phone.data teacher = Teacher.query.get(teacher_id) teacher.set_hour_state(day, hour, False) # теперь время - занято bk.save() return render_template("done.html", title={ "label": "Тема", "value": "Пробный урок" }, time={ "label": days[bk.day], "value": f"{bk.hour}:00" }, name=bk.student_name, phone=bk.student_phone) return render_template("booking.html", teacher=Teacher.query.get(teacher_id), time={ "day": day, "hour": hour }, days=days, form=form)
def render_booking_done(): teacher = Teacher.query.filter( Teacher.id == int(request.form.get("clientTeacher"))).first() schedule = Schedule.query.filter( Schedule.id == int(request.form.get("schedule"))).first() form = BookingForm() if form.validate_on_submit(): name = form.clientName.data phone = form.clientPhone.data client = Client(name=name, phone=phone) db.session.add(client) # TODO # изменить ли структуру модели Client # так что бы хранил не id и ссылку # тогда можно без коммита db.session.commit() db.session.add( Booking(client=client.id, teacher=teacher.id, schedule=schedule.id)) db.session.commit() return render_template( "booking_done.html", name=name, phone=phone, day=ReadData.day_week.get(schedule.day_week, ""), time=schedule.time, ) else: return url_for("booking.html")
def book(request): if request.method=="POST": print(request.POST) form=BookingForm(request.POST) form.save() del request.session['sess_cust_id'] return redirect('/')
def book_event(request): """ Request Handler for booking event """ response = reply_object() form = BookingForm(request.POST, request=request) if form.is_valid(): response = form.start_booking_session() else: response["code"] = settings.APP_CODE["FORM ERROR"] response["errors"] = form.errors return HttpResponse(simplejson.dumps(response))
def create_booking(): form = BookingForm() form['csrf_token'].data = request.cookies['csrf_token'] print() if form.validate_on_submit(): booking = Booking(book_date=form.data['book_date'], book_start_time=form.data['book_start_time'], book_end_time=form.data['book_end_time'], user_id=form.data['user_id'], service_id=form.data['service_id']) db.session.add(booking) db.session.commit() newbooking = Booking.query.filter_by(id=booking.id).join(Aircraft).one() return to_booking(newbooking)
def calendar(request): """ Booking page """ form = BookingForm() return render_to_response('site_calendar.html', context_instance=RequestContext( request, {"form": form}))
def book_slot(): form = BookingForm() slot = request.args.get('slot') slot = Slot.query.filter_by(id=slot).first() dog_name = slot.subject.dog_name if form.validate_on_submit(): user_id = current_user slot.comments = form.comments.data db.session.commit() return redirect(url_for('confirmed', slot=slot.id)) return render_template('book_slot.html', title='Slot booked', slot=slot, dog_name=dog_name, form=form)
def booking(teacher_id): teacher = db.session.query(Teacher).get_or_404(teacher_id) form = BookingForm() if form.validate_on_submit(): weekday_ru = request.args.get('day') time = request.args.get('time') weekday_slug = next( (day_en for day_en, day_ru in RU_DAYS.items() if weekday_ru == day_ru), None ) booking = Booking( username=form.name.data, phone=form.phone.data, weekday=weekday_ru, time=time ) teacher_schedule = json.loads(teacher.schedule) teacher_schedule[weekday_slug][time] = False teacher.schedule = json.dumps(teacher_schedule) teacher.bookings.append(booking) db.session.add(teacher) db.session.add(booking) db.session.commit() context = { 'name': booking.username, 'phone': booking.phone, 'lesson_day': booking.weekday , 'lesson_time': booking.time, 'subject': 'trial', 'subject_description': 'Пробное занятие' } return redirect(url_for('sent', context=json.dumps(context))) context = { 'teacher': teacher, 'lesson_day': RU_DAYS[request.args.get('day')], 'lesson_time': request.args.get('time') } return render_template('booking.html', form=form, **context)
def render_booking(id_teacher, id_schedule): teachers_query = Teacher.query.filter(Teacher.id == id_teacher).first() schedule_query = Schedule.query.filter(Schedule.id == id_schedule).first() form = BookingForm() return render_template( "booking.html", form=form, teacher=teachers_query, day=ReadData.day_week.get(schedule_query.day_week, ""), schedule=schedule_query, )
def book(): form = BookingForm() if form.is_submitted(): d = datetime.strptime(form.pickup_time.data, "%H:%M") time_ = d.strftime('%I:%M %p') try: booking_details = session['booking_details'] booking_details['pickup_address'] = form.pickup_address.data booking_details['pickup_time'] = time_ booking_details['user_id'] = current_user.get_id() try: date_ = datetime.fromtimestamp(booking_details['departure_date']) booking_details['departure_date'] = date_.strftime("%m/%d/%Y") except TypeError: pass session['booking_details'] = booking_details return redirect(url_for('confirm')) except AttributeError: flash("All fields are required") render_template('book.html', form=form, current_user=current_user) return render_template('book.html', form=form, current_user=current_user)
def book_car_request(id): form = BookingForm(date=date.today(), time=datetime.now() + timedelta(hours=1), car_id=id, user_id=current_user.id) if form.validate_on_submit(): time_start = datetime.combine(form.date.data, form.time.data) data = { 'user_id': form.user_id.data, 'car_id': form.car_id.data, 'time_start': time_start.isoformat(), 'hours': form.duration.data } r = requests.post('http://192.168.1.109:10100/book', json=data, verify=False) bookingData = r.json() r = requests.get('http://192.168.1.109:10100/cars/{}'.format( data['car_id']), verify=False) carData = r.json() if 'id' in bookingData: start = datetime.fromisoformat( bookingData['timestart']).strftime("%m/%d/%Y, %H:%M") flash('you booked {carname} for {hours} hours starting {start}'. format(carname=carData['name'], hours=bookingData['dration'], start=start)) return redirect(url_for('index')) else: flash("The {carname} has been booked, try book another one".format( carname=carData['name'])) return redirect(url_for('index')) return render_template('book.html', title='Make a Booking', form=form, id=id)
def get(self, request, *args, **kwargs): staff_data = Staff.objects.filter(id=self.kwargs['pk']).select_related('user').select_related('store')[0] year = self.kwargs.get('year') month = self.kwargs.get('month') day = self.kwargs.get('day') hour = self.kwargs.get('hour') form = BookingForm(request.POST or None) return render(request, 'app/booking.html', { 'staff_data': staff_data, 'year': year, 'month': month, 'day': day, 'hour': hour, 'form': form, })