Example #1
0
    def add_user(self, username, email, real_name, password, bio, status='', role='user'):
        username, real_name = username.strip(), real_name.strip()
        errors = []
        if not re.match(r'^[A-Za-z0-9_]{4,16}$', username):
            errors.append(text('user.username_missing'))

        if not re.match(r'^[A-Za-z0-9_]{4,16}$', password):
            errors.append(text('user.password_invalid'))

        if not self.check_email(email):
            errors.append(text('user.email_missing'))

        if errors:
            return {'status': 'error', 'errors': errors}

        if status not in Account.STATUSES:
            status = 'inactive'

        if role not in Account.ROLES:
            role = 'user'

        if self.repo.find_by_username(username):
            errors.append(text('user.username_used'))

        if errors:
            return {'status': 'error', 'errors': errors}

        user = User(username, email, real_name, password, None, bio, status, role)
        user.uid = self.repo.create(user)
        return {'status': 'ok', 'msg': 'saved', 'user': user}
Example #2
0
    def post(self, post_id):
        post_id = int(post_id)
        _ = self.get_argument
        title = _p('title', default='')
        description = _p('description')
        category = int(_p('category', default=1))
        status = _p('status', default='draft')
        comments = int(_p('comments', default=0))
        html = _p('html')
        css = _p('custom_css', default='')
        js = _p('custom_js', default='')
        slug = _p('slug')

        title = title.strip()
        slug = slug.strip() or title

        validator = Validator()
        (validator.check(title, 'min', text('post.title_missing'), 1)
         .check(slug, 'min', text('post.title_missing'), 1))
        if validator.errors:
            self.flash(validator.errors, 'error')
            self.redirect(self.reverse_url('post_edit', post_id))

        post = post_service.update_post(
            title, slug, description, html, css, js, category, status, comments, post_id)
        extend_service.prcoess_field(self, post, 'post')
        self.flash(text('post.updated'), 'success')
        self.redirect(self.reverse_url('post_edit', post_id))
Example #3
0
    def post(self):
        _ = self.get_argument
        title = _('title', default='')
        description = _('description')
        category = int(_('category', default=1))
        status = _('status', default='draft')
        comments = int(_('comments', default=0))
        html = _('html')
        css = _('custom_css', default='')
        js = _('custom_js', default='')
        slug = _('slug')

        title = title.strip()
        slug = slug.strip() or title

        validator = Validator()
        (validator.check(title, 'min', text('post.title_missing'), 1)
	        .check(slug, 'min', text('post.title_missing'), 1)
	     )
        if validator.errors:
            self.flash(validator.errors, 'error')
            self.render('admin/post/add.html')

        author = self.account
        post = post_service.add_post(
            title, slug, description, html, css, js, category, status, comments, author)
        extend_service.prcoess_field(self, post, 'post')
        self.redirect(self.reverse_url('post_page'))
Example #4
0
    def post_comment(self, slug):
        post = self.post_service.get_by_slug(slug)
        if not post:
            return self.theme_render('404.html', page_title='Not Found')

        if post and not post.allow_comment:
            return self.redirect(self.reverse_url('site_post', slug))

        p = self.get_argument
        name = p('name', default='')
        email = p('email', default='')
        content = p('content', default='')

        name, content, email = name.strip(), content.strip(), email.strip()

        validator = Validator()
        (validator.check(email, 'email', text('comment.email_missing')).check(
            content, 'min', text('comment.email_missing'), 1))

        if validator.errors:
            self.flash(validator.errors, 'error')
            return redirect(self.reverse_url('site_post', slug))

        status = site.get('auto_published_comments',
                          False) and 'approved' or 'pending'
        self.comment_service.add_comment(name, email, content, status, post)

        self.redirect(self.reverse_url('site_post', slug))
