src/pyams_content/shared/blog/zmi/manager.py
changeset 297 4f385d0a5ce7
parent 292 c8704817db4a
child 334 6b2f75e60076
equal deleted inserted replaced
296:aaf2eac56470 297:4f385d0a5ce7
    28 
    28 
    29 # import interfaces
    29 # import interfaces
    30 from z3c.form.interfaces import IDataExtractedEvent
    30 from z3c.form.interfaces import IDataExtractedEvent
    31 
    31 
    32 # import packages
    32 # import packages
    33 from pyams_content.shared.blog.manager import BlogManager
       
    34 from pyams_form.form import AJAXAddForm, AJAXEditForm
    33 from pyams_form.form import AJAXAddForm, AJAXEditForm
    35 from pyams_pagelet.pagelet import pagelet_config
    34 from pyams_pagelet.pagelet import pagelet_config
    36 from pyams_skin.table import DefaultElementEditorAdapter
    35 from pyams_skin.table import DefaultElementEditorAdapter
    37 from pyams_skin.viewlet.menu import MenuItem
    36 from pyams_skin.viewlet.menu import MenuItem
    38 from pyams_skin.viewlet.toolbar import ToolbarMenuItem
    37 from pyams_skin.viewlet.toolbar import ToolbarMenuItem
    41 from pyams_utils.unicode import translate_string
    40 from pyams_utils.unicode import translate_string
    42 from pyams_utils.url import absolute_url
    41 from pyams_utils.url import absolute_url
    43 from pyams_viewlet.viewlet import viewlet_config
    42 from pyams_viewlet.viewlet import viewlet_config
    44 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
    43 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
    45 from pyramid.events import subscriber
    44 from pyramid.events import subscriber
       
    45 from pyramid.path import DottedNameResolver
    46 from pyramid.view import view_config
    46 from pyramid.view import view_config
    47 from z3c.form import field
    47 from z3c.form import field
    48 from zope.interface import Invalid
    48 from zope.interface import Invalid
    49 
    49 
    50 from pyams_content import _
    50 from pyams_content import _
    88     fields = field.Fields(IBlogManager).select('title', 'short_name')
    88     fields = field.Fields(IBlogManager).select('title', 'short_name')
    89     ajax_handler = 'add-blog-manager.json'
    89     ajax_handler = 'add-blog-manager.json'
    90     edit_permission = None
    90     edit_permission = None
    91 
    91 
    92     def create(self, data):
    92     def create(self, data):
    93         return BlogManager()
    93         factory = self.request.registry.settings.get('pyams_content.config.blog_factory')
       
    94         if factory is None:
       
    95             factory = 'pyams_content.shared.blog.manager.BlogManager'
       
    96         factory = DottedNameResolver().resolve(factory)
       
    97         return factory()
    94 
    98 
    95     def add(self, object):
    99     def add(self, object):
    96         short_name = II18n(object).query_attribute('short_name', request=self.request)
   100         short_name = II18n(object).query_attribute('short_name', request=self.request)
    97         name = translate_string(short_name, force_lower=True, spaces='-')
   101         name = translate_string(short_name, force_lower=True, spaces='-')
    98         self.context[name] = object
   102         self.context[name] = object