def user_popup(username):
    user = User.query.filter_by(username=username).first_or_404()
    if current_user.hindi != True:
        form = EmptyForm()
        return render_template('user_popup.html', user=user, form=form)
    else:
        form = EmptyForm()
        return render_template('user_popup.html', user=user, form=form)
Example #2
0
def unfollow(username):
    form = EmptyForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=username).first(
        )  #sets user to the first match found or None if no match found
        if user is None:  #if no username match found...
            flash(_('User %(username)s not found',
                    username=username))  #flash message
            return redirect(url_for('main.index'))  #and then send user to home
        if user == current_user:  #if user tries to unfollow themselves...
            flash(
                _('Nice try %(username)s, you cannot unfollow yourself.',
                  username=username.title()))  #print flash message
            return redirect(url_for(
                'main.user',
                username=username))  #and then takes the user their page
        current_user.unfollow(
            user
        )  #if username is found and it is not the current_user's, process the unfollow
        db.session.commit()  #save changes in database
        flash(_('You no longer follow %(username)s',
                username=username.title()))  #flash message
        return redirect(url_for(
            'main.user', username=username))  #redirect user to their profile
    else:
        return redirect(
            url_for('main.index')
        )  #if submission cant be validated redirect user to home page
Example #3
0
def user(username, category="_favorite_posts"):
    user = User.query.filter_by(username=username).first_or_404()
    form = EmptyForm()
    page = request.args.get('page', 1, type=int)
    page_to_vievs = category + '.html'
    if category == "_favorite_posts":
        liked_posts = user.liked_posts().paginate(
            page, current_app.config['POSTS_PER_PAGE'], False)
        next_url = url_for(
            'main.blog',
            page=liked_posts.next_num) if liked_posts.has_next else None
        prev_url = url_for(
            'main.blog',
            page=liked_posts.prev_num) if liked_posts.has_prev else None
    if category == '_recomendation':
        liked_posts = db.session.query(Post).filter(
            Post.selected_posts == 1).all()
        next_url, prev_url = None, None
    if category == '_read_later':
        liked_posts = user.to_read_later().paginate(
            page, current_app.config['POSTS_PER_PAGE'], False)
        next_url = url_for(
            'main.blog',
            page=liked_posts.next_num) if liked_posts.has_next else None
        prev_url = url_for(
            'main.blog',
            page=liked_posts.prev_num) if liked_posts.has_prev else None
    return render_template('user_page.html',
                           page_to_vievs=page_to_vievs,
                           Comments=Comments,
                           user=user,
                           form=form,
                           liked_posts=liked_posts,
                           prev_url=prev_url,
                           next_url=next_url)
def user(username):
    user = User.query.filter_by(username=username).first_or_404()
    page = request.args.get('page', 1, type=int)
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)
    #photos = user.photos.order_by(Photo.timestamp.desc()).paginate(
    # 3    page, current_app.config['MEDIA_PER_PAGE'], False
    # )
    #videos = user.videos.order_by(Video.timestamp.desc()).paginate(
    #    page, current_app.config['MEDIA_PER_PAGE'], False
    # )

    next_url = url_for('main.user',
                       username=user.username,
                       page=posts.next_num) if posts.has_next else None
    prev_url = url_for('main.user',
                       username=user.username,
                       page=posts.prev_num) if posts.has_prev else None
    form = EmptyForm()
    return render_template('user.html',
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url,
                           form=form,
                           user=user)
Example #5
0
def post(id):
    post = Post.query.filter_by(id=id).first_or_404()
    form = EmptyForm()
    usernames = db.session.query(User.username).all()
    usernames = [x[0] for x in usernames]
    return render_template('post.html', title=f'Post: {id}',
                           post=post, form=form, author=post.author.username, usernames=usernames)
Example #6
0
def followed():
    form = EmptyForm()
    return render_template('follow.html',
                           followers=current_user.followed.all(),
                           current_user=current_user,
                           form=form,
                           title=_('My following'))
