def settings(): if 'username' not in session: return redirect(url_for('signin')) user = dbHandler.getUserInfo(session['username']) url = user['photo'] if request.method == 'POST': #Logic to verify if password and verify password are same to be added user = dbHandler.getUserInfo(session['username']) try: img = request.files['photo'] if img and allowed_file(img.filename): filename = session['username'] + "." + img.filename.rsplit( '.', 1)[1].lower() #Feature can be added to remove old photo url = filename img.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) dbHandler.updateUser(request, session['username'], img=url) return render_template('editProfile.html', msg="Changes Saved", user=dbHandler.getUserInfo( session['username']), logged_user=find_user()) except: dbHandler.updateUser(request, session['username'], img=url) return render_template('editProfile.html', msg="Changes Saved", user=dbHandler.getUserInfo( session['username']), logged_user=find_user()) return render_template('editProfile.html', msg="", user=user, logged_user=find_user())
def settings(): logged_in = session.get('logged_in') if logged_in: if request.method == 'POST': newSports = "" newSmoker = "" userID = session.get("userid") newUsername = request.form['inputUsername'] newPassword = request.form['inputPassword'] newconfirmPassword = request.form['inputConfirmPassword'] newCountry = request.form['inputCountry'] newBirthday = request.form['inputBirthday'] newFood = request.form['favoriteFood'] newGender = request.form['genders'] try: newSports = request.form['lifestyle'] newSmoker = request.form['smoker'] except: pass if newPassword == newconfirmPassword: dbHandler.editUser(userID, newUsername, newPassword, newCountry, newBirthday, newGender, newSports, newFood, newSmoker) userID = session.get("userid") user = dbHandler.getUserInfo(userID) return redirect(url_for('home')) #return render_template('account.html',username = user[0][1], password = user[0][2] , country = user[0][3], birthday=user[0][4], gender=user[0][5], # sports = user[0][6], food = user[0][7], smoker=user[0][8]) else: flash("Invalid credentials. Please try again!") userID = session.get("userid") user = dbHandler.getUserInfo(userID) return render_template('account.html', username=user[0][1], password=user[0][2], country=user[0][3], birthday=user[0][4], gender=user[0][5], sports=user[0][6], food=user[0][7], smoker=user[0][8]) #newUsername = newUsername, newCountry = newCountry, newBirthday = newBirthday, newGender = newGender, newPassword = newPassword, # newconfirmPassword = newconfirmPassword,newSports= newSports, newFood = newFood, newSmoker = newSmoker ) if request.method == "GET": userID = session.get("userid") user = dbHandler.getUserInfo(userID) return render_template('account.html', username=user[0][1], password=user[0][2], country=user[0][3], birthday=user[0][4], gender=user[0][5], sports=user[0][6], food=user[0][7], smoker=user[0][8]) else: render_template("index.html")
def getSuggestions(self, userid): print("getSuggestions") userList = dbHandler.getUserList(userid) suggestionList = {} elList = [] for el in userList: elList.append(dbHandler.getElementByID(el[1])[0]) diseasesClass = [] for el in elList: diseasesClass.extend(self.search_diseasesByClass(el[1])) userInfo = dbHandler.getUserInfo(userid)[0] country = userInfo[3] diseasesCountry = [] if country: diseasesCountry = self.search_diseaseByCountry(country) suggestionList["class"] = diseasesClass suggestionList["country"] = diseasesCountry suggestionList["risks"] = self.search_predispositions( userInfo[6], userInfo[8], userInfo[5], userInfo[7]) return suggestionList
def editItem(category_id, item_id): if 'email' in login_session.keys(): edit_item = models.item_get(item_id) user_id = models.getUserID(login_session['email']) if edit_item.user_id == user_id: form = forms.itemForm(request.form) user = models.getUserInfo(user_id) category = models.category_get(category_id) if request.method == 'POST' and form.validate(): edit_item.name = form.name.data edit_item.image = form.image.data edit_item.description = form.description.data models.item_edit(edit_item) items = models.items_get_by_category(category_id) return render_template('categories/show.html', category=category, items=items, user=user) else: return render_template('items/edit.html', category=category, item=edit_item, form=form, user=user) else: flash("You aren't the owner for that.") return redirect(url_for('showCategory', category_id=category_id)) else: return redirect(url_for('showCategory', category_id=category_id))
def editCategory(category_id): # Adding logged in user verification to every route here on out. if 'email' in login_session.keys(): # Get the category out of the DB. edit_category = models.category_get(category_id) # Let's make sure this user is the cateogory owner. user_id = models.getUserID(login_session['email']) if edit_category.user_id == user_id: # Get the form out of the form module. form = forms.categoryForm(request.form) # If the form is submitted via POST and is validated: if request.method == 'POST' and form.validate(): # Update the category with the form data edit_category.name = form.name.data edit_category.image = form.image.data edit_category.description = form.description.data # Send the updated category back to the DB. models.category_edit(edit_category) # Redirect to the index page. return redirect(url_for('index')) else: # If the route is requested via GET render the edit page. user = models.getUserInfo(user_id) return render_template('categories/edit.html', category=edit_category, form=form, user=user) else: flash("You aren't the owner for that.") return redirect(url_for('index')) else: return redirect(url_for('index'))
def home(): #Some backend to be added to do the following: #1. Get some stats to be displayed on top. #2. Get the top 5 projects of each category. #The above function needs to be written both in models.py #Debugger code to get all posts and backers posts = dbHandler.getPost() backers = dbHandler.getBackers() no_of_posts = dbHandler.getPostCount() no_of_backings = dbHandler.getBackingCount() tot_backing_funds = dbHandler.getBackingFunds() no_of_users = dbHandler.getUserCount() if 'username' in session: user = dbHandler.getUserInfo(session['username']) return render_template('index.html', no_of_users=no_of_users, profile_pic=user['photo'], logged_user=session['username'], posts=posts, backers=backers, no_of_posts=no_of_posts, no_of_backings=no_of_backings, tot_backing_funds=tot_backing_funds) else: return render_template('index.html', profile_pic="default.png", no_of_users=no_of_users, logged_user="", posts=posts, backers=backers, no_of_backings=no_of_backings, no_of_posts=no_of_posts, tot_backing_funds=tot_backing_funds)
def newCategory(): # If the user is logged in: if 'email' in login_session.keys(): # Get the form for categories out of the forms module. form = forms.categoryForm(request.form) user_id = models.getUserID(login_session['email']) user = models.getUserInfo(user_id) # If the form is submitted via POST and is validated: if request.method == 'POST' and form.validate(): # Create a new category object to store all data from the form. new_category = { "name": form.name.data, "image": form.image.data, "description": form.description.data, "user_id": models.getUserID(login_session['email']) } # Pass that object to the DB via the models module. models.category_new(new_category) # Redirect to the index page. return redirect(url_for('index')) else: # If the route is requested via GET, render the new category page. return render_template('categories/new.html', form=form, user=user) else: return redirect(url_for('index'))
def showItem(category_id, item_id): category = models.category_get(category_id) item = models.item_get(item_id) if 'email' in login_session.keys(): user_id = models.getUserID(login_session['email']) user = models.getUserInfo(user_id) return render_template('items/show.html', category=category, item=item, user=user) else: return render_template('items/public.html', category=category, item=item)
def dashboard(): if 'username' not in session: return redirect(url_for('signin')) else: user = dbHandler.getUserInfo(session['username']) user_full_name = user['fullname'] created_posts = dbHandler.getMyCreatedPosts(session['username']) backed_posts = dbHandler.getBackedPosts(session['username']) return render_template('dashboard.html', img=user['photo'], fullname=user_full_name, created_posts=created_posts, backed_posts=backed_posts, logged_user=find_user())
def showCategory(category_id): # Get the selected category from the DB. category = models.category_get(category_id) # Get the items for that category out of the DB. items = models.items_get_by_category(category_id) # Show the information on the shetlers show page. if 'email' in login_session.keys(): user_id = models.getUserID(login_session['email']) user = models.getUserInfo(user_id) return render_template('categories/show.html', category=category, items=items, user=user) else: state = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in xrange(32)) login_session['state'] = state return render_template('categories/public.html', category=category, items=items, STATE=state)
def getUserPage(name): flag = 0 try: flag = request.args['flag'] flag = 1 except: flag = 0 user = dbHandler.getUserInfo(name) created_posts = dbHandler.getMyCreatedPosts(name) backed_posts = dbHandler.getBackedPosts(name) return render_template('view_user.html', flag=flag, user=user, img=user['photo'], fullname=user['fullname'], created_posts=created_posts, backed_posts=backed_posts, logged_user=find_user())
def index(): categories = models.category_list() items = models.items_get_10() if 'email' in login_session.keys(): user_id = models.getUserID(login_session['email']) user = models.getUserInfo(user_id) return render_template('index.html', categories=categories, items=items, user=user) else: # Create an anti-forgery state token by creatings a unique 32 char # string. state = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in xrange(32)) # Save that state token to our login_session object. login_session['state'] = state # And return the template to log in, while passing along the state # string. return render_template('public.html', STATE=state, categories=categories, items=items)
def deleteItem(category_id, item_id): if 'email' in login_session.keys(): delete_item = models.item_get(item_id) user_id = models.getUserID(login_session['email']) if delete_item.user_id == user_id: form = forms.deleteForm(request.form) category = models.category_get(category_id) user = models.getUserInfo(user_id) if request.method == 'POST': models.item_delete(delete_item) return redirect(url_for('showCategory', category_id=category.id)) else: return render_template('items/delete.html', category=category, item=delete_item, user=user, form=form) else: flash("You aren't the owner for that.") return redirect(url_for('showCategory', category_id=category_id)) else: return redirect(url_for('showCategory', category_id=category_id))
def newItem(category_id): if 'email' in login_session.keys(): form = forms.itemForm(request.form) user_id = models.getUserID(login_session['email']) user = models.getUserInfo(user_id) category = models.category_get(category_id) if request.method == 'POST' and form.validate(): new_item = { "name": form.name.data, "image": form.image.data, "description": form.description.data, "user_id": models.getUserID(login_session['email']), "category_id": category_id } models.item_new(category_id, new_item) items = models.items_get_by_category(category_id) return render_template('categories/show.html', category=category, items=items, user=user) else: return render_template('items/new.html', category=category, form=form, user=user) else: return redirect(url_for('showCategory', category_id=category_id))
def deleteCategory(category_id): if 'email' in login_session.keys(): # Get the category to be deleted out of the DB. delete_category = models.category_get(category_id) user_id = models.getUserID(login_session['email']) if delete_category.user_id == user_id: form = forms.deleteForm(request.form) if request.method == 'POST': # Delete the category out of the DB. models.category_delete(delete_category) # Redirect to the index page. return redirect(url_for('index')) else: # If the route is requested via GET render the delete page. user = models.getUserInfo(user_id) return render_template('categories/delete.html', category=delete_category, user=user, form=form) else: flash("You aren't the owner for that.") return redirect(url_for('index')) else: return redirect(url_for('index'))
def verifyUser(request): if 'username' in request.POST: usern = request.POST['username'] else: usern = '' if 'password' in request.POST: passw = request.POST['password'] else: passw = '' user = authenticate(username=usern, password=passw) if user is not None: if not user.is_active: return render_to_response("customer/register.html",{'cart':0,'fail':2}) else: auth.login(request, user) userInfo = getUserInfo(usern) request.session['is_superuser'] = userInfo[3] #print(request.session['is_superuser']) else: return render_to_response("customer/register.html",{'cart':0,'fail':1}) if request.session['is_superuser'] == True: return HttpResponseRedirect('admin') else: return HttpResponseRedirect('home')
def find_user(): if 'username' in session: user = dbHandler.getUserInfo(session['username']) return session['username'] return ""