Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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))
Exemple #6
0
    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)
Exemple #7
0
    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)
Exemple #8
0
    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))
Exemple #9
0
 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)
Exemple #10
0
    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)
Exemple #11
0
 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)
Exemple #12
0
    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)