# -*- coding: utf-8 -*-
# Copyright (c) 2002-2013 Infrae. All rights reserved.
# See also LICENSE.txt

import logging

from silva.core import conf as silvaconf
from silva.core.conf.installer import DefaultInstaller
from zope.interface import Interface

silvaconf.extension_name('SilvaExternalSources')
silvaconf.extension_title('Silva External Sources')
silvaconf.extension_depends(["Silva", "silva.core.editor"])
silvaconf.extension_default()

logger = logging.getLogger('silva.externalsources')


class IExtension(Interface):
    """Silva External Sources extension.
    """

class ExternalSourcesInstaller(DefaultInstaller):
    """Silva External Sources installer
    """

    def install_custom(self, root):
        installed_ids = root.objectIds()
        if 'service_codesources' not in installed_ids:
            factory = root.manage_addProduct['SilvaExternalSources']
            factory.manage_addCodeSourceService()
Example #2
0
from five import grok
from zope.interface import Interface
from zope.component import queryUtility, getUtility

from silva.core import conf as silvaconf
from silva.core.conf.installer import DefaultInstaller
from silva.core.contentlayout.interfaces import IContentLayoutService
from silva.core.contentlayout.interfaces import IDesignLookup
from silva.core.editor.interfaces import ICKEditorService
from silva.core.interfaces import IContainerPolicy

silvaconf.extension_name("silva.app.page")
silvaconf.extension_title(u"Silva Page")
silvaconf.extension_depends(
    ["Silva",
     "silva.core.contentlayout",
     "silva.app.news"])


class PagePolicy(Persistent):
    grok.implements(IContainerPolicy)

    def createDefaultDocument(self, container, title):
        factory = container.manage_addProduct['silva.app.page']
        factory.manage_addPage('index', title)
        page = container._getOb('index')
        service = getUtility(IDesignLookup)
        page.get_editable().set_design(service.default_design(page))


class PageInstaller(DefaultInstaller):
Example #3
0
# -*- coding: utf-8 -*-
# Copyright (c) 2012-2013 Infrae. All rights reserved.
# See also LICENSE.txt

from zope.interface import Interface

from silva.core import conf as silvaconf
from silva.core.conf.installer import DefaultInstaller

SERVICE_NAME = 'service_shorturls'
SHORT_URL_PREFIX = '$'

silvaconf.extension_name("silva.app.shorturl")
silvaconf.extension_title("Silva Short URL")
silvaconf.extension_depends(['Silva'])


class SilvaShortURLInstaller(DefaultInstaller):
    """ Silva shorturl installer
    """

    service_name = SERVICE_NAME

    def install_custom(self, root):
        installed_ids = root.objectIds()
        if SERVICE_NAME not in installed_ids:
            factory = root.manage_addProduct['silva.app.shorturl']
            factory.manage_addShortURLService(SERVICE_NAME)
        resolver_name = SERVICE_NAME + '_resolver'
        if resolver_name not in installed_ids:
            factory = root.manage_addProduct['silva.app.shorturl']
Example #4
0
# -*- coding: utf-8 -*-
# Copyright (c) 2002-2013 Infrae. All rights reserved.
# See also LICENSE.txt

import logging

from silva.core import conf as silvaconf
from silva.core.conf.installer import DefaultInstaller
from zope.interface import Interface

silvaconf.extension_name('SilvaExternalSources')
silvaconf.extension_title('Silva External Sources')
silvaconf.extension_depends(["Silva", "silva.core.editor"])
silvaconf.extension_default()

logger = logging.getLogger('silva.externalsources')


class IExtension(Interface):
    """Silva External Sources extension.
    """

class ExternalSourcesInstaller(DefaultInstaller):
    """Silva External Sources installer
    """

    def install_custom(self, root):
        installed_ids = root.objectIds()
        if 'service_codesources' not in installed_ids:
            factory = root.manage_addProduct['SilvaExternalSources']
            factory.manage_addCodeSourceService()
Example #5
0
# -*- coding: utf-8 -*-
# Copyright (c) 2002-2013 Infrae. All rights reserved.
# See also LICENSE.txt

from silva.core import conf as silvaconf
from Products.SilvaDocument import install

silvaconf.extension_name('SilvaDocument')
silvaconf.extension_title('Silva Obsolete Document')
silvaconf.extension_depends(["Silva", "SilvaExternalSources"])

# add some scheme to urlparse
import urllib.parse

SCHEME_HTTP_LIKE_CAPABILITIES = [
    'uses_relative',
    'uses_netloc',
    'uses_params',
    'uses_query',
    'uses_fragment',
]

EXTRA_SCHEMES = [
    ('itms', SCHEME_HTTP_LIKE_CAPABILITIES),
    ('webcal', SCHEME_HTTP_LIKE_CAPABILITIES),
    ('tel', SCHEME_HTTP_LIKE_CAPABILITIES),
]


def add_scheme(scheme, capabilities):
    for capability in capabilities:
Example #6
0
from Products.Silva.Root import Root
from silva.core import conf as silvaconf
from silva.core.interfaces import IExtensionInstaller
from zope.interface import implements

silvaconf.extension_name("smitheme.industrial")
silvaconf.extension_title("SMI Theme Industrial")
silvaconf.extension_depends(["Silva"])


SKIN = 'smitheme.industrial.skin.ISMIIndustrialSkin'