Example #5
0
    def post(self):
        _ = self.get_argument
        title = _('title', default='')
        description = _('description')
        category = int(_('category', default=1))
        status = _('status', default='draft')
        comments = int(_('comments', default=0))
        html = _('html')
        css = _('custom_css', default='')
        js = _('custom_js', default='')
        slug = _('slug')

        title = title.strip()
        slug = slug.strip() or title

        validator = Validator()
        (validator.check(title, 'min', text('post.title_missing'),
                         1).check(slug, 'min', text('post.title_missing'), 1))
        if validator.errors:
            self.flash(validator.errors, 'error')
            self.render('admin/post/add.html')

        author = self.account
        post = post_service.add_post(title, slug, description, html, css, js,
                                     category, status, comments, author)
        extend_service.prcoess_field(self, post, 'post')
        self.redirect(self.reverse_url('post_page'))
Example #6
0
    def post(self, post_id):
        post_id = int(post_id)
        _ = self.get_argument
        title = _p('title', default='')
        description = _p('description')
        category = int(_p('category', default=1))
        status = _p('status', default='draft')
        comments = int(_p('comments', default=0))
        html = _p('html')
        css = _p('custom_css', default='')
        js = _p('custom_js', default='')
        slug = _p('slug')

        title = title.strip()
        slug = slug.strip() or title

        validator = Validator()
        (validator.check(title, 'min', text('post.title_missing'),
                         1).check(slug, 'min', text('post.title_missing'), 1))
        if validator.errors:
            self.flash(validator.errors, 'error')
            self.redirect(self.reverse_url('post_edit', post_id))

        post = post_service.update_post(title, slug, description, html, css,
                                        js, category, status, comments,
                                        post_id)
        extend_service.prcoess_field(self, post, 'post')
        self.flash(text('post.updated'), 'success')
        self.redirect(self.reverse_url('post_edit', post_id))
Example #7
0
    def post_comment(self, slug):
        post = self.post_service.get_by_slug(slug)
        if not post:
            return self.theme_render('404.html', page_title='Not Found')

        if post and not post.allow_comment:
            return self.redirect(self.reverse_url('site_post', slug))

        p = self.get_argument
        name = p('name', default='')
        email = p('email', default='')
        content = p('content', default='')

        name, content, email = name.strip(), content.strip(), email.strip()

        validator = Validator()
        (validator.check(email, 'email', text('comment.email_missing'))
            .check(content, 'min', text('comment.email_missing'), 1)
         )

        if validator.errors:
            self.flash(validator.errors, 'error')
            return redirect(self.reverse_url('site_post', slug))

        status = site.get(
            'auto_published_comments', False) and 'approved' or 'pending'
        self.comment_service.add_comment(name, email, content, status, post)

        self.redirect(self.reverse_url('site_post', slug))
Example #8
0
    def update_user(self,
                    me,
                    uid,
                    email,
                    real_name,
                    password,
                    newpass1,
                    newpass2,
                    bio,
                    status,
                    role='user'):
        real_name, newpass1, newpass2, bio = real_name.strip(), newpass1.strip(
        ), newpass2.strip(), bio.strip()
        errors = []

        if not self.check_email(email):
            errors.append(text('user.email_missing'))

        if errors:
            return {'status': 'error', 'errors': errors}

        user = self.repo.find(uid)
        if not user:
            return {'status': 'error', 'errors': 'User not Found'}

        if me.uid == user.uid:
            if re.match(r'[A-Za-z0-9@#$%^&+=]{4,16}', newpass1):
                if password and newpass1 and newpass1 == newpass2 and user.check(
                        password):
                    user.secure_pass = newpass1
            elif newpass1:
                errors.append(text('users.password_missing'))

            if self.check_email(email):
                user_ = self.repo.find_by_email(email)
                if user_ and user_.uid != user.uid:
                    errors.append(text('user.email_used'))
                else:
                    user.email = email

        if errors:
            return {'status': 'error', 'errors': errors}

        account = Account.fromUser(user)
        if me.is_root() or me.uid == uid:
            if me.is_root() and not account.is_root():
                if role in (Account.ADMIN, Account.USER, Account.EDITOR):
                    user.role = role
                if user.status != status and status in Account.STATUSES:
                    user.status = status

            if user.real_name != real_name:
                user.real_name = real_name

            if user.bio != bio:
                user.bio = bio

        self.repo.save(user)
        return {'status': 'ok', 'msg': 'updated', 'user': user}
