Skip to content
This repository has been archived by the owner on Apr 9, 2023. It is now read-only.

Commit

Permalink
Add app_tiles support
Browse files Browse the repository at this point in the history
svn path=/sandbox/plone.app.deco/branches/10910-fixregistry/; revision=39036
  • Loading branch information
Roel Bruggink committed Aug 26, 2010
1 parent 61f8354 commit 3fac659
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 41 deletions.
38 changes: 19 additions & 19 deletions plone/app/deco/interfaces.py
Expand Up @@ -43,34 +43,34 @@ class IDecoSettings(form.Schema):
# value_type=schema.TextLine(),
# required=False)

formats = schema.List(
title=_(u"Styles"),
description=_(u"Enter a list of formats. Format is name|category|label|action|icon|favorite, one format per line."),
value_type=schema.TextLine(),
required=False)
# formats = schema.List(
# title=_(u"Styles"),
# description=_(u"Enter a list of formats. Format is name|category|label|action|icon|favorite, one format per line."),
# value_type=schema.TextLine(),
# required=False)

form.fieldset('tiles',
label=_(u"Tiles"),
fields=['tile_categories', 'structure_tiles', 'app_tiles'],
)
# form.fieldset('tiles',
# label=_(u"Tiles"),
# fields=['tile_categories', 'structure_tiles', 'app_tiles'],
# )

# tile_categories = schema.List(
# title=_(u"Tile categories"),
# description=_(u"Enter a list of tile categories. Format is name|title, one format per line."),
# value_type=schema.TextLine(),
# required=False)

structure_tiles = schema.List(
title=_(u"Structure tiles"),
description=_(u"Enter a list of structure tiles. Format is name|category|label|type|default_value|read_only|settings|favorite|rich_text|available_actions, one format per line."),
value_type=schema.TextLine(),
required=False)
# structure_tiles = schema.List(
# title=_(u"Structure tiles"),
# description=_(u"Enter a list of structure tiles. Format is name|category|label|type|default_value|read_only|settings|favorite|rich_text|available_actions, one format per line."),
# value_type=schema.TextLine(),
# required=False)

app_tiles = schema.List(
title=_(u"Application tiles"),
description=_(u"Enter a list of application tiles. Format is name|category|label|read_only|settings|favorite|rich_text|available_actions, one format per line."),
value_type=schema.TextLine(),
required=False)
# app_tiles = schema.List(
# title=_(u"Application tiles"),
# description=_(u"Enter a list of application tiles. Format is name|category|label|read_only|settings|favorite|rich_text|available_actions, one format per line."),
# value_type=schema.TextLine(),
# required=False)


class IDecoRegistryAdapter(Interface):
Expand Down
60 changes: 55 additions & 5 deletions plone/app/deco/profiles/default/registry.xml
Expand Up @@ -354,10 +354,60 @@
</value>
</record>

<record interface="plone.app.deco.interfaces.IDecoSettings" field="app_tiles">
<value>
<element>plone.app.standardtiles.title|fields|Title|false|false|false|true|tile-align-block|tile-align-right|tile-align-left</element>
<element>plone.app.standardtiles.description|fields|Description|false|false|false|true|tile-align-block|tile-align-right|tile-align-left</element>
</value>
<record name="plone.app.deco.app_tiles.plone_app_standardtiles_title">
<field type="plone.registry.field.Dict">
<title>plone.app.standardtiles.title</title>
<key_type type="plone.registry.field.TextLine" />
<value_type type="plone.registry.field.TextLine" />
</field>
<value>
<element key="read_only">False</element>
<element key="category">fields</element>
<element key="name">plone.app.standardtiles.title</element>
<element key="settings">False</element>
<element key="favorite">False</element>
<element key="label">Title</element>
<element key="rich_text">True</element>
</value>
</record>
<record name="plone.app.deco.app_tiles.plone_app_standardtiles_title.available_actions">
<field type="plone.registry.field.List">
<title>Available actions for the Text structure tile</title>
<value_type type="plone.registry.field.TextLine" />
</field>
<value>
<element>tile-align-block</element>
<element>tile-align-right</element>
<element>tile-align-left</element>
</value>
</record>
<record name="plone.app.deco.app_tiles.plone_app_standardtiles_description">
<field type="plone.registry.field.Dict">
<title>plone.app.standardtiles.description</title>
<key_type type="plone.registry.field.TextLine" />
<value_type type="plone.registry.field.TextLine" />
</field>
<value>
<element key="read_only">False</element>
<element key="category">fields</element>
<element key="name">plone.app.standardtiles.description</element>
<element key="settings">False</element>
<element key="favorite">False</element>
<element key="label">Description</element>
<element key="rich_text">True</element>
</value>
</record>
<record name="plone.app.deco.app_tiles.plone_app_standardtiles_description.available_actions">
<field type="plone.registry.field.List">
<title>Available actions for the Text structure tile</title>
<value_type type="plone.registry.field.TextLine" />
</field>
<value>
<element>tile-align-block</element>
<element>tile-align-right</element>
<element>tile-align-left</element>
</value>
</record>


</registry>
25 changes: 8 additions & 17 deletions plone/app/deco/registry.py
Expand Up @@ -150,28 +150,19 @@ def mapStructureTiles(self, settings, config):
# Structure Tiles
tiles = settings.get('%s.structure_tiles' % self.prefix, [])
for key, tile in tiles.items():
if not 'category' in tile:
continue
index = GetCategoryIndex(config['tiles'], tile['category'])
config['tiles'][index]['tiles'].append(tile)
return config

def mapApplicationTiles(self, settings, config):
return config
# Application Tiles
app_tiles = settings.get('app_tiles', [])
if app_tiles:
for app_tile in app_tiles:
tile_fields = app_tile.split('|')
config['tiles'][GetCategoryIndex(config['tiles'], tile_fields[1])]['tiles'].append({
'name': tile_fields[0],
'label': tile_fields[2],
'type': 'app',
'default_value': '',
'read_only': GetBool(tile_fields[3]),
'settings': GetBool(tile_fields[4]),
'favorite': GetBool(tile_fields[5]),
'rich_text': GetBool(tile_fields[6]),
'available_actions': tile_fields[7:-1],
})
tiles = settings.get('%s.app_tiles' % self.prefix, [])
for key, tile in tiles.items():
if not 'category' in tile:
continue
index = GetCategoryIndex(config['tiles'], tile['category'])
config['tiles'][index]['tiles'].append(tile)
return config

def mapFieldTiles(self, settings, config):
Expand Down

0 comments on commit 3fac659

Please sign in to comment.