[Plone-IT] personalizzazioni in archetypes

Simone Orsi simahawk a gmail.com
Mer 19 Ott 2011 13:14:20 UTC


On 10/19/2011 12:48 PM, Paolo Tramontani wrote:
>
> Ciao
>
> Ho un content type personalizzato creato da me
>
> Ho due cose da risolvere:
>
> 1. vorrei che, dalla maschera di edit del contenuto (sia in 
> inserimento che in modifica), dopo l'ok si ridirigesse sulla cartella 
> contenitore e non nella view dell'oggetto stesso
> es: sono in cartella documenti; clicco aggiungi nuovo documento; entro 
> in maschera di creazione, compilo i campi, clicco ok; vorrei tornare 
> nella cartella documenti.
> siccome poi in cartella documenti ho una view che mostra la lista dei 
> documenti e il bottone edit per ciascuno di essi, vorrei che dopo 
> essere entrato in edit si tornasse di nuovo qui.
> Ho risolto blandamente creando una browser view di default per il 
> content type che esegue un redirect sul parent... ma così facendo 
> perdo la possibilità di andare in visualizzazione. Quindi non va beneo
>

per gli AT puoi tranquillamente copiare base_edit.cpt e 
base_edit.cpt.metadata e rinominarli col nome del tuo AT.

Se il portal_type è MyObject puoi mettere nelle skins myobject_edit.cpt 
e myobject.cpt.metadata, e il gioco è fatto ;)

Questo vale per qualsiasi AT ovviamente.

>
> 2. ho un campo che dovrebbe essere editabile in creazione, ma poi non 
> più modificabile (tipo un id). C'è qualche attributo archetype 
> specifico oppure c'è modo di distinguere quando sono in "new" e quando 
> in "edit"?
>

dovresti poterlo controllare tramite il metodo "checkCreationFlag()".

Questo è quello che avviene in Products/Archetypes/BaseObject.py:

     security.declareProtected(permissions.ModifyPortalContent, 
'processForm')
     def processForm(self, data=1, metadata=0, REQUEST=None, values=None):
         """Processes the schema looking for data in the form.
         """
         is_new_object = self.checkCreationFlag()
         self._processForm(data=data, metadata=metadata,
                           REQUEST=REQUEST, values=values)
         self.unmarkCreationFlag()
         if self._at_rename_after_creation and is_new_object:
             self._renameAfterCreation(check_auto_id=True)

         # Post create/edit hooks
         if is_new_object:
             event.notify(ObjectInitializedEvent(self))
             self.at_post_create_script()
         else:
             event.notify(ObjectEditedEvent(self))
             self.at_post_edit_script()


> Grazie in anticipo
>
> _______________________________________
>
> Ing. Paolo Tramontani - Softone s.r.l.
>
> email: ptramontani a racine.ra.it <mailto:ptramontani a racine.ra.it>
>
> ptramontani a softone.it <mailto:ptramontani a softone.it>
>
> phone: +39 338 9253741
>
> _______________________________________
>
>
>
> _______________________________________________
> Plone-IT mailing list
> Plone-IT a lists.plone.org
> https://lists.plone.org/mailman/listinfo/plone-plone-it
> http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20111019/1437dcb3/attachment.html>


Maggiori informazioni sulla lista Plone-IT