Example #9
0
 def get(self, comment_id):
     comment_id = int(comment_id)
     
     statuses = {
             'approved': text('global.approved'),
             'pending': text('global.pending'),
             'spam': text('global.spam')
         }
     comment = comment_service.get(comment_id)
     
     self.render('admin/comment/edit.html',
                            comment=comment,
                                statuses=statuses)
Example #10
0
    def post(self, category_id):
        _ = self.get_argument
        category_id, title, slug, description = int(category_id), _('title'), _('slug'), _('description')

        validator = Validator()
        validator.check(title, 'min', text('category.title_missing'), 1)
        if validator.errors:
            self.flash(validator.errors, 'error')
            return self.redirect(self.reverse_url('category_edit', category_id))

        category = category_service.update_category(
            category_id, title, slug, description)
        self.flash(text('category.updated'), 'success')
        self.redirect(self.reverse_url('category_edit', category.cid))
Example #11
0
    def post(self, page_id):
        page_id = int(page_id)

        _ = self.get_argument
        parent = _('parent')
        name = _('name')
        title = _('title')
        name = name or title

        slug = _('slug')
        content = _('content')
        status = _('status')
        show_in_menu = int(_('show_in_menu', default=0))
        show_in_menu = 1 if show_in_menu else 0

        redirect_ = _('redirect')

        validator = Validator()
        (validator.check(title, 'min', text('page.title_missing'), 3)
         #.check(redirect, 'url', text('page.redirect_missing'))
         )

        if validator.errors:
            self.flash(validator.errors, 'error')
            self.redirect(self.reverse_url('page_edit', page_id))

        page = page_service.update_page(parent, name, title, slug, content,
                                        status, redirect_, show_in_menu,
                                        page_id)
        extend_service.prcoess_field(self, page, 'page')
        self.redirect(self.reverse_url('page_edit', page_id))
Example #12
0
    def post(self, page_id):
        page_id = int(page_id)

        _ = self.get_argument
        parent = _('parent')
        name = _('name')
        title = _('title')
        name = name or title

        slug = _('slug')
        content = _('content')
        status = _('status')
        show_in_menu = int(_('show_in_menu', default=0))
        show_in_menu = 1 if show_in_menu else 0

        redirect_ = _('redirect')

        validator = Validator()
        (validator
            .check(title, 'min', text('page.title_missing'), 3)
            #.check(redirect, 'url', text('page.redirect_missing'))
         )

        if validator.errors:
            self.flash(validator.errors, 'error')
            self.redirect(self.reverse_url('page_edit', page_id))

        page = page_service.update_page(
            parent, name, title, slug, content, status, redirect_, show_in_menu, page_id)
        extend_service.prcoess_field(self, page, 'page')
        self.redirect(self.reverse_url('page_edit', page_id))
Example #13
0
    def post(self, category_id):
        _ = self.get_argument
        category_id, title, slug, description = int(category_id), _(
            'title'), _('slug'), _('description')

        validator = Validator()
        validator.check(title, 'min', text('category.title_missing'), 1)
        if validator.errors:
            self.flash(validator.errors, 'error')
            return self.redirect(self.reverse_url('category_edit',
                                                  category_id))

        category = category_service.update_category(category_id, title, slug,
                                                    description)
        self.flash(text('category.updated'), 'success')
        self.redirect(self.reverse_url('category_edit', category.cid))
