def post_ad(state="available"): is_available = state == "available" if is_available: form = AvailableAdForm() else: form = WantedAdForm() form.starting.flags.is_date = True if request.method == "GET": form.email.data = g.user.email if form.validate_on_submit(): room = Room(user=g.user, is_available=is_available) if room.is_available: form.room_pref.data = product(form.room_pref.data) else: form.room_type.data = product(form.room_type.data) form.populate_obj(room) room.urlname = str(uuid4())[:8] db.session.add(room) db.session.commit() # Search for matching rooms rooms_distance = Room.search_rooms(room) # Send emails to interested users for r, distance in rooms_distance: if room.is_available: # ad poster is looking for a person send_email_found_room(r.user, room, distance) else: # ad poster is looking for a room. send_email_found_person(r.user, room, distance) flash("Your ad has been posted!", category="info") return render_template("found.html", room=room, rooms_distance=rooms_distance) return render_template("autoform.html", form=form, title="Post a new advertisement", submit="Post ad")
def index(): form = SearchForm() if form.validate_on_submit(): room = Room() form.populate_obj(room) # Change room_pref and room_type if they are None if not room.room_pref: room.room_pref = 0 if room.is_available else 1 if not room.room_type: room.room_type = 1 if room.is_available else 0 # Search for matching rooms rooms_distance = Room.search_rooms(room) return render_template("found.html", rooms_distance=rooms_distance) return render_template("autoform.html", form=form, title="Search Acco.", submit="Search ad")