Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs Felder sortieren mit archetypes.schemaextender

Felder sortieren mit archetypes.schemaextender

Ein kurze Anleitung, wie man mit dem archetypes.schemaextender Felder innerhalb eines schematas sortieren kann.

Möchte man die Felder nicht nur hinzufügen, sondern auch gleich das schema sortieren, dann bietet sich die Verwendung des IOrderableSchemaExtender statt des ISchemaExtender Interfaces an.

 

class MyExtender(object):
component.adapts(IATContentType)
interface.implements(IOrderableSchemaExtender)

fields = [
PortalsField("available_portals",
schemata="settings",
widget = InAndOutWidget(
label=u"Available portals",
description=u"Select one or more portals where this item will be available."
),
),]

def __init__(self, context):
self.context = context

def getFields(self):
return self.fields

def getOrder(self, order):
# get the settings schema
settings = order['settings']

# move available_portals on top
settings.remove('available_portals')
settings.insert(0, 'available_portals')

return order

Hier wird mit Hilfe der Methode getOrdner die neue Reihenfolge bestimmt. Mit order['settings'] wählen wir uns einen Tab (schemata) aus. In diesem können wir jetzt, mit remove/insert ein beliebiges Feld löschen und es an einer anderen Stelle wieder einfügen.

Es ist übrigens auch möglich einen ganzen Tab (schemata) zu verschieben.