class Installer(object):
    implements(IExtensionInstaller)

    def install(self, root, extension):
        root._smi_skin = SKIN

    def uninstall(self, root, extension):
        root._smi_skin = Root._smi_skin

    def is_installed(self, root, extension):
        return root._smi_skin == SKIN


install = Installer()
# -*- coding: utf-8 -*-
# Copyright (c) 2002-2013 Infrae. All rights reserved.
# See also LICENSE.txt

from silva.core import conf as silvaconf
from Products.SilvaDocument import install

silvaconf.extension_name('SilvaDocument')
silvaconf.extension_title('Silva Obsolete Document')
silvaconf.extension_depends(["Silva", "SilvaExternalSources"])


# add some scheme to urlparse
import urlparse


SCHEME_HTTP_LIKE_CAPABILITIES = [
    'uses_relative',
    'uses_netloc',
    'uses_params',
    'uses_query',
    'uses_fragment',
]

EXTRA_SCHEMES = [
    ('itms',   SCHEME_HTTP_LIKE_CAPABILITIES),
    ('webcal', SCHEME_HTTP_LIKE_CAPABILITIES),
    ('tel', SCHEME_HTTP_LIKE_CAPABILITIES),
]

def add_scheme(scheme, capabilities):
Example #8
0
# -*- coding: utf-8 -*-
# Copyright (c) 2002-2013 Infrae. All rights reserved.
# See also LICENSE.txt

#### Hack of the day: don't f**k up your all DB if an interface is broken.

from OFS.Uninstalled import BrokenClass
BrokenClass.__iro__ = tuple()

#### End of hack of the day

# register this extension
from silva.core import conf as silvaconf
silvaconf.extension_name('Silva')
silvaconf.extension_title('Silva Core')
silvaconf.extension_depends([])

try:
    from Products.MaildropHost import MaildropHost
    MAILDROPHOST_AVAILABLE = True
except ImportError:
    MAILDROPHOST_AVAILABLE = False

MAILHOST_ID = 'service_mailhost'


Example #9
0
# -*- coding: utf-8 -*-
# Copyright (c) 2008-2013 Infrae. All rights reserved.
# See also LICENSE.txt

from AccessControl.Permissions import manage_users as ManageUsers
from silva.core import conf as silvaconf

import install

silvaconf.extension_name("silva.pas.openid")
silvaconf.extension_title("Silva OpenID Support")
silvaconf.extension_depends(["Silva", 'silva.pas.base'])


def initialize(context):
    from .plugins import oid
    context.registerClass(oid.OpenIdPlugin,
                          permission=ManageUsers,
                          constructors=
                          (oid.manage_addOpenIDPluginForm,
                           oid.manage_addOpenIDPlugin),
                          visibility=None,
                          icon="www/openid.png")
# Copyright (c) 2004-2010 Infrae. All rights reserved.
# See also LICENSE.txt
# $Id$

from zope.interface import Interface
from silva.core import conf as silvaconf
from silva.core.conf.installer import DefaultInstaller

silvaconf.extension_name('SilvaSoftwarePackage')
silvaconf.extension_title('Silva Software Package')
silvaconf.extension_depends('SilvaDocument')


class SilvaSoftwarePackageInstaller(DefaultInstaller):
    not_globally_addables = [
        'Silva Software Release', 'Silva Software Package',
        'Silva Software Group', 'Silva Software Remote Group',
        'Silva Software Activity Aggregator', 'Silva Software Activity'
    ]


class IExtension(Interface):
    pass


install = SilvaSoftwarePackageInstaller('SilvaSoftwarePackage', IExtension)

CLASS_CHANGES = {
    'Products.SilvaSoftwarePackage ISilvaSoftwarePackageExtension':
    'Products.SilvaSoftwarePackage IExtension',
    'Products.Silva3PSP.Silva3PExtensionPage Silva3PExtensionPage':
Example #11
0
# -*- coding: utf-8 -*-
# Copyright (c) 2004-2013 Infrae. All rights reserved.
# See also LICENSE.txt

from silva.app.news.installer import install

from silva.core import conf as silvaconf

silvaconf.extension_name("silva.app.news")
silvaconf.extension_title("Silva News Network")
silvaconf.extension_depends(["Silva", "silva.app.document", "SilvaExternalSources"])


def initialize(context):
    from silva.app.news import indexing
    context.registerClass(
        indexing.IntegerRangesIndex,
        permission = 'Add Pluggable Index',
        constructors = (indexing.manage_addIntegerRangesIndexForm,
                        indexing.manage_addIntegerRangesIndex),
        visibility=None)


# Copyright (c) 2004-2010 Infrae. All rights reserved.
# See also LICENSE.txt
# $Id$

from zope.interface import Interface
from silva.core import conf as silvaconf
from silva.core.conf.installer import DefaultInstaller

silvaconf.extension_name('SilvaSoftwarePackage')
silvaconf.extension_title('Silva Software Package')
silvaconf.extension_depends('SilvaDocument')


class SilvaSoftwarePackageInstaller(DefaultInstaller):
    not_globally_addables = ['Silva Software Release',
                             'Silva Software Package',
                             'Silva Software Group',
                             'Silva Software Remote Group',
                             'Silva Software Activity Aggregator',
                             'Silva Software Activity']


class IExtension(Interface):
    pass


install = SilvaSoftwarePackageInstaller(
    'SilvaSoftwarePackage', IExtension)


CLASS_CHANGES = {