Example #14
0
    def update_user(self, me, uid, email, real_name, password, newpass1, newpass2, bio, status, role='user'):
        real_name, newpass1, newpass2, bio = real_name.strip(), newpass1.strip(), newpass2.strip(), bio.strip()
        errors = []

        if not self.check_email(email):
            errors.append(text('user.email_missing'))

        if errors:
            return {'status': 'error', 'errors': errors}

        user = self.repo.find(uid)
        if not user:
            return {'status': 'error', 'errors': 'User not Found'}

        if me.uid == user.uid:
            if re.match(r'[A-Za-z0-9@#$%^&+=]{4,16}', newpass1):
                if password and newpass1 and newpass1 == newpass2 and user.check(password):
                    user.secure_pass = newpass1
            elif newpass1:
                errors.append(text('users.password_missing'))

            if self.check_email(email):
                user_ = self.repo.find_by_email(email)
                if user_ and user_.uid != user.uid:
                    errors.append(text('user.email_used'))
                else:
                    user.email = email

        if errors:
            return {'status': 'error', 'errors': errors}

        account = Account.fromUser(user)
        if me.is_root() or me.uid == uid:
            if me.is_root() and not account.is_root():
                if role in (Account.ADMIN, Account.USER, Account.EDITOR):
                    user.role = role
                if user.status != status and status in Account.STATUSES:
                    user.status = status

            if user.real_name != real_name:
                user.real_name = real_name

            if user.bio != bio:
                user.bio = bio

        self.repo.save(user)
        return {'status': 'ok', 'msg': 'updated', 'user': user}
Example #15
0
    def post(self, category_id):
        category_id = int(category_id)
        if category_id == 1:
            self.flash('The Uncategory cann\'t delete', 'error')
            return self.redirect(self.reverse_url('category_page'))

        category_service.delete(category_id)
        self.flash(text('category.deleted'), 'success')
        self.redirect(self.reverse_url('category_page'))
Example #16
0
    def post(self, category_id):
        category_id = int(category_id)
        if category_id == 1:
            self.flash('The Uncategory cann\'t delete', 'error')
            return self.redirect(self.reverse_url('category_page'))

        category_service.delete(category_id)
        self.flash(text('category.deleted'), 'success')
        self.redirect(self.reverse_url('category_page'))
Example #17
0
    def post(self):
        _ = self.get_argument
        parent = _('parent')
        name = _('name')
        title = _('title')
        name = name or title

        slug = _('slug')
        content = _('content')
        status = _('status')
        pid = int(_('pid'))
        show_in_menu = int(_('show_in_menu'))
        show_in_menu = 1 if show_in_menu else 0

        redirect_ = _('redirect')

        validator = Validator()
        validator.add('duplicate',
                      lambda key: page_service.is_exist_slug(key) == False)
        (validator.check(title, 'min', text('page.title_missing'),
                         3).check(slug, 'min', text('page.slug_missing'),
                                  3).check(slug, 'duplicate',
                                           text('page.slug_duplicate')).check(
                                               slug, 'regex',
                                               text('page.slug_invalid'),
                                               r'^[0-9_A-Za-z-]+$')
         #.check(redirect, 'url', text('page.redirect_missing'))
         )

        if validator.errors:
            self.flash(validator.errors, 'error')
            pages = Backend('Page').dropdown(show_empty_option=True)
            fields = extend_service.get_fields_by_type('page')
            self.render('admin/page/add.html',
                        statuses=PAGE_STATUSES,
                        pages=pages,
                        fields=fields)

        page = page_service.add_page(parent, name, title, slug, content,
                                     status, redirect_, show_in_menu)
        extend_service.prcoess_field(self, page, 'page')
        self.redirect(self.reverse_url('page_page'))
Example #18
0
    def post(self):
        _ = self.get_argument
        username, password = _('username'), _('password')

        result = user_service.auth(username, password)
        if result['status'] == 200:
            sessionMgr = SessionManager(self)
            sessionMgr.loadByUser(result['user'])
            return self.redirect(self.reverse_url('post_page'))

        self.flash(text('user.login_error'), 'error')
        return self.redirect(self.reverse_url('login'))
Example #19
0
    def post(self):
        _ = self.get_argument
        title, slug, description = _('title'), _('slug'), _('description')

        validator = Validator()
        validator.check(title, 'min', text('category.title_missing'), 1)
        if validator.errors:
            self.flash(validator.errors, 'error')
            return self.render('admin/category/add.html')

        category_service.add_category(title, slug, description)
        self.redirect(self.reverse_url('category_page'))
