def login(): form = LoginForm() db = models.chef() if form.validate_on_submit(): session.permanent = True db = models.chef(username=form.username.data, password=form.password.data) if db.validateLogin() == 1: flash('Invalid Login. Chef does not exist', 'danger') elif db.validateLogin() == 2: flash('Invalid Login. Wrong Password', 'danger') else: user = db.login() session['user'] = user db = models.chef(user_id=session['user'][0][0]) profile = db.checkProfile() user = db.currentUser() session['user'] = user if not profile: return redirect( url_for('profile', user_id=user[0][0], fltr='recipes')) elif not profile[0][1]: return redirect( url_for('profile', user_id=user[0][0], fltr='recipes')) else: return redirect(url_for('home', fltr='All')) if 'user' in session: user = session['user'] return redirect(url_for('profile', user_id=user[0][0], fltr='recipes')) return render_template('login.html', form=form)
def search(search_content, fltr): if 'user' in session: user = session['user'] db = models.chef(title=search_content) suggest = models.chef(user_id=session['user'][0][0], username=search_content) suggested_chef = suggest.suggestChef() recipe = db.searchRecipe() search_user = suggest.searchUser() if request.method == 'POST': if request.form["search"]: search_content = request.form["search"] return redirect( url_for('search', search_content=search_content, fltr=fltr)) elif not request.form["search"]: flash('Please Search recipe or chef', 'danger') return redirect( url_for('search', search_content=search_content, fltr=fltr)) else: return redirect(url_for('login')) return render_template('search.html', search_content=search_content, user=user, recipe=recipe, search_user=search_user, suggested_chef=suggested_chef, fltr=fltr)
def saveRecipe(recipe_id, user_id): db = models.chef(recipe_id=recipe_id) recipe = db.viewSelectRecipe() save = models.chef(saved=recipe[0][5], recipe_id=recipe_id, user_id=user_id) save.saveRecipe() return redirect(url_for('viewpost', recipe_id=recipe_id))
def viewOrder(recipe_id): if 'user' in session: user_request = False db = models.chef(recipe_id=recipe_id) recipe = db.viewSelectOrders() user = session['user'] suggest = models.chef(user_id=session['user'][0][0]) ### suggested_chef = suggest.suggestChef() friend = suggest.checkFriendReq() if friend: if friend[0][2] == session['user'][0][0] and friend[0][3] == 0: user_request = True else: user_request = False comments = db.viewOrderComment() form = addCommment() currentRate = models.chef(recipe_id=recipe_id, user_id=user[0][0]) currentRating = currentRate.yourCurrentRate() if form.validate_on_submit(): create_comment = models.chef(content=form.comment.data, user_id=user[0][0], recipe_id=recipe_id) create_comment.addOrderComment() return redirect(url_for('viewOrder', recipe_id=recipe_id)) elif request.method == 'POST': if request.form["search"]: search_content = request.form["search"] return redirect( url_for('search', search_content=search_content, fltr='posts')) elif not request.form["search"]: flash('Please Search recipe or chef', 'danger') return redirect(url_for('viewOrder', recipe_id=recipe_id)) return render_template('view-order.html', user_request=user_request, active='order', user=user, suggested_chef=suggested_chef, recipe=recipe, comments=comments, form=form) else: return redirect(url_for('login'))
def hot(fltr): if 'user' in session: user_request = False db = models.chef(filter=fltr) db.getAvgRate() recipe = db.viewHotRecipes() form = CreatePost() user = session['user'] suggest = models.chef(user_id=session['user'][0][0]) friend = suggest.checkFriendReq() if friend: if friend[0][2] == session['user'][0][0] and friend[0][3] == 0: user_request = True else: user_request = False profile = suggest.currentUser() suggested_chef = suggest.suggestChef() if form.validate_on_submit() and request.method == 'POST': create = models.chef(title=form.title.data, description=form.content.data, cuisine=form.cuisine.data, user_id=user[0][0]) latest = create.addRecipes() if form.upload_picture.data: picture_file = save_picture(form.upload_picture.data) picture = url_for('static', filename='posted-recipe_images/' + picture_file) upload_picture = models.chef(filename=picture) upload_picture.uploadRecipePicture() elif request.method == 'POST': if request.form["search"]: search_content = request.form["search"] return redirect( url_for('search', search_content=search_content, fltr='posts')) elif not request.form["search"]: flash('Please Search recipe or chef', 'danger') return redirect(url_for('filter')) return redirect(url_for('viewpost', recipe_id=latest)) return render_template('home.html', active='hot', user_request=user_request, user=user, suggested_chef=suggested_chef, recipe=recipe, form=form, fltr=fltr, profile=profile) else: return redirect(url_for('login'))
def masterChef(user_id): if 'user' in session: db = models.chef(user_id=user_id) suggest = models.chef(user_id=session['user'][0][0]) user = session['user'] other_user = db.currentUser() profile = db.checkProfile() rank = db.masterChef() suggested_chef = suggest.suggestChef() return render_template('master_chef.html', user=user, active='master', other_user=other_user, profile=profile, suggested_chef=suggested_chef, rank=rank)
def savedRecipe(user_id, fltr): db = models.chef(user_id=user_id, filter=fltr) recipe = db.viewSavedRecipes() user = session['user'] suggest = models.chef(user_id=session['user'][0][0]) suggested_chef = suggest.suggestChef() if request.method == 'POST': if request.form["search"]: search_content = request.form["search"] return redirect( url_for('search', search_content=search_content, fltr='posts')) elif not request.form["search"]: flash('Please Search recipe or chef', 'danger') return redirect(url_for('saved_filter', user_id=user_id)) return render_template('saved_recipe.html', recipe=recipe, user=user, suggested_chef=suggested_chef, active='saved')
def signUp(): newUser = {} db = models.chef() form = SignUpForm() if form.validate_on_submit(): db = models.chef(username=form.username.data, email_address=str(form.email.data), password=form.password.data) if db.validateUsername() == 1: flash('Chef Username Already Exist!', 'danger') elif db.validateEmail() == 2: flash('Chef Email Already Exist!', 'danger') else: db.addNewUser() session.permanent = True login = models.chef(username=form.username.data, password=form.password.data) user = login.login() session['user'] = user return redirect( url_for('profile', user_id=user[0][0], fltr='recipes')) return render_template('signUp.html', form=form)
def profile(user_id, fltr): if 'user' in session: user_request = False if session['user'][0][0] == user_id: clear = False db = models.chef(user_id=user_id) suggested_chef = db.suggestChef() user = db.currentUser() profile = db.checkProfile() form = ProfileForm() friendsList = db.showFriends() allFriends = db.showAllFriends() recipe = list rank = db.checkRank() rank_name = str rank_image = str if rank <= 50: rank_name = 'Kitchen Porter' rank_image = 'rank_images/kitchen_porter.png' if rank > 50 and rank <= 100: rank_name = 'Chef de Partie' rank_image = 'rank_images/chef_de_partie.png' if rank > 100 and rank <= 200: rank_name = 'Sous Chef' rank_image = 'rank_images/sous_chef.png' if rank > 200 and rank < 500: rank_name = 'Chef de Cuisine' rank_image = 'rank_images/chef_de_cuisine.png' if rank >= 500: rank_name = 'Executive Chef' rank_image = 'rank_images/executive_chef.png' if fltr == 'recipes': recipe = db.userRecipes() elif fltr == 'orders': recipe = db.userOrder() session['user'] = user suggest = models.chef(user_id=session['user'][0][0]) friend = suggest.checkFriendReq() reqs = suggest.friendReq() if friend: if friend[0][2] == session['user'][0][0] and friend[0][3] == 0: user_request = True else: user_request = False if not profile: db.addProfile() return redirect( url_for('profile', user_id=user[0][0], fltr='recipes')) else: pass if form.validate_on_submit() and request.method == 'POST': update = models.chef(first_name=form.fname.data, last_name=form.lname.data, age=form.age.data, gender=form.register_gender.data, username=form.username.data, email_address=form.email.data, user_id=user_id) if update.updt_validateUsername() == session['user'][0][1] and update.updt_validateEmail() == \ session['user'][0][2]: clear = True elif update.updt_validateUsername() != session['user'][0][ 1] and update.updt_validateUsername() != 1: flash('Chef Username Already Exist!', 'danger') elif update.updt_validateEmail() != session['user'][0][ 2] and update.updt_validateEmail() != 2: flash('Chef Email Already Exist!', 'danger') elif update.updt_validateUsername( ) == 1 or update.updt_validateEmail() == 2: clear = True if clear: update.updateUser() update.updateProfile() if form.upload_picture.data: picture_file = save_profile_picture( form.upload_picture.data) picture = url_for('static', filename='profile_pics/' + picture_file) upload_picture = models.chef(filename=picture, user_id=user_id) upload_picture.uploadProfilePic() flash('Success! Profile Saved', 'success') return redirect(url_for('profile', user_id=user_id, fltr=fltr)) elif request.method == 'POST': if request.form["search"]: search_content = request.form["search"] return redirect( url_for('search', search_content=search_content, fltr='posts')) elif not request.form["search"]: flash('Please Search recipe or chef', 'danger') return redirect( url_for('profile', user_id=user_id, fltr=fltr)) elif request.method == "GET": if len(profile) != 0: form.fname.data = profile[0][1] form.lname.data = profile[0][2] form.age.data = profile[0][3] form.register_gender.data = profile[0][4] else: form.fname.data = None form.lname.data = None form.age.data = None form.username.data = user[0][1] form.email.data = user[0][2] return render_template('profile.html', user_request=user_request, form=form, fltr=fltr, user=user, recipe=recipe, suggested_chef=suggested_chef, active='profile', profile=profile, friendsList=friendsList, allFriends=allFriends, reqs=reqs, rank_name=rank_name, rank_images=rank_image, rank_points=rank) else: flash('Please Logout and Login to your desired account', 'info') return redirect(url_for('login')) else: return redirect(url_for('login'))
def removeFriend(current_user, other_user): db = models.chef(user_id=current_user, other_user=other_user) db.removeFriend() return redirect(url_for('viewProfile', user_id=other_user, fltr='recipes'))
def deleteOrder(recipe_id): db = models.chef(recipe_id=recipe_id) db.deleteOrder() flash('Order Deleted Successfully!', 'success') return redirect(url_for('ordersFeed', fltr='All'))
def deletePost(recipe_id): db = models.chef(recipe_id=recipe_id) db.deleteRecipe() flash('Posted Recipe Deleted Successfully!', 'success') return redirect(url_for('home', fltr='All'))
def viewProfile(user_id, fltr): if 'user' in session: user_request = False isRequest = False other_request = False isFrnd = False db = models.chef(user_id=user_id) suggest = models.chef(user_id=session['user'][0][0]) user = session['user'] other_user = db.currentUser() profile = db.checkProfile() recipe = list friend = suggest.checkFriend() viewedFriend = db.checkViewdReq() friendReq = suggest.checkFriendReq() friendCheck = models.chef(user_id=user_id, other_user=session['user'][0][0]) isfren = friendCheck.isFriend() friendsList = db.showFriends() allFriends = db.showAllFriends() rank = db.checkRank() rank_name = str rank_image = str if rank <= 50: rank_name = 'Kitchen Porter' rank_image = 'rank_images/kitchen_porter.png' if rank > 50 and rank <= 100: rank_name = 'Chef de Partie' rank_image = 'rank_images/chef_de_partie.png' if rank > 100 and rank <= 200: rank_name = 'Sous Chef' rank_image = 'rank_images/sous_chef.png' if rank > 200 and rank < 500: rank_name = 'Chef de Cuisine' rank_image = 'rank_images/chef_de_cuisine.png' if rank >= 500: rank_name = 'Executive Chef' rank_image = 'rank_images/executive_chef.png' if isfren: if isfren[0][4] == 1: isFrnd = True elif isfren[0][4] != 1 and isfren[0][2] != session['user'][0][0]: isRequest = True elif isfren[0][2] == session['user'][0][0]: other_request = True if friendReq: if friendReq[0][2] == session['user'][0][0] and friendReq[0][ 3] == 0: user_request = True else: user_request = False if fltr == 'recipes': recipe = db.userRecipes() elif fltr == 'orders': recipe = db.userOrder() suggested_chef = suggest.suggestChef() if request.method == 'POST': if request.form["search"]: search_content = request.form["search"] return redirect( url_for('search', search_content=search_content, fltr='posts')) elif not request.form["search"]: flash('Please Search recipe or chef', 'danger') return redirect( url_for('viewProfile', user_id=user_id, fltr=fltr)) return render_template('userProfile.html', isFrnd=isFrnd, other_request=other_request, user_request=user_request, request=isRequest, fltr=fltr, user=user, active='profile', other_user=other_user, recipe=recipe, profile=profile, suggested_chef=suggested_chef, friendsList=friendsList, allFriends=allFriends, rank_name=rank_name, rank_images=rank_image) else: return redirect(url_for('login'))