Example #1
0
def view_on_site(self, request, obj, fieldname, *args, **kwargs):
    available = obj.is_available
    endpoint = kwargs.pop(
        'endpoint',
        'quokka.core.detail' if available else 'quokka.core.preview'
    )
    return html.a(
        href=obj.get_absolute_url(endpoint),
        target='_blank',
    )(html.i(class_="icon icon-eye-open", style="margin-right: 5px;")(),
      _l('View on site') if available else _l('Preview on site'))
class PublishActions(object):
    @action('toggle_publish', _l('Publish/Unpublish'),
            _l('Publish/Unpublish?'))
    def action_toggle_publish(self, ids):
        for i in ids:
            instance = self.get_instance(i)
            instance.published = not instance.published
            instance.save()
        count = len(ids)
        flash(
            _n('Item successfully published/Unpublished.',
               '%(count)s items were successfully published/Unpublished.',
               count,
               count=count))
Example #3
0
 def clean(self):
     current_names = [value.name for value in self.values]
     for name in current_names:
         if current_names.count(name) > 1:
             raise Exception(_l("%(name)s already exists",
                                name=name))
     super(HasCustomValue, self).clean()
class ContentActions(object):
    @action('clone_item', _l('Create a copy'),
            _l('Are you sure you want a copy?'))
    def action_clone_item(self, ids):
        if len(ids) > 1:
            flash(_("You can select only one item for this action"), 'error')
            return

        instance = self.get_instance(ids[0])
        new = instance.from_json(instance.to_json())
        new.id = None
        new.published = False
        new.last_updated_by = User.objects.get(id=current_user.id)
        new.updated_at = datetime.datetime.now()
        new.slug = "{0}-{1}".format(new.slug, random.getrandbits(32))
        new.save()
        return redirect(url_for('.edit_view', id=new.id))
Example #5
0
    def validate_long_slug(self):
        self._create_mpath_long_slug()

        filters = dict(long_slug=self.long_slug)
        if self.id:
            filters['id__ne'] = self.id

        exist = self.__class__.objects(**filters)
        if exist.count():
            if current_app.config.get('SMART_SLUG_ENABLED', False):
                self.slug = "{0}-{1}".format(self.slug, random.getrandbits(32))
                self._create_mpath_long_slug()
            else:
                raise db.ValidationError(
                    _l("%(slug)s slug already exists",
                       slug=self.long_slug)
                )
Example #6
0
 def clean(self):
     homepage = Channel.objects(is_homepage=True)
     if self.is_homepage and homepage and self not in homepage:
         raise db.ValidationError(_l("Home page already exists"))
     super(Channel, self).clean()
Example #7
0
# -*- coding: utf-8 -*-
# -*- date: 2016-02-28 11:50 -*-

from __future__ import (absolute_import, division,
                        print_function, unicode_literals)

from flask.ext.admin.contrib.mongoengine import ModelView

from quokka import admin
from quokka.core.admin.utils import _l
from quokka.modules.accounts.models import Role


class RoleAdmin(ModelView):
    pass


admin.register(Role, RoleAdmin, category=_l('Accounts'), name=_l('Roles'))
Example #8
0
class Post(Content):
    # URL_NAMESPACE = 'posts.detail'
    body = db.StringField(required=True, verbose_name=_l('Body'))