def rate_movie(): """Rate a movie.""" score = request.form.get("rating") movie_id = request.form.get("movie_id") user_id = session.get("user_id") timestamp = datetime.datetime.now() if "user_id" not in session: flash("Hey, you're not logged in!") return redirect("/login") rating = Rating.query.filter_by(movie_id=movie_id, user_id=user_id).first() if not rating: # Only add a rating if the user is logged in rating = Rating(movie_id=movie_id, user_id=user_id, score=score, timestamp=timestamp) else: rating.score = score db.session.add(rating) db.session.commit() flash("Successfully rated movie.") return redirect("/movies/{}".format(movie_id))
def add_rating(movie_id): """ user adds a rating to a movie """ # gets a score form the user throu the form score = request.form.get("score") if 'user_id' in session: check_rating = db.session.query(Rating).filter( Rating.user_id == session['user_id'], Rating.movie_id == movie_id).first() if check_rating is None: # adds a rating to a movie new_rating = Rating(score=score, movie_id=movie_id, user_id=session['user_id']) db.session.add(new_rating) db.session.commit() return redirect('/') else: # updates an existing rating to a movies new_rating = Rating.query.filter_by( movie_id=movie_id, user_id=session['user_id']).first() new_rating.score = score db.session.add(new_rating) db.session.commit() return redirect('/') else: return redirect("/log-in")
def rating_successful(): """Process new rating and redirect to movie profile page.""" score = request.form.get("rating") user_email = session["email"] timestamp = datetime.now() movie_id = request.form.get("movie_id") # Query the DB for the user id, using the email from the session user_id = db.session.query(User).filter(User.email == user_email).one().user_id count_ratings = db.session.query(Rating).filter(Rating.user_id == user_id, Rating.movie_id == movie_id).count() if count_ratings == 0: rating = Rating(user_id=user_id, movie_id=movie_id, score=score, timestamp=timestamp) db.session.add(rating) db.session.commit() flash("Successfully added rating!") elif count_ratings == 1: rating = db.session.query(Rating).filter(Rating.user_id == user_id, Rating.movie_id == movie_id) rating.score = score db.session.commit() flash("Successfully updated rating!") return redirect('/movies/' + movie_id)
def processing_user_score(): """Records new rating or updates existing rating""" user_score = request.args.get("score") #for user_id and movie_id # if score is Null create new rating in db +flash "u ranked the movie!" # else: update score in db + flash # add to db # commit rating_in_db = db.session.query(Rating.score).filter((Rating.movie_id == movie_id) & (Rating.user_id == user_id)).first() if not rating_in_db: flash("Yay you've rated this movie!") rating_in_db = Rating(user_id=user_id, movie_id=movie_id, user_score=score) db.session.add(rating_in_db) else: flash("We've updated your score for this movie!") rating_in_db.score = int(user_score) db.session.commit() return redirect("/movies" + str(movie_id))
def add_rating_to_db(): """Add user rating to database""" user_rating = request.form.get("rating") user_id = session["logged_in_user_id"] movie_id = request.form.get("movie_id") # Check to see if rating already exists in the database # If it's not there, .first() will return None rating = Rating.query.filter(Rating.user_id == user_id, Rating.movie_id == movie_id).first() # If the rating does not already exist, add it to the database if not rating: rating = Rating(user_id=user_id, movie_id=movie_id, score=user_rating) db.session.add(rating) db.session.commit() flash("Added rating.") return redirect("/movies/" + movie_id) # If the rating already exists in the database for that user # update the rating to reflect the new score else: rating.score = user_rating db.session.commit() flash("Updated rating.") return redirect("/movies/" + movie_id)
def drug_details_process(): """Add/edit a rating.""" spl_set_id = session.get('spl_set_id') thisdrug = Drug.query.get(spl_set_id) score = int(request.form["score"]) comment = request.form["comment"] side_effect = request.form.getlist('side_effect') user_id = session.get("user_id") rating = Rating.query.filter_by(user_id=user_id, spl_set_id=spl_set_id).first() if not rating: rating = Rating(user_id=user_id, spl_set_id=spl_set_id) rating.score = score rating.comment = comment rating.reset_side_effect() for item in side_effect: rating.add_side_effect(item) db.session.add(rating) db.session.commit() return redirect("/rate_drug?spl_set_id=%s" % spl_set_id)
def processing_user_score(): """Records new rating or updates existing rating""" user_score = request.args.get("score") #for user_id and movie_id # if score is Null create new rating in db +flash "u ranked the movie!" # else: update score in db + flash # add to db # commit rating_in_db = db.session.query( Rating.score).filter((Rating.movie_id == movie_id) & (Rating.user_id == user_id)).first() if not rating_in_db: flash("Yay you've rated this movie!") rating_in_db = Rating(user_id=user_id, movie_id=movie_id, user_score=score) db.session.add(rating_in_db) else: flash("We've updated your score for this movie!") rating_in_db.score = int(user_score) db.session.commit() return redirect("/movies" + str(movie_id))
def process_rating(movie_id): score = request.form.get('score') user_id = session.get('user_id') rating_object = Rating.query.filter_by(user_id=user_id).filter_by( movie_id=int(movie_id)).first() if rating_object is None: rating_object = Rating(movie_id=int(movie_id), user_id=user_id, score=score) db.session.add(rating_object) else: rating_object.score = score db.session.commit() return redirect("/movies/" + movie_id)
def add_rating(movie_id): """ Add new rating""" score = request.form.get('rating') user = User.query.filter_by(email=session['email']).one() rating = Rating.query.filter_by(user_id=user.user_id, movie_id=movie_id).first() if rating is None: rating = Rating(score=score, user_id=user.user_id, movie_id=movie_id) db.session.add(rating) flash('Rating Added') else: rating.score = score flash('Rating Updated') db.session.commit() return redirect('/movies/{}'.format(movie_id))
def rate_movie_page(movie_id): """Show individual movie's info""" new_score = request.form.get("movie-rating") movie = Movie.query.get(movie_id) user_id = session["user_id"] rating = Rating.query.filter((Rating.user_id == user_id) & (Rating.movie_id == movie_id)).first() if not rating: rating = Rating(score=new_score, user_id=user_id, movie_id=movie_id) else: rating.score = new_score db.session.add(rating) db.session.commit() return redirect("/movies/%s" % movie_id)
def update_rating(): """Update a rating """ movie_id = int(request.form.get("movie_id")) score = int(request.form.get('score')) user_id = session['user_id'] rating = db.session.query(Rating).filter( Rating.user_id == user_id, Rating.movie_id == movie_id).first() if not rating: rating = Rating(movie_id=movie_id, user_id=user_id, score=score) db.session.add(rating) db.session.commit() else: rating.score = score db.session.commit() flash('You\'ve successfully rated for the movie!') return redirect("/movies/" + str(movie_id))
def add_score(): """Add new score to database""" new_score = request.form.get('new_score') movie_id = request.form.get('movie_id') try: user = session["user"] except KeyError: return "Please log in or register to submit your ratings" try: rating = Rating.query.filter((Rating.user_id == user) & (Rating.movie_id == movie_id)).one() except NoResultFound: rating = Rating(movie_id=movie_id, user_id=user, score=new_score) db.session.add(rating) db.session.commit() return "Your rating has been added!" rating.score = new_score db.session.commit() return "Your rating has been updated!"
def rate_movie(): """Add rating to ratings table.""" user_id = session['user_id'] user = User.query.get(user_id) score = request.form.get("movie_rating") movie_id = request.form.get("movie_id") movie = Movie.query.get(movie_id) # if user has not rated movie, create new rating if movie not in user.movies: rating = Rating(movie_id=movie_id, user_id=user_id, score=score) # if user has rated movie, update old rating else: rating = db.session.query(Rating) \ .filter(Rating.movie_id==movie_id, Rating.user_id==user_id).one() rating.score = score db.session.add(rating) db.session.commit() flash('Rated successfully!') return redirect(f'/movies/{movie_id}')
def save_rating(): """Rout to create retings for saved places""" yelp_id = request.form.get('yelp_id') name = request.form.get('name') score = request.form.get('rating') user = User.query.get(session['user_id']) print("###########lalalal") print(score) print("###########lalalla") #check if place is saved, if not create : restaurant = Restaurants.query.get(yelp_id) print("###########exists") print(restaurant) print("##########exists") if restaurant is None: restaurant = Restaurants(yelp_id=yelp_id, name=name) print("######## new") print(restaurant) print("########### new") db.session.add(restaurant) db.session.commit() print("#########") print(restaurant) print("#########s") saved_place = Saved_places.query.filter_by(yelp_id=yelp_id, user_id=user.user_id).first() print(saved_place) print("##########exists in saved table") if saved_place is None: d = datetime.now() save_date = (d.strftime("%A, %B, %d, %Y")) saved_place = Saved_places(user=user, place=restaurant, save_date=save_date) db.session.add(saved_place) db.session.commit() print("##########create a new saved place ") print(saved_place) print(saved_place) print("##########") # create score #1. Check if it is in DB already: rating = Rating.query.filter_by(yelp_id=yelp_id, user=user).first() print("############ score") print(rating) print("############# score") if rating is None: #db.session.add_all([restaurant, user, saved_place]) rating = Rating(score=score, place=restaurant, user=user, saved=saved_place) db.session.add(rating) db.session.commit() print("########## rating obj") print(rating) else: rating.score = score print("######### rating.score") print(rating.score) return "You have rated this place already" return "Rating is submited" db.session.commit() print(rating) return "Rating added"