[Plone-IT] Archetypes: modificare il valore di default del campo "id"

Riccardo Lemmi riccardo a reflab.it
Mer 22 Ago 2007 07:31:52 UTC


On Wednesday 22 August 2007 08:54, Massimiliano De Ruosi wrote:
> Anzitutto un saluto alla lista! ( ...che spero sia quella giusta: ero
> indeciso con ZIZope)

Per questioni specifiche Plone è meglio questa, ma comunque nessuno ti 
blandirà se la mandi a Zope-it, fino a poco tempo fa era l'unica disponibile.

> Il mio problema: vorrei che quando viene creata un istanza di un nuovo
> portal_type (in un prodotto creato con Archetypes), il campo "id" proponga
> all'utente un valore calcolato da un metodo python.
>
> Riesco ad ottenere facilmente questo risultato con gli altri campi usando
> l'attributo "default_method" nello schema di Archetypes, ma per "id" il
> discorso è diverso: viene usato da portal_factory durante la creazione
> dell'oggetto, e probabilmente per questo "default_method" non mi funziona.
>
> Non solo: siccome ho descritto il campo "id" come "IntegerField", il valore
> proposto da portal_factory (ad es. "MioTipo.2007-08-21.4275085065") non può
> essere accettato dal "validator" del campo
>
> Qualche idea (fosse anche un link alla documentazione giusta...)?
>
> Ringrazio anticipatamente,
> Massimiliano

Non si deve cambiare il tipo di 'id', Zope lo usa per i suoi scopi ed è per 
convenzione una stringa.
Per quanto riguarda la generazione posso consigliarti due cose:
- cambia lo script che genera l'id, in createObject si trova la linea:

  if id is None:
      id=context.generateUniqueId(type_name)

intercetta il tipo del contenuto e genera l'id secondo le tue specifiche.

- invece di cambiare il comportamento di 'id' usa un nuovo attributo e lavora 
con quello, è più semplice ed evita side-effect sull'infrastruttura 
sottostante.

-- 
Riccardo Lemmi                           Email:   riccardo a reflab.it
Reflab S.r.l. - Plone Design, Development and Consulting
Phone: +39 349 4620820                         http://www.reflab.it
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  191 bytes
Descrizione: non disponibile
URL:         <http://lists.plone.org/pipermail/plone-plone-it/attachments/20070822/728f1409/attachment.asc>


Maggiori informazioni sulla lista Plone-IT