Comment créer un widget forme qui fonctionne comme Plone MultiContentTreeFieldWidget mais conserve l'ordre des éléments

StackOverflow https://stackoverflow.com/questions/7807693

  •  26-10-2019
  •  | 
  •  

Question

J'ai un comportement de dextérité qui me permet de relier les éléments et stocker les relations que UUID

relatedItems = schema.List(
            title=u"Related Items",
            description=u"Search for content that is related to this item",
            required=False,
            value_type=schema.Choice(
                source=UUIDSourceBinder(navigation_tree_query={'portal_type':
                   TYPES_WITH_TEASERS})))
form.widget(relatedItems='plone.formwidget.contenttree.widget.MultiContentTreeFieldWidget')

Cela fonctionne très bien, sauf que si vous avez quelques relations alors chaque fois que vous modifiez l'élément de leurs modifications de commande. Nous affichons les articles connexes dans la colonne de droite de la page (par exemple le voir article sur la nourriture ) et que vous souhaitez contrôler l'ordre afin que nous puissions mettre teasers les plus intéressants d'abord.

Débogage il semble probable que ce réordonnancement est en baisse à la z3c.formwidget.query.widget.QuerySourceRadioWidget.update de fait utilise un ensemble lors du traitement des paramètres de demande. On peut supposer que cela est d'éviter les doublons, mais a deux effets secondaires désagréables:

  1. la valeur d'un champ est mis à jour quand il n'a pas changé
  2. ordre est perdu quand il pourrait être important

Y at-il une alternative à MultiContentTreeFieldWidget qui fonctionne d'une manière similaire, mais conserve l'ordre que vous ajoutez des éléments? Mieux encore est-il un widget qui fait cela, et vous permet aussi aux articles Réorganiser ainsi?

Était-ce utile?

La solution

Je ne trouve pas une alternative, mais par la suite a z3c.formwidget.query été mis à jour pour utiliser une liste au lieu d'un ensemble lors du traitement des paramètres de demande. Version 0.7 corrige ce

http://pypi.python.org/pypi/z3c.formwidget. requête / 0,7

Ajoutez ce qui suit à votre section [versions] à buildout à résoudre

z3c.formwidget.query = 0.7
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top