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))
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))
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) )
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()
# -*- 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'))
class Post(Content): # URL_NAMESPACE = 'posts.detail' body = db.StringField(required=True, verbose_name=_l('Body'))