def test_toolbar_title_extension(self): old_toolbars = deepcopy(toolbar_pool.toolbars) class SampleExtension(ExtensionToolbar): model = MyTitleExtension def populate(self): current_page_menu = self._setup_extension_toolbar() if current_page_menu: position = 0 urls = self.get_title_extension_admin() for title_extension, url in urls: current_page_menu.add_modal_item( 'TestItem', url=url, disabled=not self.toolbar.edit_mode_active, position=position) toolbar_pool.register(SampleExtension) with self.login_user_context(self.admin): response = self.client.get('{}?edit'.format( self.page.get_absolute_url())) self.assertIn("TestItem", response.rendered_content) toolbar_pool.toolbars = old_toolbars
def replace_toolbar(cls): name = "%s.%s" % (PageToolbar.__module__, PageToolbar.__name__) if name in toolbar_pool.toolbars.keys(): log.debug("unregister cms toolbar '%s'", PageToolbar) toolbar_pool.unregister(PageToolbar) log.debug("Register cms toolbar '%s'", cls) toolbar_pool.register(cls)
def test_settings(self): toolbars = toolbar_pool.toolbars toolbar_pool.clear() with SettingsOverride(CMS_TOOLBARS=['cms.cms_toolbar.BasicToolbar', 'cms.cms_toolbar.PlaceholderToolbar']): toolbar_pool.register(TestToolbar) self.assertEqual(len(list(self.pool.get_toolbars().keys())), 2) api.create_page("home", "simple.html", "en", published=True) with self.login_user_context(self.get_superuser()): response = self.client.get("/en/?edit") self.assertEqual(response.status_code, 200) toolbar_pool.toolbars = toolbars
def test_settings(self): toolbars = toolbar_pool.toolbars toolbar_pool.clear() with self.settings(CMS_TOOLBARS=['cms.cms_toolbar.BasicToolbar', 'cms.cms_toolbar.PlaceholderToolbar']): toolbar_pool.register(TestToolbar) self.assertEqual(len(list(self.pool.get_toolbars().keys())), 2) api.create_page("home", "simple.html", "en", published=True) with self.login_user_context(self.get_superuser()): response = self.client.get("/en/?%s" % get_cms_setting('CMS_TOOLBAR_URL__EDIT_ON')) self.assertEqual(response.status_code, 200) toolbar_pool.toolbars = toolbars
def test_settings(self): pool = ToolbarPool() toolbars = toolbar_pool.toolbars toolbar_pool.clear() with self.settings(CMS_TOOLBARS=['cms.cms_toolbars.BasicToolbar', 'cms.cms_toolbars.PlaceholderToolbar']): toolbar_pool.register(TestToolbar) self.assertEqual(len(list(pool.get_toolbars().keys())), 2) api.create_page("home", "simple.html", "en", published=True) with self.login_user_context(self.get_superuser()): response = self.client.get("/en/?%s" % get_cms_setting('CMS_TOOLBAR_URL__EDIT_ON')) self.assertEqual(response.status_code, 200) toolbar_pool.toolbars = toolbars
def test_settings(self): pool = ToolbarPool() toolbars = toolbar_pool.toolbars toolbar_pool.clear() with self.settings(CMS_TOOLBARS=[ 'cms.cms_toolbars.BasicToolbar', 'cms.cms_toolbars.PlaceholderToolbar' ]): toolbar_pool.register(TestToolbar) self.assertEqual(len(list(pool.get_toolbars().keys())), 2) page = api.create_page("home", "simple.html", "en", published=True) page_edit_url_on = self.get_edit_on_url(page.get_absolute_url()) with self.login_user_context(self.get_superuser()): response = self.client.get(page_edit_url_on) self.assertEqual(response.status_code, 200) toolbar_pool.toolbars = toolbars
def test_toolbar_page_extension(self): old_toolbars = deepcopy(toolbar_pool.toolbars) class SampleExtension(ExtensionToolbar): model = MyPageExtension # The PageExtension / TitleExtension you are working with def populate(self): current_page_menu = self._setup_extension_toolbar() if current_page_menu: position = 0 page_extension, url = self.get_page_extension_admin() if url: current_page_menu.add_modal_item('TestItem', url=url, disabled=not self.toolbar.edit_mode, position=position) toolbar_pool.register(SampleExtension) with self.login_user_context(self.admin): response = self.client.get('/en/?edit') self.assertIn("TestItem", response.rendered_content) toolbar_pool.toolbars = old_toolbars
def test_toolbar_page_extension(self): old_toolbars = deepcopy(toolbar_pool.toolbars) class SampleExtension(ExtensionToolbar): model = MyPageExtension # The PageExtension / TitleExtension you are working with def populate(self): current_page_menu = self._setup_extension_toolbar() if current_page_menu: position = 0 page_extension, url = self.get_page_extension_admin() if url: current_page_menu.add_modal_item('TestItem', url=url, disabled=not self.toolbar.edit_mode, position=position) toolbar_pool.register(SampleExtension) with self.login_user_context(self.admin): response = self.client.get('/en/?edit') self.assertIn("TestItem", response.rendered_content) toolbar_pool.toolbars = old_toolbars
def test_toolbar_title_extension(self): old_toolbars = deepcopy(toolbar_pool.toolbars) class SampleExtension(ExtensionToolbar): model = MyTitleExtension def populate(self): current_page_menu = self._setup_extension_toolbar() if current_page_menu: position = 0 urls = self.get_title_extension_admin() for title_extension, url in urls: current_page_menu.add_modal_item( "TestItem", url=url, disabled=not self.toolbar.edit_mode, position=position ) toolbar_pool.register(SampleExtension) with self.login_user_context(self.admin): response = self.client.get("/en/?edit") self.assertIn("TestItem", response.rendered_content) toolbar_pool.toolbars = old_toolbars
def configuration_post_save(sender, **kwargs): import repanier.cms_toolbar config = kwargs["instance"] if config.id is not None: repanier.apps.REPANIER_SETTINGS_CONFIG = config site = Site.objects.get_current() if site is not None: site.name = config.group_name site.domain = settings.ALLOWED_HOSTS[0] site.save() repanier.apps.REPANIER_SETTINGS_GROUP_NAME = config.group_name if config.name == PERMANENCE_NAME_PERMANENCE: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Permanence") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Permanences") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _( "Permanence of ") elif config.name == PERMANENCE_NAME_CLOSURE: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Closure") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Closures") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _( "Closure of ") elif config.name == PERMANENCE_NAME_DELIVERY: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Delivery") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Deliveries") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _( "Delivery of ") elif config.name == PERMANENCE_NAME_ORDER: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Order") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Orders") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Order of ") elif config.name == PERMANENCE_NAME_OPENING: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Opening") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Openings") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _( "Opening of ") else: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Distribution") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _( "Distributions") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _( "Distribution of ") repanier.apps.REPANIER_SETTINGS_MAX_WEEK_WO_PARTICIPATION = config.max_week_wo_participation repanier.apps.REPANIER_SETTINGS_SEND_ABSTRACT_ORDER_MAIL_TO_CUSTOMER = config.send_abstract_order_mail_to_customer repanier.apps.REPANIER_SETTINGS_SEND_ORDER_MAIL_TO_BOARD = config.send_order_mail_to_board repanier.apps.REPANIER_SETTINGS_SEND_INVOICE_MAIL_TO_CUSTOMER = config.send_invoice_mail_to_customer repanier.apps.REPANIER_SETTINGS_SEND_INVOICE_MAIL_TO_PRODUCER = config.send_invoice_mail_to_producer repanier.apps.REPANIER_SETTINGS_DISPLAY_ANONYMOUS_ORDER_FORM = config.display_anonymous_order_form repanier.apps.REPANIER_SETTINGS_DISPLAY_WHO_IS_WHO = config.display_who_is_who repanier.apps.REPANIER_SETTINGS_XLSX_PORTRAIT = config.xlsx_portrait if config.bank_account is not None and len( config.bank_account.strip()) == 0: repanier.apps.REPANIER_SETTINGS_BANK_ACCOUNT = None else: repanier.apps.REPANIER_SETTINGS_BANK_ACCOUNT = config.bank_account if config.vat_id is not None and len(config.vat_id.strip()) == 0: repanier.apps.REPANIER_SETTINGS_VAT_ID = None else: repanier.apps.REPANIER_SETTINGS_VAT_ID = config.vat_id repanier.apps.REPANIER_SETTINGS_PAGE_BREAK_ON_CUSTOMER_CHECK = config.page_break_on_customer_check repanier.apps.REPANIER_SETTINGS_SMS_GATEWAY_MAIL = config.sms_gateway_mail repanier.apps.REPANIER_SETTINGS_MEMBERSHIP_FEE = config.membership_fee repanier.apps.REPANIER_SETTINGS_MEMBERSHIP_FEE_DURATION = config.membership_fee_duration if config.currency == CURRENCY_LOC: repanier.apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = "✿" repanier.apps.REPANIER_SETTINGS_AFTER_AMOUNT = False repanier.apps.REPANIER_SETTINGS_CURRENCY_XLSX = "_ ✿ * #,##0.00_ ;_ ✿ * -#,##0.00_ ;_ ✿ * \"-\"??_ ;_ @_ " elif config.currency == CURRENCY_CHF: repanier.apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = 'Fr.' repanier.apps.REPANIER_SETTINGS_AFTER_AMOUNT = False repanier.apps.REPANIER_SETTINGS_CURRENCY_XLSX = "_ Fr\. * #,##0.00_ ;_ Fr\. * -#,##0.00_ ;_ Fr\. * \"-\"??_ ;_ @_ " else: repanier.apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = "€" repanier.apps.REPANIER_SETTINGS_AFTER_AMOUNT = True repanier.apps.REPANIER_SETTINGS_CURRENCY_XLSX = "_ € * #,##0.00_ ;_ € * -#,##0.00_ ;_ € * \"-\"??_ ;_ @_ " if config.home_site is not None and len(config.home_site.strip()) == 0: repanier.apps.REPANIER_SETTINGS_HOME_SITE = "/" else: repanier.apps.REPANIER_SETTINGS_HOME_SITE = config.home_site repanier.apps.REPANIER_SETTINGS_TRANSPORT = config.transport repanier.apps.REPANIER_SETTINGS_MIN_TRANSPORT = config.min_transport menu_pool.clear() toolbar_pool.unregister(repanier.cms_toolbar.RepanierToolbar) toolbar_pool.register(repanier.cms_toolbar.RepanierToolbar) cache.clear()
menu.add_sideframe_item( name=_('Interest page list'), url=admin_reverse('focus_interestpage_changelist'), ) if add_ip_perm: menu.add_modal_item( name=_('Add new interest page'), url=admin_reverse('focus_interestpage_add'), ) if self.is_current_app and self.toolbar.obj: obj = self.toolbar.obj if isinstance(obj, Concept) and change_concept_perm: url = admin_reverse('focus_concept_change', args=[obj.pk]) menu.add_modal_item( name=_('Edit this concept'), url=url, active=True, ) if isinstance(obj, InterestPage) and change_ip_perm: url = admin_reverse('focus_interestpage_change', args=[obj.pk]) menu.add_modal_item( name=_('Edit this interest page'), url=url, active=True, ) toolbar_pool.register(FocusToolbar) # register the toolbar
if not self.is_current_app: return menu = self.toolbar.get_or_create_menu('polls_cms_integration-polls', 'Polls') menu.add_sideframe_item( name='Poll list', url=admin_reverse('polls_poll_changelist'), ) menu.add_modal_item( name=('Add a new poll'), url=admin_reverse('polls_poll_add'), ) buttonlist = self.toolbar.add_button_list() buttonlist.add_sideframe_button( name='Poll list', url=admin_reverse('polls_poll_changelist'), ) buttonlist.add_modal_button( name='Add a new poll', url=admin_reverse('polls_poll_add'), ) toolbar_pool.register(PollToolbar) # register the toolbar
# we reuse the name to avoid doubled elipsis. cleaned_name = item.name.rstrip(' .') real_item = ModalItem( cleaned_name, item.url, active=item.active, disabled=item.disabled, extra_classes=item.extra_classes, on_close=item.on_close, side=item.side) elif isinstance(item, SubMenu): real_item = self.rebuild_menu(item) else: real_item = item items.append(real_item) menu.items = items return menu def populate(self): menus = [ self.toolbar.get_menu(identifier) for identifier in (ADMIN_MENU_IDENTIFIER, PAGE_MENU_IDENTIFIER) ] for menu in [menu for menu in menus if menu]: self.rebuild_menu(menu) toolbar_pool.register(ForceModalDialogToolbar)
Action.CANCEL): self.add_button(workflow_dropdown, action_type) self.add_action_admin_button(workflow_dropdown) if workflow_dropdown.buttons: self.toolbar.add_item(workflow_dropdown) class EditorToolbar(CMSToolbar): def populate(self): action_dropdown = Dropdown(side=self.toolbar.RIGHT, ) action_dropdown.add_primary_button( DropdownToggleButton(name=_('Pending your approval'))) actions = Action.requiring_action(self.request.user) if actions: opts = Action._meta view = '{app_label}_{model_name}_change'.format( app_label=opts.app_label, model_name=opts.model_name) for a in actions: button = SideframeButton(name=str(a.title), url=admin_reverse( view, args=[a.get_request().pk])) action_dropdown.buttons.append(button) self.toolbar.add_item(action_dropdown) toolbar_pool.register(EditorToolbar) toolbar_pool.register(WorkflowExtensionToolbar) toolbar_pool.toolbars[ 'cms.cms_toolbars.PlaceholderToolbar'] = WorkflowPlaceholderToolbar toolbar_pool.toolbars['cms.cms_toolbars.PageToolbar'] = WorkflowPageToolbar
from django.conf import settings from django.utils.translation import ugettext_lazy as _ from cms.extensions.toolbar import ExtensionToolbar from cms.toolbar_pool import toolbar_pool from cms.toolbar.items import Break from cms.cms_toolbars import PAGE_MENU_SECOND_BREAK from cmsplugin_cascade.models import CascadePage class CascadePageToolbar(ExtensionToolbar): model = CascadePage def populate(self): current_page_menu = self._setup_extension_toolbar() if current_page_menu: # retrieves the instance of the current extension (if any) and the toolbar item URL page_extension, url = self.get_page_extension_admin() if url: position = current_page_menu.find_first(Break, identifier=PAGE_MENU_SECOND_BREAK) disabled = not self.toolbar.edit_mode_active current_page_menu.add_modal_item(_("Extra Page Fields"), position=position, url=url, disabled=disabled) if settings.CMSPLUGIN_CASCADE['register_page_editor']: toolbar_pool.register(CascadePageToolbar)
# Copyright (c) 2019. IIOTA (www.iiota.nl). All rights reserved. from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool from django.utils.translation import ugettext_lazy as _ from cms.utils.urlutils import admin_reverse class IIotaServicesToolbar(CMSToolbar): def populate(self): if not self.is_current_app: return menu = self.toolbar.get_or_create_menu( key='iiota_services_cms_integration', verbose_name='IIota Services') menu.add_sideframe_item( name=_('Services list'), url=admin_reverse('iiota_services_iiotaservice_changelist')) menu.add_sideframe_item( name=_('Add Service'), url=admin_reverse('iiota_services_iiotaservice_add')) toolbar_pool.register(IIotaServicesToolbar)
from django.urls import reverse from django.utils.translation import gettext_lazy as _ from cms.constants import RIGHT from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool from cms.utils.urlutils import admin_reverse class StaticGeneratorToolbar(CMSToolbar): def populate(self): buttonlist = self.toolbar.add_button_list(position=10, side=RIGHT) buttonlist.add_modal_button( name=_('Create static site'), url=reverse('generate'), ) toolbar_pool.register(StaticGeneratorToolbar)
from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool class ZinniaToolbar(CMSToolbar): def populate(self): zinnia_menu = self.toolbar.get_or_create_menu( 'zinnia-menu', _('Zinnia')) url = reverse('admin:zinnia_entry_add') zinnia_menu.add_sideframe_item(_('New entry'), url=url) url = reverse('admin:zinnia_category_add') zinnia_menu.add_sideframe_item(_('New category'), url=url) zinnia_menu.add_break() url = reverse('admin:zinnia_entry_changelist') zinnia_menu.add_sideframe_item(_('Entries list'), url=url) url = reverse('admin:zinnia_category_changelist') zinnia_menu.add_sideframe_item(_('Categories list'), url=url) url = reverse('admin:tagging_tag_changelist') zinnia_menu.add_sideframe_item(_('Tags list'), url=url) toolbar_pool.register(ZinniaToolbar)
"""Toolbar extensions for CMS""" from django.urls import reverse from django.utils.translation import gettext_lazy as _ from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool class BlogToolbar(CMSToolbar): def populate(self): if not hasattr(self.request, 'article'): return blog_menu = self.toolbar.get_or_create_menu('blog-menu', _('Blog')) article = self.request.article url = reverse('admin:fds_blog_article_change', args=(article.pk, )) blog_menu.add_modal_item(_('Edit article'), url=url) toolbar_pool.register(BlogToolbar)
from __future__ import absolute_import, division, generators, nested_scopes, print_function, unicode_literals, with_statement from cms.toolbar_pool import toolbar_pool from .utils import get_toolbar toolbar_pool.register(get_toolbar('Shop'))
from cms.utils.urlutils import admin_reverse from gallery.models import Gallery class GalleryToolbar(CMSToolbar): supported_apps = ( 'gallery', 'gallery_cms_integration', ) watch_models = [Gallery] def populate(self): if not self.is_current_app: return menu = self.toolbar.get_or_create_menu('gallery-app', _('Gallery')) menu.add_sideframe_item( name=_('Gallery list'), url=admin_reverse('gallery_gallery_changelist'), ) menu.add_modal_item( name=_('Add new gallery'), url=admin_reverse('gallery_gallery_add'), ) toolbar_pool.register(GalleryToolbar) # register the toolbar
) project.add_modal_item( name='Add a new Project', # name of the new menu item url=admin_reverse( 'portfolio_app_project_add'), # the URL it should open with ) # Menus Blog blog = self.toolbar.get_or_create_menu( 'portfolio_cms_integration-blog', # a unique key for this menu 'Blog', # the text that should appear in the menu ) blog.add_modal_item( name='Blog list', # name of the new menu item url=admin_reverse( 'portfolio_app_blog_changelist' ), # the URL it should open with appname_model_name_changelist ) blog.add_modal_item( name='Add a new Blog', # name of the new menu item url=admin_reverse( 'portfolio_app_blog_add'), # the URL it should open with ) # register the toolbar toolbar_pool.register(PortfolioToolbar)
# see https://github.com/kapt-labs/django-check-seo/wiki/Toolbar-shortcut#cms_toolbarspy # Third party from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool from django.utils.translation import ugettext_lazy as _ class DjangoSeoToolbar(CMSToolbar): def populate(self): self.toolbar.add_sideframe_item( _("Check SEO"), # text "/django-check-seo/?page=" + self.request.path, # url (+ current page passed as a GET parameter) ) # register the toolbar toolbar_pool.register(DjangoSeoToolbar)
menu.add_link_item(name=_('View on page'), url=url) menu.add_break() user = self.request.user add_model_perm = PublisherItem.has_add_permission( user, raise_exception=False) change_model_perm = PublisherItem.has_change_permission( user, raise_exception=False) delete_model_perm = PublisherItem.has_delete_permission( user, raise_exception=False) log.debug( "User %s 'PublisherItem' permissions: add:%r, change:%r, delete:%r", user, add_model_perm, change_model_perm, delete_model_perm) if change_model_perm: menu.add_sideframe_item( name=_('PublisherItem list'), url=admin_reverse(ADMIN_REVERSE_PREFIX + "_changelist"), ) if add_model_perm: menu.add_modal_item( name=_('Add new list_item'), url=admin_reverse(ADMIN_REVERSE_PREFIX + "_add"), ) toolbar_pool.register(PublisherItemToolbar)
from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool from django.urls import reverse class OrchesterToolbar(CMSToolbar): def populate(self): menu = self.toolbar.get_or_create_menu( key='orchester_cms_integration', verbose_name='Orchester' ) menu.add_break(identifier='settings_section') menu.add_sideframe_item( # or add_button(), add_modal_item(), etc name='Admin panel', url=reverse('orchester:index') ) toolbar_pool.register(OrchesterToolbar)
name=_('Publisher list'), url=admin_reverse('datasets_publisher_changelist'), ) if add_pub_perm: menu.add_modal_item( name=_('Add new publisher'), url=admin_reverse('datasets_publisher_add'), ) if self.is_current_app and self.toolbar.obj: obj = self.toolbar.obj if isinstance(obj, CatalogRecord) and change_ds_perm: url = admin_reverse('datasets_catalogrecord_change', args=[obj.pk]) menu.add_modal_item( name=_('Edit this dataset'), url=url, active=True, ) if isinstance(obj, Publisher) and change_pub_perm: url = admin_reverse('datasets_publisher_change', args=[obj.pk]) menu.add_modal_item( name=_('Edit this publisher'), url=url, active=True, ) toolbar_pool.register(DatasetsToolbar) # register the toolbar
from django.shortcuts import reverse from django.utils.translation import gettext_lazy as _ from cms.cms_toolbars import ADMIN_MENU_IDENTIFIER, PlaceholderToolbar from cms.toolbar_pool import toolbar_pool from .models import MenuContent class NavigationToolbar(PlaceholderToolbar): menu_content_model = MenuContent def _add_navigation_menu(self): if not self.request.user.has_perm("{}.change_menucontent".format( self.menu_content_model._meta.app_label)): return admin_menu = self.toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER) url = reverse("admin:{}_menucontent_changelist".format( self.menu_content_model._meta.app_label)) admin_menu.add_sideframe_item(_("Navigation"), url=url, position=4) def post_template_populate(self): self._add_navigation_menu() toolbar_pool.register(NavigationToolbar)
from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool from .models import File class FileToolbar(CMSToolbar): def populate(self): self.toolbar.get_or_create_menu( 'file_cms_integration-files', # a unique key for this menu 'FileToolBar', # the text that should appear in the menu ) # register the toolbar toolbar_pool.register(FileToolbar)
url=admin_reverse('dgf_tournament_changelist'), ) menu.add_modal_item( name=_('New tournament'), url=admin_reverse('dgf_tournament_add'), ) class FolderToolbar(CMSToolbar): def populate(self): menu = self.toolbar.get_or_create_menu( 'filer-folder', _('Folders'), ) menu.add_sideframe_item( name=_('All folders'), url=admin_reverse('filer_folder_changelist'), ) background_folder = Folder.objects.get(name=settings.BACKGROUND_FOLDER) menu.add_sideframe_item( name=_(background_folder.name), url=admin_reverse('filer-directory_listing', args=(background_folder.id, )), ) toolbar_pool.register(FriendsToolbar) toolbar_pool.register(CourseToolbar) toolbar_pool.register(TournamentToolbar) toolbar_pool.register(FolderToolbar)
"""Toolbar extensions for CMS""" from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool class SocialaggregatorToolbar(CMSToolbar): def populate(self): socialaggregator_menu = self.toolbar.get_or_create_menu( 'socialaggregator-menu', _('SocialAggregator')) url = reverse('admin:socialaggregator_feed_add') socialaggregator_menu.add_sideframe_item(_('New feed'), url=url) url = reverse('admin:socialaggregator_ressource_add') socialaggregator_menu.add_sideframe_item(_('New ressource'), url=url) socialaggregator_menu.add_break() url = reverse('admin:socialaggregator_feed_changelist') socialaggregator_menu.add_sideframe_item(_('Feeds list'), url=url) url = reverse('admin:socialaggregator_ressource_changelist') socialaggregator_menu.add_sideframe_item(_('Ressources list'), url=url) toolbar_pool.register(SocialaggregatorToolbar)
zinnia_menu.add_break() url = reverse('admin:zinnia_entry_changelist') zinnia_menu.add_sideframe_item( _('Entries list'), url=url, disabled=not user.has_perm('zinnia.change_entry')) url = reverse('admin:zinnia_category_changelist') zinnia_menu.add_sideframe_item( _('Categories list'), url=url, disabled=not user.has_perm('zinnia.change_category')) url = reverse('admin:tagging_tag_changelist') zinnia_menu.add_sideframe_item( _('Tags list'), url=url, disabled=not user.has_perm('tagging.change_tag')) # Remove complete menu if all items are disabled enabled_items = [ item for item in zinnia_menu.get_items() if not getattr(item, 'disabled', True) ] if not enabled_items: self.toolbar.remove_item(zinnia_menu) toolbar_pool.register(ZinniaToolbar)
def configuration_post_save(sender, **kwargs): import repanier.cms_toolbar from repanier import apps config = kwargs["instance"] if config.id is not None: apps.REPANIER_SETTINGS_CONFIG = config if config.name == PERMANENCE_NAME_PERMANENCE: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Permanence") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Permanences") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Permanence of ") elif config.name == PERMANENCE_NAME_CLOSURE: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Closure") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Closures") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Closure of ") elif config.name == PERMANENCE_NAME_DELIVERY: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Delivery") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Deliveries") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Delivery of ") elif config.name == PERMANENCE_NAME_ORDER: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Order") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Orders") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Order of ") elif config.name == PERMANENCE_NAME_OPENING: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Opening") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Openings") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Opening of ") else: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Distribution") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Distributions") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Distribution of ") apps.REPANIER_SETTINGS_MAX_WEEK_WO_PARTICIPATION = ( config.max_week_wo_participation) apps.REPANIER_SETTINGS_SEND_ABSTRACT_ORDER_MAIL_TO_CUSTOMER = ( config.send_abstract_order_mail_to_customer) apps.REPANIER_SETTINGS_SEND_ORDER_MAIL_TO_BOARD = ( config.send_order_mail_to_board) apps.REPANIER_SETTINGS_SEND_INVOICE_MAIL_TO_CUSTOMER = ( config.send_invoice_mail_to_customer) apps.REPANIER_SETTINGS_SEND_INVOICE_MAIL_TO_PRODUCER = ( config.send_invoice_mail_to_producer) apps.REPANIER_SETTINGS_DISPLAY_ANONYMOUS_ORDER_FORM = ( config.display_anonymous_order_form) apps.REPANIER_SETTINGS_DISPLAY_WHO_IS_WHO = config.display_who_is_who apps.REPANIER_SETTINGS_XLSX_PORTRAIT = config.xlsx_portrait # if config.bank_account is not None and len(config.bank_account.strip()) == 0: # apps.REPANIER_SETTINGS_BANK_ACCOUNT = None # else: apps.REPANIER_SETTINGS_BANK_ACCOUNT = config.bank_account # if config.vat_id is not None and len(config.vat_id.strip()) == 0: # apps.REPANIER_SETTINGS_VAT_ID = None # else: apps.REPANIER_SETTINGS_VAT_ID = config.vat_id apps.REPANIER_SETTINGS_PAGE_BREAK_ON_CUSTOMER_CHECK = ( config.page_break_on_customer_check) apps.REPANIER_SETTINGS_MEMBERSHIP_FEE = config.membership_fee apps.REPANIER_SETTINGS_MEMBERSHIP_FEE_DURATION = config.membership_fee_duration if config.currency == CURRENCY_LOC: apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = "✿" apps.REPANIER_SETTINGS_AFTER_AMOUNT = False apps.REPANIER_SETTINGS_CURRENCY_XLSX = ( '_ ✿ * #,##0.00_ ;_ ✿ * -#,##0.00_ ;_ ✿ * "-"??_ ;_ @_ ') elif config.currency == CURRENCY_CHF: apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = "Fr." apps.REPANIER_SETTINGS_AFTER_AMOUNT = False apps.REPANIER_SETTINGS_CURRENCY_XLSX = ( '_ Fr\. * #,##0.00_ ;_ Fr\. * -#,##0.00_ ;_ Fr\. * "-"??_ ;_ @_ ' ) else: apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = "€" apps.REPANIER_SETTINGS_AFTER_AMOUNT = True apps.REPANIER_SETTINGS_CURRENCY_XLSX = ( '_ € * #,##0.00_ ;_ € * -#,##0.00_ ;_ € * "-"??_ ;_ @_ ') if config.home_site: apps.REPANIER_SETTINGS_HOME_SITE = config.home_site else: apps.REPANIER_SETTINGS_HOME_SITE = "/" # config.email = settings.DJANGO_SETTINGS_EMAIL_HOST_USER menu_pool.clear() toolbar_pool.unregister(repanier.cms_toolbar.RepanierToolbar) toolbar_pool.register(repanier.cms_toolbar.RepanierToolbar) cache.clear()
"""Toolbar extensions for CMS""" from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool class SlideshowToolbar(CMSToolbar): def populate(self): slideshows_menu = self.toolbar.get_or_create_menu( 'slideshows-menu', _('Slideshows')) url = reverse('admin:slideshows_slideshow_add') slideshows_menu.add_sideframe_item(_('New slideshow'), url=url) url = reverse('admin:slideshows_slide_add') slideshows_menu.add_sideframe_item(_('New ressource'), url=url) slideshows_menu.add_break() url = reverse('admin:slideshows_slideshow_changelist') slideshows_menu.add_sideframe_item(_('Slideshows list'), url=url) url = reverse('admin:slideshows_slide_changelist') slideshows_menu.add_sideframe_item(_('Slides list'), url=url) toolbar_pool.register(SlideshowToolbar)
from cms.toolbar_pool import toolbar_pool from barbeque.cms.toolbar import TitleExtensionToolbar from .models import ExtensionModel class ExtensionToolbar(TitleExtensionToolbar): model = ExtensionModel insert_after = 'Advanced settings' toolbar_pool.register(ExtensionToolbar)
def configuration_post_save(sender, **kwargs): import repanier.cms_toolbar from repanier import apps config = kwargs["instance"] if config.id is not None: apps.REPANIER_SETTINGS_CONFIG = config if config.name == PERMANENCE_NAME_PERMANENCE: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Permanence") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Permanences") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Permanence of ") elif config.name == PERMANENCE_NAME_CLOSURE: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Closure") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Closures") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Closure of ") elif config.name == PERMANENCE_NAME_DELIVERY: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Delivery") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Deliveries") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Delivery of ") elif config.name == PERMANENCE_NAME_ORDER: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Order") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Orders") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Order of ") elif config.name == PERMANENCE_NAME_OPENING: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Opening") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Openings") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Opening of ") else: apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Distribution") apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Distributions") apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Distribution of ") apps.REPANIER_SETTINGS_MAX_WEEK_WO_PARTICIPATION = config.max_week_wo_participation apps.REPANIER_SETTINGS_SEND_ABSTRACT_ORDER_MAIL_TO_CUSTOMER = config.send_abstract_order_mail_to_customer apps.REPANIER_SETTINGS_SEND_ORDER_MAIL_TO_BOARD = config.send_order_mail_to_board apps.REPANIER_SETTINGS_SEND_INVOICE_MAIL_TO_CUSTOMER = config.send_invoice_mail_to_customer apps.REPANIER_SETTINGS_SEND_INVOICE_MAIL_TO_PRODUCER = config.send_invoice_mail_to_producer apps.REPANIER_SETTINGS_DISPLAY_ANONYMOUS_ORDER_FORM = config.display_anonymous_order_form apps.REPANIER_SETTINGS_DISPLAY_WHO_IS_WHO = config.display_who_is_who apps.REPANIER_SETTINGS_XLSX_PORTRAIT = config.xlsx_portrait # if config.bank_account is not None and len(config.bank_account.strip()) == 0: # apps.REPANIER_SETTINGS_BANK_ACCOUNT = None # else: apps.REPANIER_SETTINGS_BANK_ACCOUNT = config.bank_account # if config.vat_id is not None and len(config.vat_id.strip()) == 0: # apps.REPANIER_SETTINGS_VAT_ID = None # else: apps.REPANIER_SETTINGS_VAT_ID = config.vat_id apps.REPANIER_SETTINGS_PAGE_BREAK_ON_CUSTOMER_CHECK = config.page_break_on_customer_check apps.REPANIER_SETTINGS_MEMBERSHIP_FEE = config.membership_fee apps.REPANIER_SETTINGS_MEMBERSHIP_FEE_DURATION = config.membership_fee_duration if config.currency == CURRENCY_LOC: apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = "✿" apps.REPANIER_SETTINGS_AFTER_AMOUNT = False apps.REPANIER_SETTINGS_CURRENCY_XLSX = "_ ✿ * #,##0.00_ ;_ ✿ * -#,##0.00_ ;_ ✿ * \"-\"??_ ;_ @_ " elif config.currency == CURRENCY_CHF: apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = 'Fr.' apps.REPANIER_SETTINGS_AFTER_AMOUNT = False apps.REPANIER_SETTINGS_CURRENCY_XLSX = "_ Fr\. * #,##0.00_ ;_ Fr\. * -#,##0.00_ ;_ Fr\. * \"-\"??_ ;_ @_ " else: apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = "€" apps.REPANIER_SETTINGS_AFTER_AMOUNT = True apps.REPANIER_SETTINGS_CURRENCY_XLSX = "_ € * #,##0.00_ ;_ € * -#,##0.00_ ;_ € * \"-\"??_ ;_ @_ " if config.home_site: apps.REPANIER_SETTINGS_HOME_SITE = config.home_site else: apps.REPANIER_SETTINGS_HOME_SITE = "/" # config.email = settings.DJANGO_SETTINGS_EMAIL_HOST_USER menu_pool.clear() toolbar_pool.unregister(repanier.cms_toolbar.RepanierToolbar) toolbar_pool.register(repanier.cms_toolbar.RepanierToolbar) cache.clear()
# Copyright (c) 2019. IIOTA (www.iiota.nl). All rights reserved. from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool from django.utils.translation import ugettext_lazy as _ from cms.utils.urlutils import admin_reverse class ReferenceStoryToolbar(CMSToolbar): def populate(self): if not self.is_current_app: return menu = self.toolbar.get_or_create_menu( key='ref_stories_cms_integration', verbose_name='Reference Stories') menu.add_sideframe_item( name=_('Story list'), url=admin_reverse('reference_stories_referencestory_changelist')) menu.add_sideframe_item( name=_('Add Story'), url=admin_reverse('reference_stories_referencestory_add')) toolbar_pool.register(ReferenceStoryToolbar)
from django.utils.translation import ugettext_lazy as _ from cms.toolbar_pool import toolbar_pool from cms.toolbar_base import CMSToolbar from cms.utils.urlutils import admin_reverse from .models import Category class CategoryToolbar(CMSToolbar): supported_apps = ('aldryn_categories', ) watch_models = [Category] def populate(self): menu = self.toolbar.get_or_create_menu('aldryn_categorie-app', _('Categories')) menu.add_modal_item( name=_('Add new Category'), url=admin_reverse('aldryn_categories_category_add'), ) menu.add_sideframe_item( name=_('Categories list'), url=admin_reverse('aldryn_categories_category_changelist'), ) toolbar_pool.register(CategoryToolbar)
"""Toolbar extensions for CMS""" from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool class SlideshowToolbar(CMSToolbar): def populate(self): slideshows_menu = self.toolbar.get_or_create_menu( 'slideshows-menu', _('Slideshows')) url = reverse('admin:slideshows_slideshow_add') slideshows_menu.add_sideframe_item(_('New slideshow'), url=url) url = reverse('admin:slideshows_slide_add') slideshows_menu.add_sideframe_item(_('New ressource'), url=url) slideshows_menu.add_break() url = reverse('admin:slideshows_slideshow_changelist') slideshows_menu.add_sideframe_item(_('Slideshows list'), url=url) url = reverse('admin:slideshows_slide_changelist') slideshows_menu.add_sideframe_item(_('Slides list'), url=url) toolbar_pool.register(SlideshowToolbar)
buttonlist = self.toolbar.add_button_list() buttonlist.add_sideframe_button( name='Poll list', url=admin_reverse('polls_question_changelist'), ) buttonlist.add_modal_button( name='Add a new poll', url=admin_reverse('polls_question_add'), ) # register the toolbar toolbar_pool.register(PollToolbar) # from cms.utils.urlutils import admin_reverse # from cms.toolbar_base import CMSToolbar # from cms.toolbar_pool import toolbar_pool # from polls.models import Question # class PollToolbar(CMSToolbar): # supported_apps = ['polls'] # def populate(self): # if not self.is_current_app: # return # menu = self.toolbar.get_or_create_menu('polls_cms_integration-polls', 'Polls')
def configuration_post_save(sender, **kwargs): import repanier.cms_toolbar from repanier.models import BankAccount, Producer, Customer config = kwargs["instance"] if config.id is not None: repanier.apps.REPANIER_SETTINGS_CONFIG = config repanier.apps.REPANIER_SETTINGS_TEST_MODE = config.test_mode site = Site.objects.get_current() if site is not None: site.name = config.group_name site.domain = settings.ALLOWED_HOSTS[0] site.save() repanier.apps.REPANIER_SETTINGS_GROUP_NAME = config.group_name if config.name == PERMANENCE_NAME_PERMANENCE: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Permanence") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Permanences") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Permanence on ") elif config.name == PERMANENCE_NAME_CLOSURE: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Closure") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Closures") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Closure on ") elif config.name == PERMANENCE_NAME_DELIVERY: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Delivery") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Deliveries") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Delivery on ") elif config.name == PERMANENCE_NAME_ORDER: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Order") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Orders") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Order on ") elif config.name == PERMANENCE_NAME_OPENING: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Opening") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Openings") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Opening on ") else: repanier.apps.REPANIER_SETTINGS_PERMANENCE_NAME = _("Distribution") repanier.apps.REPANIER_SETTINGS_PERMANENCES_NAME = _("Distributions") repanier.apps.REPANIER_SETTINGS_PERMANENCE_ON_NAME = _("Distribution on ") repanier.apps.REPANIER_SETTINGS_MAX_WEEK_WO_PARTICIPATION = config.max_week_wo_participation repanier.apps.REPANIER_SETTINGS_SEND_OPENING_MAIL_TO_CUSTOMER = config.send_opening_mail_to_customer repanier.apps.REPANIER_SETTINGS_SEND_ORDER_MAIL_TO_CUSTOMER = config.send_order_mail_to_customer repanier.apps.REPANIER_SETTINGS_SEND_CANCEL_ORDER_MAIL_TO_CUSTOMER = config.send_cancel_order_mail_to_customer repanier.apps.REPANIER_SETTINGS_SEND_ABSTRACT_ORDER_MAIL_TO_CUSTOMER = config.send_abstract_order_mail_to_customer repanier.apps.REPANIER_SETTINGS_SEND_ORDER_MAIL_TO_PRODUCER = config.send_order_mail_to_producer repanier.apps.REPANIER_SETTINGS_SEND_ABSTRACT_ORDER_MAIL_TO_PRODUCER = config.send_abstract_order_mail_to_producer repanier.apps.REPANIER_SETTINGS_SEND_ORDER_MAIL_TO_BOARD = config.send_order_mail_to_board repanier.apps.REPANIER_SETTINGS_SEND_INVOICE_MAIL_TO_CUSTOMER = config.send_invoice_mail_to_customer repanier.apps.REPANIER_SETTINGS_SEND_INVOICE_MAIL_TO_PRODUCER = config.send_invoice_mail_to_producer repanier.apps.REPANIER_SETTINGS_INVOICE = config.invoice repanier.apps.REPANIER_SETTINGS_CLOSE_WO_SENDING = config.close_wo_sending repanier.apps.REPANIER_SETTINGS_DISPLAY_ANONYMOUS_ORDER_FORM = config.display_anonymous_order_form repanier.apps.REPANIER_SETTINGS_DISPLAY_PRODUCER_ON_ORDER_FORM = config.display_producer_on_order_form if config.bank_account is not None and len(config.bank_account.strip()) == 0: repanier.apps.REPANIER_SETTINGS_BANK_ACCOUNT = None else: repanier.apps.REPANIER_SETTINGS_BANK_ACCOUNT = config.bank_account if config.vat_id is not None and len(config.vat_id.strip()) == 0: repanier.apps.REPANIER_SETTINGS_VAT_ID = None else: repanier.apps.REPANIER_SETTINGS_VAT_ID = config.vat_id repanier.apps.REPANIER_SETTINGS_PAGE_BREAK_ON_CUSTOMER_CHECK = config.page_break_on_customer_check repanier.apps.REPANIER_SETTINGS_SMS_GATEWAY_MAIL = config.sms_gateway_mail repanier.apps.REPANIER_SETTINGS_CUSTOMERS_MUST_CONFIRM_ORDERS = config.customers_must_confirm_orders repanier.apps.REPANIER_SETTINGS_MEMBERSHIP_FEE = config.membership_fee repanier.apps.REPANIER_SETTINGS_MEMBERSHIP_FEE_DURATION = config.membership_fee_duration if config.currency == CURRENCY_LOC: repanier.apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = u'✿' repanier.apps.REPANIER_SETTINGS_AFTER_AMOUNT = False repanier.apps.REPANIER_SETTINGS_CURRENCY_XLSX = u'_ ✿ * #,##0.00_ ;_ ✿ * -#,##0.00_ ;_ ✿ * "-"??_ ;_ @_ ' elif config.currency == CURRENCY_CHF: repanier.apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = 'Fr.' repanier.apps.REPANIER_SETTINGS_AFTER_AMOUNT = False repanier.apps.REPANIER_SETTINGS_CURRENCY_XLSX = '_ Fr\. * #,##0.00_ ;_ Fr\. * -#,##0.00_ ;_ Fr\. * "-"??_ ;_ @_ ' else: repanier.apps.REPANIER_SETTINGS_CURRENCY_DISPLAY = u'€' repanier.apps.REPANIER_SETTINGS_AFTER_AMOUNT = True repanier.apps.REPANIER_SETTINGS_CURRENCY_XLSX = u'_ € * #,##0.00_ ;_ € * -#,##0.00_ ;_ € * "-"??_ ;_ @_ ' if config.home_site is not None and len(config.home_site.strip()) == 0: repanier.apps.REPANIER_SETTINGS_HOME_SITE = "/" else: repanier.apps.REPANIER_SETTINGS_HOME_SITE = config.home_site repanier.apps.REPANIER_SETTINGS_TRANSPORT = config.transport repanier.apps.REPANIER_SETTINGS_MIN_TRANSPORT = config.min_transport bank_account = BankAccount.objects.filter(operation_status=BANK_LATEST_TOTAL).order_by('?').first() if bank_account is None: # If not latest total exists, create it with operation date before all movements bank_account = BankAccount.objects.all().order_by("operation_date").first() if bank_account is None: BankAccount.objects.create(operation_status=BANK_LATEST_TOTAL, operation_date=timezone.now().date()) else: BankAccount.objects.create(operation_status=BANK_LATEST_TOTAL, operation_date=bank_account.operation_date + datetime.timedelta( days=-1)) producer_buyinggroup = Producer.objects.filter(represent_this_buyinggroup=True).order_by('?').first() if producer_buyinggroup is None: producer_buyinggroup = Producer.objects.create( short_profile_name="z-%s" % repanier.apps.REPANIER_SETTINGS_GROUP_NAME, long_profile_name=repanier.apps.REPANIER_SETTINGS_GROUP_NAME, represent_this_buyinggroup=True ) if producer_buyinggroup is not None: membership_fee_product = product.Product.objects.filter(is_membership_fee=True, is_active=True).order_by( '?').first() if membership_fee_product is None: membership_fee_product = product.Product.objects.create( producer_id=producer_buyinggroup.id, is_membership_fee=True, order_unit=PRODUCT_ORDER_UNIT_SUBSCRIPTION, vat_level=VAT_100 ) cur_language = translation.get_language() for language in settings.PARLER_LANGUAGES[settings.SITE_ID]: language_code = language["code"] translation.activate(language_code) membership_fee_product.set_current_language(language_code) membership_fee_product.long_name = "%s" % (_("Membership fee")) membership_fee_product.save() translation.activate(cur_language) customer_buyinggroup = Customer.objects.filter(represent_this_buyinggroup=True).order_by('?') if not customer_buyinggroup.exists(): user = User.objects.create_user( username="******" % repanier.apps.REPANIER_SETTINGS_GROUP_NAME, email="%s%s" % ( repanier.apps.REPANIER_SETTINGS_GROUP_NAME, settings.DJANGO_SETTINGS_ALLOWED_MAIL_EXTENSION), password=uuid.uuid1().hex, first_name=EMPTY_STRING, last_name=repanier.apps.REPANIER_SETTINGS_GROUP_NAME) Customer.objects.create( user=user, short_basket_name="z-%s" % repanier.apps.REPANIER_SETTINGS_GROUP_NAME, long_basket_name=repanier.apps.REPANIER_SETTINGS_GROUP_NAME, phone1='0499/96.64.32', represent_this_buyinggroup=True ) menu_pool.clear() toolbar_pool.unregister(repanier.cms_toolbar.RepanierToolbar) toolbar_pool.register(repanier.cms_toolbar.RepanierToolbar) cache.clear()
def add_structure_mode_item(self, *args, **kwargs): if not self.toolbar.auto_translate: super(NewPhTb, self).add_structure_mode_item(*args, **kwargs) class NewPageTb(PageToolbar): def add_draft_live(self, *args, **kwargs): return self.add_draft_live_item( template='cms/toolbar/items/live_draft_translate.html') def add_publish_button(self, *args, **kwargs): if not self.toolbar.auto_translate: super(NewPageTb, self).add_publish_button(*args, **kwargs) # Remove existing page toolbar toolbar_pool.unregister(PlaceholderToolbar) toolbar_pool.register(NewPhTb) toolbar_pool.unregister(PageToolbar) toolbar_pool.register(NewPageTb) from cms.templatetags.cms_admin import TreePublishRow from cms.utils.compat.dj import force_unicode from django.utils.safestring import mark_safe old_render = TreePublishRow.render_tag def render_tag(self, context, page, language): if page.auto_translate(language) and not page.auto_empty(language): return mark_safe('<span style="background-color:#ad7fa8;" class="%s" title="%s"></span>' % ( 'translated', force_unicode(_('Managed Translation')))) return old_render(self, context, page, language)
"""Toolbar extensions for CMS""" from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ from cms.toolbar_base import CMSToolbar from cms.toolbar_pool import toolbar_pool class SocialaggregatorToolbar(CMSToolbar): def populate(self): socialaggregator_menu = self.toolbar.get_or_create_menu( 'socialaggregator-menu', _('SocialAggregator')) url = reverse('admin:socialaggregator_feed_add') socialaggregator_menu.add_sideframe_item(_('New feed'), url=url) url = reverse('admin:socialaggregator_ressource_add') socialaggregator_menu.add_sideframe_item(_('New ressource'), url=url) socialaggregator_menu.add_break() url = reverse('admin:socialaggregator_feed_changelist') socialaggregator_menu.add_sideframe_item(_('Feeds list'), url=url) url = reverse('admin:socialaggregator_ressource_changelist') socialaggregator_menu.add_sideframe_item(_('Ressources list'), url=url) toolbar_pool.register(SocialaggregatorToolbar)