Example #7
0
def user(username):
    user = User.query.filter_by(username=username).first_or_404(
    )  # returns 404 if no user by that username found
    page = request.args.get(key='page', default=1, type=int)
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        page, current_app.config['POSTS_PER_PAGE'], False
    )  # False parameter returns empty page instead of 404 error if trying to navigate to a page that doesn't exist
    if posts.has_next:
        next_url = url_for(
            'main.user', username=user.username, page=posts.next_num
        )  # need username = user.username argument because url_for has to point back to same profile
    else:
        next_url = None
    if posts.has_prev:
        prev_url = url_for('main.user',
                           username=user.username,
                           page=posts.prev_num)
    else:
        prev_url = None
    form = EmptyForm(
    )  # add options to follow or unfollow, specified by username.
    return render_template('user.html',
                           user=user,
                           posts=posts.items,
                           form=form,
                           next_url=next_url,
                           prev_url=prev_url)
Example #8
0
def user(username):  # <username> 이랑 변수명 맞춰줘야됨.
    # username에 맞는 값 가져오기 시도하여 성공하면 결과 가지고, 실패하면 404 에러 페이지 출력 
    #   -> 사용자 이름이 데이터베이스에 존재하지 않으면 함수가 반환되지 않고 대신 404예외가 발생하기 때문에 쿼리가 사용자를 반환했는지 확인하지 않아도 됨.
    user = User.query.filter_by(username=username).first_or_404() 
                              #(db에있는 column= 변수명)
    """
    posts = [
        {'author': user, 'body': 'Test post #1'},
        {'author': user, 'body': 'Test post #2'}
    ]
    """
    # 사용자 프로필 보기 기능의 페이지 매김
    page = request.args.get('page', 1, type=int) 
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        page , current_app.config['POSTS_PER_PAGE'], False)
    next_url = url_for('main.user', username=user.username, page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('main.user', username=user.username, page=posts.prev_num) \
        if posts.has_prev else None
   # print(f'>>>>>>>>>>>>>    {posts.items}') # [<Post post6>, <Post post5>, <Post post4>, <Post post3>, <Post post2>]
    # app.config['POSTS_PER_PAGE'] 만큼 출력 
    #print('>>>>> {next_url} , {prev_url}' )

    # 팔로우or언팔로우 버튼을 렌더링하기 위해 EmptyForm 객체를 인스턴스화 하여 user.html 템플릿에 전달  
    form = EmptyForm()
    return render_template('user.html', user=user, posts=posts.items, next_url=next_url, prev_url=prev_url, form=form)  # 성공하면 user 변수를 user에 넣고, posts 변수를 posts에 넣어 user.html 열기
Example #9
0
def user(username):
    loggedin_user = User.query.filter_by(username=username).first_or_404()
    page = request.args.get("page", 1, type=int)

    posts = loggedin_user.posts.order_by(Post.timestamp.desc()).paginate(
        page, current_app.config["POSTS_PER_PAGE"], False
    )
    next_url = (
        url_for("main.user", username=username, page=posts.next_num)
        if posts.has_next
        else None
    )
    prev_url = (
        url_for("main.user", username=username, page=posts.prev_num)
        if posts.has_prev
        else None
    )

    form = EmptyForm()
    return render_template(
        "user.html",
        user=loggedin_user,
        posts=posts.items,
        next_url=next_url,
        prev_url=prev_url,
        form=form,
    )
Example #10
0
def user(username):
    user = User.query.filter_by(username=username).first_or_404()
    page = request.args.get('page', 1, type=int)
    pagination = user.posts.order_by(Post.timestamp.desc()).paginate(page, current_app.config['POSTS_PER_PAGE'], False)
    posts = pagination.items
    form = EmptyForm()
    return render_template('user.html', user=user, posts=posts, form=form, pagination=pagination)
Example #11
0
def user(username):
    user = User.query.filter_by(username=username).first_or_404()
    page = request.args.get('page', 1, type=int)
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)
    next_url = url_for('main.user',
                       username=user.username,
                       page=posts.next_num) if posts.has_next else None
    prev_url = url_for('main.user',
                       username=user.username,
                       page=posts.prev_num) if posts.has_prev else None
    empty_form = EmptyForm()
    post_form = PostForm()

    if post_form.validate_on_submit():
        create_post(body=post_form.post.data)
        return redirect(url_for('main.user', username=username))

    return render_template('user.html',
                           user=user,
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url,
                           empty_form=empty_form,
                           post_form=post_form)
