Skip to main content

Settings configuration for Kotti

Project description

Add a settings configuration to your Kotti site.

Find out more about Kotti

Setup

To activate the kotti_settings add-on in your Kotti site, you need to add an entry to the kotti.configurators setting in your Paste Deploy config. If you don’t have a kotti.configurators option, add one. The line in your [app:main] (or [app:kotti], depending on how you setup Fanstatic) section could then look like this:

kotti.configurators = kotti_settings.kotti_configure

The add-on adds a new configuration page to save settings for your module or accross different modules. It adds a new submenupoint named “Settings” to the menupoint “Site Setup”. Every setting collection is presented in one tab. It is intended to use one tab for a module, but it is also possible to use multiple tabs if you have the need for a more extended structure.

You can choose between two modes to set up your settings. With the “dict mode” you have a very easy and straightforward option to set up the settings. If you need more advanced forms you can set up an own schema.

A setting tab is set up with with a dictionary. Here you define a name and a title for your tab, what are required. Optional arguments are success_message, either settings or schema, schema_factory and use_csrf_token.

Define your settings in a dictionary::

    from kotti_settings.util import add_settings

    TestSettings = {
    'name': 'test_settings',
    'title': "Testsettings",
    'description': "Some description for my settings",
    'success_message': u"Successfully saved test settings.",
    'settings': [
        {'type': 'String',
         'name': 'testsetting_1',
         'title': 'Test 1',
         'description': 'a test setting',
         'default': '', },
        {'type': 'Integer',
         'name': 'testsetting_2',
         'title': 'Test 2',
         'description': 'again a test setting',
         'default': 23, }]}
add_settings(TestSettings)

Define your settings with a schema::

    from kotti_settings.util import add_settings

class StringSchemaNode(colander.SchemaNode):
    name = 'a_string'
    title = 'hello'
    default = 'hello world'

class RangedIntSchemaNode(colander.SchemaNode):
    name = 'range_int'
    validator = colander.Range(0, 10)
    default = 5
    title = 'Ranged Int'

class TestSchema(colander.MappingSchema):
    string = StringSchemaNode(colander.String())
    ranged_int = RangedIntSchemaNode(colander.Int())

TestSettings = {
    'name': 'test_settings',
    'title': "Testsettings",
    'description': "Some description for my settings",
    'success_message': u"Successfully saved test settings.",
    'schema_factory': TestSchema
}
add_settings(TestSettings)

To get your setting back into your code you use the following::

from kotti_settings.util import get_setting
first_test_setting = get_setting('test_setting_1')

The state of this software is alpha, so it should only be used in development environments. Comments, thoughts and patches are highly welcome.

Changelog

0.1a2(2013-03-11)

  • Added util method get_setting as default way to get a setting.

0.1a1(2013-03-06)

  • Initial release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kotti_settings-0.1a2.zip (40.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page