Come creare un widget del form Plone che opere come MultiContentTreeFieldWidget ma conserva l'ordine degli elementi

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

  •  26-10-2019
  •  | 
  •  

Domanda

Ho un comportamento destrezza che mi permette di mettere in relazione gli elementi e memorizzare le relazioni come 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')

Questa grande opera, tranne che se si dispone di un paio di relazioni, allora ogni volta che si modifica la voce i loro cambiamenti di ordine. Stiamo mostrando gli elementi correlati nella colonna di destra della pagina (ad esempio, vedere questo articolo sul cibo ) e si desidera controllare l'ordine in modo che possiamo mettere occhiolini più interessanti prima.

Debug sembra probabile che questo riordino è giù per il fatto z3c.formwidget.query.widget.QuerySourceRadioWidget.update utilizza un set durante l'elaborazione di parametri di richiesta. Presumibilmente questo è quello di evitare i duplicati, ma ha due effetti collaterali brutto:

  1. valore di un campo viene aggiornato quando non è cambiata
  2. ordine persa quando potrebbe essere importante

Esiste un'alternativa a MultiContentTreeFieldWidget che funziona in modo simile, ma conserva l'ordine si aggiungono elementi? Ancora meglio c'è un widget che fa questo e vi permette di elementi di riordino così?

anche
È stato utile?

Soluzione

Non ho trovato un'alternativa, ma successivamente z3c.formwidget.query è stato aggiornato per utilizzare un elenco invece di un set durante l'elaborazione di parametri di richiesta. La versione 0.7 corregge questo

http://pypi.python.org/pypi/z3c.formwidget. interrogazione / 0,7

Aggiungere il seguente ai vostri [versioni] sezione buildout per risolvere

z3c.formwidget.query = 0.7
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top