Example #20
0
    def post(self):
        _ = self.get_argument
        username, password = _('username'), _('password')

        result = user_service.auth(username, password)
        if result['status'] == 200:
            sessionMgr = SessionManager(self)
            sessionMgr.loadByUser(result['user'])
            return self.redirect(self.reverse_url('post_page'))

        self.flash(text('user.login_error'), 'error')
        return self.redirect(self.reverse_url('login'))
Example #21
0
    def post(self):
        _ = self.get_argument
        title, slug, description = _('title'), _('slug'), _('description')

        validator = Validator()
        validator.check(title, 'min', text('category.title_missing'), 1)
        if validator.errors:
            self.flash(validator.errors, 'error')
            return self.render('admin/category/add.html')

        category_service.add_category(title, slug, description)
        self.redirect(self.reverse_url('category_page'))
Example #22
0
    def post(self):
        _ = self.get_argument
        parent = _('parent')
        name = _('name')
        title = _('title')
        name = name or title

        slug = _('slug')
        content = _('content')
        status = _('status')
        pid = int(_('pid'))
        show_in_menu = int(_('show_in_menu'))
        show_in_menu = 1 if show_in_menu else 0

        redirect_ = _('redirect')

        validator = Validator()
        validator.add(
            'duplicate', lambda key: page_service.is_exist_slug(key) == False)
        (validator
            .check(title, 'min', text('page.title_missing'), 3)
            .check(slug, 'min', text('page.slug_missing'), 3)
            .check(slug, 'duplicate', text('page.slug_duplicate'))
            .check(slug, 'regex', text('page.slug_invalid'), r'^[0-9_A-Za-z-]+$')
            #.check(redirect, 'url', text('page.redirect_missing'))
         )

        if validator.errors:
            self.flash(validator.errors, 'error')
            pages = Backend('Page').dropdown(show_empty_option=True)
            fields = extend_service.get_fields_by_type('page')
            self.render('admin/page/add.html',
                                   statuses=PAGE_STATUSES,
                                   pages=pages,
                                   fields=fields)

        page = page_service.add_page(
            parent, name, title, slug, content, status, redirect_, show_in_menu)
        extend_service.prcoess_field(self, page, 'page')
        self.redirect(self.reverse_url('page_page'))
Example #23
0
    def post(self):

        _ = self.get_argument
        _type = _('type')
        field = _('field')
        key = _('key')
        label = _('label')
        key = key or label

        validator = Validator()
        validator.add(
            'valid_key', lambda key: extend_service.count(key, _type) == 0)
        (validator
            .check(key, 'min', text('extend.key_missing'), 1)
            .check(key, 'valid_key', text('extend.key_exists'))
            .check(label, 'min', text('extend.label_missing'), 1)
         )

        if validator.errors:
            self.flash(validator.errors, 'error')
            self.render('admin/extend/field/add.html')

        if field == 'image':
            attributes = {
                'type': reqp.get('attributes[type]'),
                'size': {
                    'height': reqp.get('attributes[size][height]', type=int),
                    'width': reqp.get('attributes[size][width]', type=int),
                }
            }
        elif field == 'file':
            attributes = {
                'type': reqp.get('attributes[type]'),
            }
        else:
            attributes = {}

        extend_service.create_extend(_type, key, label, field, attributes)
        return self.redirect(self.reverse_url('field_page'))
Example #24
0
    def post(self, comment_id):
        comment_id = int(comment_id)
        _ = self.get_argument
        name = _('name')
        email = _('email')
        content = _('content')
        status = _('status')

        name, content = name.strip(), content.strip()

        validator = Validator()
        (validator.check(name, 'min', text('comment.name_missing'), 1)
            .check(content, 'min', text('comment.content_missing'), 1)
         )
        if validator.errors:
            self.flash(validator.errors, 'error')
            self.redirect(self.reverse_url('comment_edit', comment_id))

        comment = comment_service.update_comment(
            comment_id, name, email, content, status)
        self.flash(text('comment.updated'), 'success')
        self.redirect(self.reverse_url('comment_edit', comment.cid))