Example #12
0
def follow(username):
    form = EmptyForm()
    if form.validate_on_submit():  #if follow is clicked...
        user = User.query.filter_by(username=username).first(
        )  #check for a matching username in User db
        if user is None:  #if no matching username found in User db...
            flash(_('User %(username)s not found',
                    username=username.title()))  #flash message
            return redirect(
                url_for('main.index'))  #and redirect user to home page
        if user == current_user:  #if user attempts to follow themself...
            flash(_('Nice try, you cannot follow yourself.'))  #flash message
            return redirect(url_for(
                'main.user',
                username=username))  #and send them back to their profile
        current_user.follow(
            user
        )  #if user is NOT == None and NOT == current_user, follow the user that current_user wishes to follow
        db.session.commit()  #update the data in the database
        flash(
            _('You are now following %(username)s!',
              username=username.title()))  #flash confirmation message
        return redirect(url_for(
            'main.user',
            username=username))  #finally send them back to their profile page
    else:
        return redirect(
            url_for('main.index'
                    ))  #if form is not validated, redirect user to home page
Example #13
0
def user(username):
    user = User.query.filter_by(username=username).first_or_404()
    form = EmptyForm()
    return render_template(
        "user.html",
        user=user,
        form=form,
    )
Example #14
0
def users():
    page = request.args.get('page', 1, type=int)
    users = User.query.order_by(User.id.desc()).paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)
    next_url = url_for('main.explore', page=users.next_num) if users.has_next else None
    prev_url = url_for('main.explore', page=users.prev_num) if users.has_prev else None
    form = EmptyForm()
    return render_template("users.html", title='Users',
                           users=users.items, next_url=next_url, prev_url=prev_url, form=form)
Example #15
0
def user(username):
    user = User.query.filter_by(username=username).first_or_404()
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        1, current_app.config['POSTS_PER_PAGE'], False)
    form = EmptyForm()
    return render_template('user.html',
                           title=user.username,
                           user=user,
                           posts=posts.items,
                           form=form)
Example #16
0
def user(username):
    form = EmptyForm()
    user = User.query.filter_by(username=username).first_or_404()
    page = request.args.get("page", 1, type=int)
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)
    prev_url = url_for("main.user", username=user.username, page=posts.prev_num) \
        if posts.has_prev else None
    next_url = url_for("main.user", username=user.username, page=posts.next_num) \
        if posts.has_next else None
    return render_template('user.html', user=user, posts=posts.items, form=form, prev_url=prev_url, next_url=next_url)
Example #17
0
def unlike_post(post_id):
    form = EmptyForm()
    if form.validate_on_submit():
        post = Post.query.filter_by(id=post_id).first()
        if post is None:
            flash('Post {} not found.'.format(post))
            return redirect(url_for('main.index'))
        current_user.unlike_post(post)
        db.session.commit()
        flash('Post removed from liked posts')
    return redirect(url_for('main.post_info', post_id=post_id))
Example #18
0
def user(username):
    user_ = User.get_user_by_username(username=username)
    if not user_:
        render_template('errors/404.html')
    page = request.args.get('page', 1, type=int)
    posts = User.get_posts_of_user(user=user_).paginate(page=page, per_page=current_app.config['POSTS_PER_PAGE'],
                                                        error_out=False)
    next_url = url_for('main.index', page=posts.next_num) if posts.has_next else None
    prev_url = url_for('main.index', page=posts.prev_num) if posts.has_prev else None
    form = EmptyForm()
    return render_template('user.html', user=user_, posts=posts.items, form=form, next_url=next_url, prev_url=prev_url)
