def upload_avatar(): form = UploadAvatarForm() if form.validate_on_submit(): image = form.image.data filename = avatars.save_avatar(image) # 保存头像文件,返回文件名 current_user.avatar_raw = filename db.session.commit() flash('Image uploaded, please crop.', 'success') flash_errors(form) return redirect(url_for('user.change_avatar'))
def edit_description(photo_id): photo = Photo.query.get_or_404(photo_id) if current_user != photo.author: abort(403) form = DescriptionForm() if form.validate_on_submit(): photo.description = form.description.data db.session.commit() flash('Description updated.', 'success') flash_errors(form) return redirect(url_for('main.show_photo', photo_id=photo.id))
def crop_avatar(): form = CropAvatarForm() if form.validate_on_submit(): x = form.x.data y = form.y.data w = form.w.data h = form.h.data filenames = avatars.crop_avatar(current_user.avatar_raw, x, y, w, h) current_user.avatar_s = filenames[0] current_user.avatar_m = filenames[1] current_user.avatar_l = filenames[2] db.session.commit() flash('Avatar updated.', 'success') flash_errors(form) return redirect(url_for('user.change_avatar'))
def new_tag(photo_id): photo = Photo.query.get_or_404(photo_id) if current_user != photo.author: abort(403) form = TagForm() if form.validate_on_submit(): for name in form.tag.data.split(): tag = Tag.query.filter(Tag.name == name).first() if tag is None: tag = Tag(name=name) db.session.add(tag) if tag not in photo.tags: photo.tags.append(tag) db.session.commit() flash('Tag added.', 'success') flash_errors(form) return redirect(url_for('main.show_photo', photo_id=photo.id))
def new_comment(photo_id): photo = Photo.query.get_or_404(photo_id) page = request.args.get('page', 1, type=int) form = CommentForm() if form.validate_on_submit(): body = form.body.data comment = Comment(body=body, photo=photo, author=current_user._get_current_object()) replied_id = request.args.get('reply') if replied_id: comment.replied = Comment.query.get_or_404(replied_id) db.session.add(comment) db.session.commit() flash('Comment published.', 'success') if photo.author.receive_comment_notification and current_user != photo.author: push_comment_notification(photo_id=photo_id, receiver=photo.author, page=page) flash_errors(form) return redirect(url_for('main.show_photo', photo_id=photo_id, page=page))