def post(self): form = PostForm() if request.method == 'POST': if form.validate_on_submit(): post = Post.create() form.populate_obj(post) f = request.files.get('file') post.user = current_user if f: picture = Picture.create() picture.save_file(f, current_user) post.cover_picture_id = picture.id if picture else 0 post.update_score(page_view=1) post.save() if form.remain.data: url = url_for('PostsView:put', id=post.id) else: url = url_for('PostsView:get', id=post.id) return resp(url, redirect=True, message=gettext('Stamp succesfully created')) else: return resp('admin/posts/edit.html', status=False, form=form, message=gettext('Invalid submission, please check the message below')) return resp('admin/posts/edit.html', form=form)
def put(self, id): user = User.get_by_id(id) if user is None or not user.can_edit(): flash(gettext('The user was not found'), 'error') return redirect(url_for('UsersView:index')) if request.method in ['POST']: form = EditUserForm() if form.validate_on_submit(): if form.password.data: user.set_password(form.password.data) del form.password form.populate_obj(user) user.save() refresh() return resp(url_for('UsersView:get', id=user.id), redirect=True, message=gettext('User was succesfully updated')) else: return resp('admin/users/edit.html', form=form, user=user, message=gettext('Invalid submission, please check the messages below')) else: form = EditUserForm(user=user) return resp('admin/users/edit.html', form=form, user=user)
def get(self, id): user = User.get_by_id(id) if user is None or not user.can_edit(): return resp(url_for('UsersView:index'), status=False, redirect=True, message=gettext('The requested user was not found')) return resp('admin/users/show.html', user=user)
def get(self, id): post = Post.get_by_id(id) if post is None or not post.can_edit(): return resp(url_for('PostsView:index'), status=False, redirect=True, message=gettext('The requested stamp was not found')) return resp('admin/posts/show.html', title=post.title, post=post)
def delete(self, id): user = User.get_by_id(id) if user is None or not user.can_edit(): abort(401) if current_user.id == user.id: abort(403) try: name = user.name User.delete(user.id) return resp(url_for('UsersView:index'), redirect=True, message=gettext('The user "%(name)s" was removed', name=name)) except Exception as e: return resp(url_for('UsersView:index'), redirect=True, message=gettext('Error while removing the user, %(error)s', error=e))
def post(self): form = NewUserForm() if request.method == 'POST': if form.validate_on_submit(): user = User.create() form.populate_obj(user) user.set_password(form.password.data) user.save() return resp(url_for('UsersView:get', id=user.id), redirect=True, message=gettext('User was succesfully saved')) else: return resp('admin/users/add.html', form=form, user=None, status=False, message=gettext('Invalid submission, please check the messages below')) return resp('admin/users/add.html', form=form, user=None)
def user_post(self, id): user = User.get_by_id(id) if user is None: return resp(url_for('UsersView:index'), status=False, message=gettext('The user was not found')) page = request.values.get('page', 1, type=int) limit = 10 posts, total = user.get_user_posts(page=page, limit=limit) return resp("admin/users/user_posts.html", user=user, posts=posts, page=page, limit=limit, total=total)
def delete(self, id): post = Post.get_by_id(id) if post is None: flash(gettext('The stamp was not found'), 'error') return redirect(url_for('PostsView:index')) if not post.can_edit(): abort(401) try: title = post.title Post.delete(post.id) return resp(url_for('PostsView:index'), redirect=True, message=gettext('The stamp "%(title)s" was removed', title=title)) except Exception as e: return resp(url_for('PostsView:index'), status=False, redirect=True, message=gettext('Error while removing the stamp, %(error)s', error=e))
def index(self): page = request.values.get('page', 1, type=int) limit = 10 posts, total = Post.posts_by_user( current_user.id, page=page, limit=limit) return resp('admin/posts/index.html', posts=posts, page=page, limit=limit, total=total)
def put(self, id): post = Post.get_by_id(id) if post is None or not post.can_edit(): flash(gettext('The requested stamp was not found'), 'error') return redirect(url_for('PostsView:index')) if request.method in ['POST']: form = PostForm() if form.validate_on_submit(): cover_picture_id = request.values.get('cover_picture_id', 0, int) remain = request.values.get('remain', False, bool) if post.cover_picture and cover_picture_id == 0: # remove the picture, when user request its deletion post.cover_picture.remove() c = form.category_id.data form.populate_obj(post) f = request.files.get('file') if f: if post.cover_picture: post.cover_picture.remove() picture = Picture.create() picture.save_file(f, current_user) post.cover_picture_id = picture.id if picture else 0 post.save() message = gettext('Stamp was succesfully saved') if remain: return resp('admin/posts/edit.html', form=form, post=post, message=message) return resp(url_for('PostsView:get', id=post.id), redirect=True, message=message) else: return resp('admin/posts/edit.html', status=False, form=form, post=post, message=gettext('Invalid submission, please check the message below')) else: form = PostForm(post) return resp('admin/posts/edit.html', form=form, post=post)
def index(self): page = request.values.get('page', 1, type=int) limit = 20 users, total = User.pagination(page=page, limit=limit, orderby='users.id', desc=False) if not users.count() and page > 1: return redirect(url_for('UsersView:index_1')) return resp('admin/users/index.html', users=users, page=page, limit=limit, total=total)
def upload_profile_picture(self, id): user = User.get_by_id(id) f = request.files.get('file') if f: picture = Picture.create() picture.save_file(f, current_user) user.profile_picture_id = picture.id if picture else 0 user.save() return resp('', user=user)