Hallo
ich hoffe ich falle nich in Ungnade, dass ich nen alten Thread wieder hochhole, es passt halt immer noch hier dazu ...
Inzwischen sehe ich einiges klarer, Archtypes sind (hoffentlich) verstanden auch der Schema.Extender ist mir nicht
mehr so fremd. Doch es bleiben Unklarheiten und ich hoffe, dass Ihr mir noch ein bisschen weiterhelfen könnt ...
Bei mir ging es um das Abändern des "Description" Feldes in einem Edit-Formular, anstatt dessen wollte ich gern ein Pulldown
Menü mit vorgegebenen Einträgen einfügen.
http://www.plone-entwicklerhandbuch.de/plone-entwickl…archetypes.html
Ich habe das ganze nun im Schema.Extender mit einem LinesField gelöst. Zusammen mit dem MultiSelectionWidget bekomme
ich das gewünschte Ergebnis. Zumindest das Feld erscheint. Mit "vokabulary" kann ich dann die Einträge definieren,
welche in dem Menu erscheinen sollen.
from Products.Archetypes.public import LinesField
from archetypes.schemaextender.field import ExtensionField
from zope.component import adapts
from zope.interface import implements
from archetypes.schemaextender.interfaces import ISchemaExtender
from Products.Archetypes.public import MultiSelectionWidget
from Products.ATContentTypes.interface import IATDocument
from zope import schema
from zope.schema.vocabulary import SimpleVocabulary
eintraege = ("Eintrag1", "Eintrag2", "Eintrag3")
class MultiSelectionField(ExtensionField, LinesField):
"""Testfeld"""
class PageExtender(object):
adapts(IATDocument)
implements(ISchemaExtender)
fields = [
MultiSelectionField('DropDownMenu',
widget = MultiSelectionWidget(
vocabulary=SimpleVocabulary(eintraege)), default='Eintrag1'),
]
def __init__(self, context):
self.context = context
def getFields(self):
return self.fields
Alles anzeigen
Auch gibts da ne wunderbare Doku dazu, leider funktioniert das bei mir alles gar nicht, d.h. Es
sind in dem Menu keine Einträge sichtbar. Ich möchte aber kein dictonary, sondern ne einfache Liste reicht aus.
http://collective-docs.readthedocs.org/en/latest/forms/vocabularies.html
Weiter kann ich mit dem Schema.Extender zwar Felder erzeugen, aber irgendwie immer nur zusätzlich anhängen. Es muss ja dann
doch irgend n Script geben, in welcher die Infos für das Zusammenstellen des Formulars sind. Ich wäre zwar schon mal froh, wenn es zusätzlich funktioniert,
aber schlussendlich will ich ja das Description Feld ersetzen.
Danke für eure Hilfe
Müllerchen