Example #19
0
def unfollow_program(program_id):
    form = EmptyForm()
    if form.validate_on_submit():
        program = Program.query.filter_by(id=program_id).first()
        if program is None:
            flash(_('Program not found.'))
            return redirect(url_for('main.programs'))
        current_user.unfollow_program(program)
        db.session.commit()
        flash(_('You are not following %(name)s.', name=program.name))
    return redirect(request.referrer)
Example #20
0
def user(username):
    user = User.query.filter_by(username=username).first_or_404()
    page = request.args.get('page', 1, type=int)
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)
    next_url = url_for('main.user', username=user.username,
                       page=posts.next_num) if posts.has_next else None
    prev_url = url_for('main.user', username=user.username,
                       page=posts.prev_num) if posts.has_prev else None
    form = EmptyForm()
    return render_template('user.html', title=_('User Profile - Hikanotes'), user=user, posts=posts.items,
                           next_url=next_url, prev_url=prev_url, form=form)
Example #21
0
def user(username):
	user = User.query.filter_by(username=username).first_or_404()
	page=request.args.get('page',1,type=int)
	posts=Post.query.filter_by(user_id=user.id).order_by(Post.timestamp.desc()).paginate(page,current_app.config['POSTS_PER_PAGE'],False)
	next_url=url_for('main.user',username=user.username,page=posts.next_num) if posts.has_next else None
	prev_url=url_for('main.user',username=user.username,page=posts.prev_num) if posts.has_prev else None
	form=EmptyForm()
	"""posts=[
        {'author': user, 'body': 'Test post #1'},
        {'author': user, 'body': 'Test post #2'}
    ]"""
	return render_template('user.html', user=user, posts=posts.items,form=form,next_url=next_url,prev_url=prev_url)
Example #22
0
def program(program_id):
    specialty2 = session.get('specialty')
    program = Program.query.filter_by(id=program_id).first_or_404()
    interviews = program.interviews.order_by(Interview.date.desc())
    page = request.args.get('page', 1, type=int)
    postform = PostForm()
    postivform = PostIVForm()
    if postform.validate_on_submit() and current_user.is_authenticated:
        interview_impression = Interview_Impression(
            body=postform.post.data,
            author=current_user,
            program=program,
            name_and_shame=postform.name_and_shame.data)
        db.session.add(interview_impression)
        db.session.commit()
        flash(_('Your interview impression is now live!'))
        return redirect(url_for('main.program', program_id=program_id))
    if postivform.validate_on_submit() and current_user.is_authenticated:
        postiv = PostInterviewCommunication(
            date_of_communication=postivform.date.data,
            author=current_user,
            program=program,
            type_of_communication=postivform.type_of_communication.data,
            personalized=postivform.personalized.data,
            content=postivform.content.data)
        db.session.add(postiv)
        db.session.commit()
        flash("Your post-interview impression is now live!")
        return redirect(url_for('main.program', program_id=program_id))
    interview_impressions = program.interview_impressions.order_by(
        Interview_Impression.timestamp.desc()).paginate(
            page, current_app.config['POSTS_PER_PAGE'], False)
    next_url = url_for(
        'main.program', id=program_id, page=interview_impressions.next_num
    ) if interview_impressions.has_next else None
    prev_url = url_for(
        'main.program', id=program_id, page=interview_impressions.prev_num
    ) if interview_impressions.has_prev else None
    form = EmptyForm()
    return render_template(
        'program.html',
        specialty2=specialty2,
        next_url=next_url,
        prev_url=prev_url,
        program=program,
        interviews=program.interviews,
        postform=postform,
        postivform=postivform,
        form=form,
        interview_impressions=interview_impressions.items,
        postiv_communications=program.postiv_communications.order_by(
            PostInterviewCommunication.timestamp.desc()))
