コード例 #1
0
ファイル: views.py プロジェクト: punchagan/tree-house
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")