示例#1
0
def delete_post(post_id):
    if 'user' not in session:
        flash('Please log in to access this page', 'warning')
        return redirect(url_for('users.login'))
    post_table = Posts()
    post = post_table.get_post(post_id)
    if post.username != session['user']["username"]:
        abort(403)
    post_table.delete_post(post_id)
    flash('Your post has been deleted!', 'success')
    return redirect(url_for('main.home'))
示例#2
0
def post(post_id):
    if 'user' not in session:
        flash('Please log in to access this page', 'warning')
        return redirect(url_for('users.login'))

    post = Posts()
    post = post.get_post(post_id)
    print("_-----------------")
    print(session)
    print(session['user']['user_current_location'])
    locations = []  # long list of coordinates
    #place = get_coordinates(current_app.config['GOOGLEMAPS_KEY'], session['user']['user_current_location'])
    place = {}
    try:
        place['lat'] = session['user']['user_current_location'][0]
        place['lng'] = session['user']['user_current_location'][1]
        place['icon'] = 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
        place['infobox'] = "<b>Your Current Location</b>"
        locations.append(place)
    except:
        flash(
            "Your location shows error, Please input your location in search bar",
            "warning")
        return redirect(url_for('main.offerhelp'))
    place1 = {}
    place1 = get_coordinates(current_app.config['GOOGLEMAPS_KEY'],
                             post.address)
    place1['icon'] = 'http://maps.google.com/mapfiles/ms/icons/red-dot.png'
    place1['infobox'] = "<b>Target Location</b>"
    locations.append(place1)

    print(locations)

    map_offerhelp = Map(identifier="map_offerhelp",
                        style=("height:350px;"
                               "width:730px;"),
                        lat=locations[0]['lat'],
                        lng=locations[0]['lng'],
                        markers=[(loc['lat'], loc['lng'], loc['infobox'],
                                  loc['icon']) for loc in locations],
                        fit_markers_to_bounds=True)
    print(post.timestamp)
    user_table = Users()
    #post = Post.query.get_or_404(post_id)
    return render_template('post.html',
                           title=post.title,
                           post=post,
                           user_table=user_table,
                           map_offerhelp=map_offerhelp)
示例#3
0
def user_posts(username):
    # page = request.args.get('page', 1, type=int)
    # user = User.query.filter_by(username=username).first_or_404()
    # posts = Post.query.filter_by(author=user)\
    #     .order_by(Post.date_posted.desc())\
    #     .paginate(page=page, per_page=5)
    post_table = Posts()
    #list of Post objects
    posts = post_table.query_post_by_username(username)
    length = len(posts)
    print("here", posts)
    user_table = Users()
    return render_template('user_posts.html',
                           posts=posts,
                           user_table=user_table,
                           username=username,
                           length=length)
示例#4
0
文件: routes.py 项目: walimuchan/Blog
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        posts = Posts(title=form.title.data, content=form.content.data, author=current_user)
        db.session.add(posts)
        db.session.commit()
        flash('your post has been created!', 'success')
        return redirect(url_for('home'))
    return render_template('create_post.html', title='Create New Post', form=form, legend='Create New Post')
示例#5
0
def addPost():
    token = request.headers['token']
    token_validity = User.verify_auth_token(token=token)
    if token_validity:
        title = request.json['title']
        content = request.json['content']
        user_id = request.json['user_id']

        post = Posts(title=title, content=content, user_id=int(user_id))
        db.session.add(post)
        db.session.commit()

        return ("Post has been created")
示例#6
0
def new_post():
    if 'user' not in session:
        flash('Please log in to access this page', 'warning')
        return redirect(url_for('users.login'))
    form = PostForm()
    posts_table = Posts()
    if form.validate_on_submit():
        # post = Post(title=form.title.data, type=form.type.data, phone=form.phonember.data,emailaddress=form.emailaddress.data,
        #             address=form.address.data,content=form.content.data, author=session['user']['username'])
        # db.session.add(post)
        # db.session.commit()
        try:
            place = get_coordinates(current_app.config['GOOGLEMAPS_KEY'],
                                    form.address.data)
        except:
            form.address.data = None
            flash("Your address is not valid", "warning")
            return render_template('create_post.html',
                                   title='New Post',
                                   form=form,
                                   legend='New Request')
        posts_table.put_post(title=form.title.data,
                             type=form.type.data,
                             phone=form.phonember.data,
                             email=form.emailaddress.data,
                             address=form.address.data,
                             content=form.content.data,
                             username=session['user']['username'],
                             sdate=form.sdate.data.strftime('%Y-%m-%d'),
                             fdate=form.fdate.data.strftime('%Y-%m-%d'),
                             lat=place['lat'],
                             lng=place['lng'])

        flash('Your request has been created!', 'success')
        return redirect(url_for('main.offerhelp'))
    return render_template('create_post.html',
                           title='New Post',
                           form=form,
                           legend='New Request')