Example #25
0
    def post(self, extend_id):
        extend_id= int(extend_id)
        reqp = request.form
        _ = self.get_argument
        _type = _('type')
        field = _('field')
        key = _('key')
        label = _('label')
        key = key or label

        validator = Validator()
        (validator
            .check(key, 'min', text('extend.key_missing'), 1)
            .check(label, 'min', text('extend.label_missing'), 1)
         )

        if validator.errors:
            self.flash(validator.errors, 'error')
            return self.redirect(self.reverse_url('field_edit', extend_id))

        if field == 'image':
            attributes = {
                'type': reqp.get('attributes[type]'),
                'size': {
                    'height': reqp.get('attributes[size][height]', type=int),
                    'width': reqp.get('attributes[size][width]', type=int),
                }
            }
        elif field == 'file':
            attributes = {
                'type': reqp.get('attributes[type]'),
            }
        else:
            attributes = {}

        extend_service.update_extend(
            _type, key, label, field, attributes, extend_id)
        return self.redirect(self.reverse_url('field_edit', extend_id))
Example #26
0
    def add_user(self,
                 username,
                 email,
                 real_name,
                 password,
                 bio,
                 status='',
                 role='user'):
        username, real_name = username.strip(), real_name.strip()
        errors = []
        if not re.match(r'^[A-Za-z0-9_]{4,16}$', username):
            errors.append(text('user.username_missing'))

        if not re.match(r'^[A-Za-z0-9_]{4,16}$', password):
            errors.append(text('user.password_invalid'))

        if not self.check_email(email):
            errors.append(text('user.email_missing'))

        if errors:
            return {'status': 'error', 'errors': errors}

        if status not in Account.STATUSES:
            status = 'inactive'

        if role not in Account.ROLES:
            role = 'user'

        if self.repo.find_by_username(username):
            errors.append(text('user.username_used'))

        if errors:
            return {'status': 'error', 'errors': errors}

        user = User(username, email, real_name, password, None, bio, status,
                    role)
        user.uid = self.repo.create(user)
        return {'status': 'ok', 'msg': 'saved', 'user': user}
Example #27
0
    def post(self):

        _ = self.get_argument
        _type = _('type')
        field = _('field')
        key = _('key')
        label = _('label')
        key = key or label

        validator = Validator()
        validator.add('valid_key',
                      lambda key: extend_service.count(key, _type) == 0)
        (validator.check(key, 'min', text('extend.key_missing'), 1).check(
            key, 'valid_key',
            text('extend.key_exists')).check(label, 'min',
                                             text('extend.label_missing'), 1))

        if validator.errors:
            self.flash(validator.errors, 'error')
            self.render('admin/extend/field/add.html')

        if field == 'image':
            attributes = {
                'type': reqp.get('attributes[type]'),
                'size': {
                    'height': reqp.get('attributes[size][height]', type=int),
                    'width': reqp.get('attributes[size][width]', type=int),
                }
            }
        elif field == 'file':
            attributes = {
                'type': reqp.get('attributes[type]'),
            }
        else:
            attributes = {}

        extend_service.create_extend(_type, key, label, field, attributes)
        return self.redirect(self.reverse_url('field_page'))
Example #28
0
    def post(self, extend_id):
        extend_id = int(extend_id)
        reqp = request.form
        _ = self.get_argument
        _type = _('type')
        field = _('field')
        key = _('key')
        label = _('label')
        key = key or label

        validator = Validator()
        (validator.check(key, 'min', text('extend.key_missing'),
                         1).check(label, 'min', text('extend.label_missing'),
                                  1))

        if validator.errors:
            self.flash(validator.errors, 'error')
            return self.redirect(self.reverse_url('field_edit', extend_id))

        if field == 'image':
            attributes = {
                'type': reqp.get('attributes[type]'),
                'size': {
                    'height': reqp.get('attributes[size][height]', type=int),
                    'width': reqp.get('attributes[size][width]', type=int),
                }
            }
        elif field == 'file':
            attributes = {
                'type': reqp.get('attributes[type]'),
            }
        else:
            attributes = {}

        extend_service.update_extend(_type, key, label, field, attributes,
                                     extend_id)
        return self.redirect(self.reverse_url('field_edit', extend_id))