Example #23
0
def user(username):
    user = User.query.filter_by(username=username).first_or_404()
    post_form = PostForm()
    if post_form.validate_on_submit():
        post = Post(body=post_form.post.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        flash(_('Your blog is now live'))
        return redirect(url_for('main.user', username=current_user.username))
    posts = user.posts.order_by(Post.timestamp.desc())
    form = EmptyForm()
    return render_template('user.html', user=user, form=form, post_form=post_form, \
     posts=posts)
Example #24
0
def user(username):
    '''route to show a user's profile with user details follow and unfollow links, and a preview of their posts'''
    user = User.query.filter_by(username=username).first_or_404(
    )  #find query or else raise a 404 error
    page = request.args.get('page', 1, type=int)
    posts = user.posts.order_by(Post.timestamp.desc()).paginate(
        1, 5, False)  #paginates and find the newest five comments
    form = EmptyForm()
    return render_template('user.html',
                           user=user,
                           posts=posts.items,
                           form=form,
                           username=username)
Example #25
0
def user(username):
    user = User.query.filter_by(username=username).first_or_404()
    # posts = Post.query.filter_by(user_id=user.id)
    # posts = user.posts
    page = request.args.get('page', 1, type=int)
    posts = Post.query.filter_by(user_id=user.id).paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)
    next_url = url_for('main.user', username=username, page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('main.user', username=username, page=posts.prev_num) \
        if posts.has_prev else None

    form = EmptyForm()
    return render_template('user.html', user=user, posts=posts.items, form=form, next_url=next_url, prev_url=prev_url)
Example #26
0
def follow(username):
    form = EmptyForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=username).first()
        if user is None:
            flash('User {} not found.'.format(username))
            return redirect(url_for('main.index'))
        if user == current_user:
            flash('You cannot follow yourself!')
            return redirect(url_for('main.user', username=username))
        current_user.follow(user)
        db.session.commit()
        flash('You are following {}!'.format(username))
        return redirect(url_for('main.user', username=username))
    return redirect(url_for('main.index'))
Example #27
0
def unfollow(username):
    form = EmptyForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=username).first()
        if user is None:
            flash("User {} not found".format(username))
            return redirect(url_for("main.index"))
        if user == current_user:
            flash("You cannot unfollow yourself")
            return redirect(url_for("main.user", username=username))
        current_user.unfollow(user)
        db.session.commit()
        flash("You are not following {}".format(username))
        return redirect(url_for("main.user", username=username))
    return redirect(url_for("main.index"))
Example #28
0
def explore():
    empty_form = EmptyForm()
    page = request.args.get('page', 1, type=int)
    posts = Post.query.order_by(Post.timestamp.desc()).paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)
    next_url = url_for('main.explore', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('main.explore', page=posts.prev_num) \
        if posts.has_prev else None
    return render_template('index.html',
                           title=_('Explore'),
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url,
                           empty_form=empty_form)
Example #29
0
def unfollow(username):
    form = EmptyForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=username).first()
        if not user:
            flash(_('Usuário %(username)s não encontrado!', username=username))
            return redirect(url_for('main.index'))
        if user == current_user:
            flash(_('Função não permitida para seu próprio perfil!'))
            return redirect(url_for('main.user', username=username))
        current_user.unfollow(user)
        db.session.commit()
        flash(_('Você deixou de seguir %(username)s.', username=username))
        return redirect(url_for('main.user', username=username))
    else:
        return redirect(url_for('main.index'))
Example #30
0
def follow(username):
    form = EmptyForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=username).first()
        if not user:
            flash(_('Usuário %(username)s não encontrado.', username=username))
            return redirect(url_for('main.index'))
        if user == current_user:
            flash(_('Ops, você não pode se seguir!'))
            return redirect(url_for('main.user', username=username))
        current_user.follow(user)
        db.session.commit()
        flash(_('Você está seguindo %(username)s!', username=username))
        return redirect(url_for('main.user', username=username))
    else:
        return redirect(url_for('main.index'))