示例#7
0
def update_post(post_id):
    if 'user' not in session:
        flash('Please log in to access this page', 'warning')
        return redirect(url_for('users.login'))
    post_table = Posts()
    post = post_table.get_post(post_id)
    if post.username != session['user']['username']:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.type = form.type.data
        post.sdate = datetime.strftime(form.sdate.data, '%Y-%m-%d')
        post.fdate = datetime.strftime(form.fdate.data, '%Y-%m-%d')
        #post.fdate=form.fdate.data
        post.address = form.address.data
        post.email = form.emailaddress.data
        post.phone = form.phonember.data
        post.content = form.content.data
        post.type = form.type.data
        #db.session.commit()
        post_table.update_post(post)
        flash('Your post has been updated!', 'success')
        return redirect(url_for('posts.post', post_id=post.post_id))
    elif request.method == 'GET':
        form.title.data = post.title
        form.type.data = post.type
        form.fdate.data = datetime.strptime(post.fdate, '%Y-%m-%d')
        form.sdate.data = datetime.strptime(post.sdate, '%Y-%m-%d')
        form.phonember.data = post.phone
        form.address.data = post.address
        form.emailaddress.data = post.email
        form.content.data = post.content
        form.type.data = post.type
    return render_template('create_post.html',
                           title='Update Post',
                           form=form,
                           legend='Update Post')
示例#8
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Posts(title=form.title.data,
                     content=form.content.data,
                     author=current_user)
        db.session.add(post)
        db.session.commit()
        flash("Your course has been created!", "success")
        return redirect(url_for("main.home"))
    return render_template('create_post.html',
                           title='New Post',
                           form=form,
                           legend='New Post')
示例#9
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Posts(title=form.title.data,
                     content=form.content.data,
                     user_id=current_user.id)
        db.session.add(post)
        db.session.commit()
        flash('Your post has been created!', 'success')
        return redirect(url_for('main.home'))
    return render_template(
        'create_post.html',
        title='New Post',
        form=form,
    )
def offerhelp():
    form = SearchForm()
    post_table = Posts()
    users = Users()
    s3 = boto3.client('s3')
    target_image_path = '/tmp'

    allusers = users.get_all_users()
    for user in allusers:
        url = user['image_file']
        r = requests.get(url)
        if r.status_code == 403:
            url = s3.generate_presigned_url(
                'get_object',
                Params={
                    'Bucket':
                    'ece1779-final',
                    'Key':
                    '/tmp/' + session['user']['email'] +
                    '/user_images/{}'.format(user['image_name'])
                },
                ExpiresIn=604800)
            users.update_imagefile2(user['username'], url)
    for user in allusers:
        if (imgisexist(user['image_file'], target_image_path)):
            #print('ece1779-final', user['email'] + '/user_images/{}'.format(user['image_file']))
            #print(target_image_path + '/' + user['image_file'])
            print(user['image_file'])
            # s3.download_file('ece1779-final','/tmp/'+user['email'] + '/user_images/{}'.format(user['image_file']),
            #              target_image_path + '/' + user['image_file'])

    if form.validate_on_submit():
        #locations=post_table.query_post_by_address(form.location.data)
        types = post_table.get_all_posts()
        if form.type.data != "All":
            #print(form.type.data)
            types = post_table.query_post_by_type(form.type.data)
        sdates = post_table.query_post_by_sdate(form.sdate.data)
        fdates = post_table.query_post_by_fdate(form.fdate.data)
        search_results = extra_same_elem(types, sdates)
        search_results = extra_same_elem(search_results, fdates)
        #print(search_results)

        #####################################################################
        locations = []  # long list of coordinates
        place = get_coordinates(current_app.config['GOOGLEMAPS_KEY'],
                                form.location.data)
        place['infobox'] = "<b>Hello World</b>"
        locations.append(place)
        for item in search_results:
            #print(item)
            temp = {}
            temp['lat'] = item.lat
            temp['lng'] = item.lng
            temp['infobox'] = "<b>Hello World from other place</b>"
            locations.append(temp)
        print(locations)
        temp_results = []
        i = 1
        user_current_location = [locations[0]['lat'], locations[0]['lng']]
        session['user']['user_current_location'] = user_current_location
        #print(session['user']['user_current_location'])
        for item in search_results:
            post_location = [locations[i]['lat'], locations[i]['lng']]
            i += 1
            item.distance = great_circle(user_current_location,
                                         post_location).km
            print("Distance:{}km".format(item.distance))
            if form.distance.data >= item.distance:
                temp_results.append([item.distance, item.post_id])
            #print(second_search_results)
        temp_results.sort()
        #print(temp_results)
        search_results.clear()
        for item in temp_results:
            post = post_table.get_post(item[1])
            search_results.append(post)
            if len(search_results) > 4:
                break
        #####################################################################
        print(search_results)
        user_table = Users()

        return render_template('offerhelp.html',
                               posts=search_results,
                               user_table=user_table,
                               form=form,
                               legend='Filter Request')
    else:
        post_table = Posts()
        # list of Post objects
        posts = post_table.get_all_posts()
        user_table = Users()
        return render_template('offerhelp.html',
                               posts=posts,
                               user_table=user_table,
                               form=form,
                               legend='Filter Request')