Example #29
0
 def get(self, post_id):
     post_id = int(post_id)
     post_service.delete(post_id)
     self.flash(text('post.deleted'), 'success')
     self.redirect(self.reverse_url('post_page'))
Example #30
0

from .model import Post
from zephyr.lib.validator import Validator
from zephyr.helper import site

from zephyr.session import security, ADMIN, EDITOR
from zephyr.breeze import Thing, Backend
from zephyr.lang import text

post_service = Thing('Post')
category_service = Thing('Category')
extend_service = Thing('Extend')

STATUSES = {
    'published': text('global.published'),
    'draft': text('global.draft'),
    'archived': text('global.archived'),
}


class PostPage:
    @security(EDITOR)
    def get(self, page=1, category=None):
        page = int(page)
        if category is not None:
            category = int(category)
        pagination = post_service.page(page, site.posts_per_page(), category)
        self.render('admin//post/index.html',
                    categories=category_service.dropdown(),
                    posts=pagination,
Example #31
0
 def get(uid):
     user_service.delete(self.account, uid)
     self.flash(text('user.deleted'), 'success')
     return self.redirect(self.reverse_url('user_page'))
Example #32
0
 def get(self, post_id):
     post_id = int(post_id)
     post_service.delete(post_id)
     self.flash(text('post.deleted'), 'success')
     self.redirect(self.reverse_url('post_page'))
Example #33
0
        menu.connect('/page/add', AddPage, name='page_add')
        menu.connect(r('/page/<page_id:int>/edit'), EditPage, name='page_edit')
        menu.connect(r('/page/<page_id:int>/delete'), DeletePage, name='page_delete')

from .model import Page
from zephyr.lib.validator import Validator
from zephyr.helper import site


from zephyr.session import security, ADMIN, EDITOR
from zephyr.breeze import Thing, Backend
from zephyr.lang import text


PAGE_STATUSES = {
    'published': text('global.published'),
    'draft': text('global.draft'),
    'archived': text('global.archived'),
}

page_service,  extend_service= Thing('Page'), Thing('Extend')



class PagePage:


    @security(EDITOR)
    def get(self, page=1, status='all'):
        pagination = page_service.page(status, page, site.posts_per_page())
        self.render('admin/page/index.html',
Example #34
0
 def get(uid):
     user_service.delete(self.account, uid)
     self.flash(text('user.deleted'), 'success')
     return self.redirect(self.reverse_url('user_page'))
Example #35
0
 def get(self, comment_id):
     comment_id = int(comment_id)
     comment_service.delete(comment_id)
     self.flash(text('comment.deleted'), 'success')
     self.redirect(self.reverse_url('comment_page'))
Example #36
0
        menu.connect(r('/comment/<comment_id:int>/edit'), EditComment, name="comment_edit")
        menu.connect(r('/comment/<comment_id:int>/delete'), DeleteComment, name="comment_delete")


from zephyr.session import security, ADMIN, EDITOR
from zephyr.breeze import Thing
from zephyr.lang import text
from zephyr.lib.validator import Validator

from zephyr.helper import site


comment_service = Thing('Comment')

COMMENT_STATUSES = [
    {'url': 'all', 'lang': text('global.all'), 'class': 'all'},
    {'url': 'pending', 'lang': text('global.pending'), 'class': 'pending'},
    {'url': 'approved', 'lang': text('global.approved'), 'class': 'approved'},
    {'url': 'spam', 'lang': text('global.spam'), 'class': 'spam'}
]


class CommentPage:

    @security(EDITOR)
    def get(self, page=1, status='all'):
        page = int(page)
        pagination = comment_service.page(status, page, site.posts_per_page())
        self.render('admin//comment/index.html',
                               statuses=COMMENT_STATUSES,
                               status=status,