Example #1
0
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())
Example #2
0
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")
Example #3
0
    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
Example #4
0
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))
Example #5
0
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'))
Example #6
0
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)
Example #7
0
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'))
Example #8
0
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)
Example #9
0
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())
Example #10
0
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)
Example #11
0
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())
Example #12
0
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)
Example #13
0
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))
Example #14
0
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))
Example #15
0
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'))
Example #16
0
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')
Example #17
0
def find_user():
    if 'username' in session:
        user = dbHandler.getUserInfo(session['username'])
        return session['username']
    return ""