def user_profile(id): error = None current_user_id = current_user.get_id() is_current_user = True if current_user_id == id else False user = User.query.filter_by(id=id).first() user_email = user.email profile_pic_url = user.profile_pic reviews = Review.query.filter_by(user_id=id).all() number_reviews = len(reviews) form = PictureForm() if number_reviews == 0: user_reviews = None else: users = [ User.query.filter_by(id=review.user_id).first() for review in reviews ] journals = [ Journal.query.filter_by(id=review.journal_id).first() for review in reviews ] if is_current_user: edit_buttons = [review.id for review in reviews] else: edit_buttons = [None for review in reviews] user_reviews = zip(journals, users, reviews, edit_buttons) if form.validate_on_submit(): if form.picture.data != None: file = form.picture.data filename = secure_filename(file.filename) filename_with_prefix = str(random.randint(1, 10**6)) + filename save_dir = 'app/static/images/profile_pictures/' + filename_with_prefix image = Image.open(file) image = image.resize((200, 200)) image.save(save_dir) dir_for_db = '/static/images/profile_pictures/' + filename_with_prefix user.profile_pic = dir_for_db db.session.commit() if not profile_pic_url.endswith('default_avatar.png'): os.remove('app' + profile_pic_url) return redirect(url_for('user_profile', id=id)) else: error = 'upload avatar pic before submitting' return render_template('user_profile.html', logged_in=current_user.is_authenticated, profile_pic_url=profile_pic_url, user_email=user_email, user_reviews=user_reviews, number_reviews=number_reviews, is_current_user=is_current_user, form=form, error=error)
def my_profile_upload_picture(): form = PictureForm() # TODO: Is it possible for 'X-Upload-Too-Big' to be in request.headers, # and if so, should we deal with it? if form.validate(): if form.picture.has_file(): set_user_picture(current_user, form.picture) db.session.add(current_user) db.session.commit() return ('', 204) abort(400)
def my_profile_upload_picture(): form = PictureForm() # TODO: Is it possible for 'X-Upload-Too-Big' to be in request.headers, # and if so, should we deal with it? if form.validate(): if form.picture.has_file(): set_user_picture(current_user, form.picture) db.session.add(current_user) db.session.commit() signals.user_changed_profile.send( current_app._get_current_object(), user=current_user._get_current_object(), avatar_changed=True ) return ('', 204) abort(400)