[Plone-conosur] Crear contenido desde un script

Emanuel Sartor emanuel en menttes.com
Mie Ago 22 00:20:07 UTC 2007


Santiago:

Me alegro que haya funcionado. :D

Se entiende lo que estás haciendo. Poi (http://plone.org/products/poi) hace 
algo similar, tiene un tipo contenedor, el issue tracker, el cual contiene 
issues. Cada issue obtiene un número como id, el primer issue se crea con id 
1, el segundo con id 2, y así sucesivamente... Tal vez le puedas echar un 
vistazo para ver cómo lo implementa y lo comparás con lo que tenés.

Saludos,
Emanuel

On Tuesday 21 August 2007 20:12:49 Santiago Videla wrote:
> gracias totales
>
> parece que con eso va para adelante
>
> Lo que estoy haciendo es simular un id auto incrementable. Quizas hay
> mejores formas de hacerlo.
>
> tengo 2 clases, una es el contenedor de la otra. En el contenedor tengo un
> campo next_id que se incrementa desde el at_post_create_script de la clase
> que contiene. y esta ultima tiene un campo, id con el atributo
> default_method = getNextID() que retorna el getNext_id() del contenedor.
>
> se entendio algo?
>
> gracias nuevamente
>
> On 8/21/07, Emanuel Sartor <emanuel en menttes.com> wrote:
> > On Tuesday 21 August 2007 18:51:34 Santiago Videla wrote:
> > > Hola emanuel,
> > > gracias por responder
> > >
> > > el problema es que cuando se editan por primera vez las instancias
> >
> > creadas
> >
> > > de la forma
> > >
> > > context.invokeFactory(tipo,**atd)
> > > obj = getattr(context, 'id del objeto creado en la linea anterior')
> > > obj.at_post_create_script()
> > >
> > > Se vuelve a ejecutar el at_post_create_script(), y necesito que se
> >
> > ejcute
> >
> > > una sola vez por cada instancia.
> >
> > Santiago:
> >
> > Entiendo el problema.  Te tiro un dato que te puede ayudar, aunque no
> > estoy
> > seguro: los objetos AT tienen un flag para indicar si fueron creador
> > completamente o no, supongo que lo que está pasando es que invokeFactory
> > no
> > está poniendo ese flag en True y por eso el método at_post_create_script
> > se
> > corre cuando lo editás y no antes.
> >
> > Podés ver un poco de código en
> >
> > http://dev.plone.org/archetypes/browser/Archetypes/tags/Archetypes-1.4.4-
> >final/BaseObject.py#L673
> >
> > Por lo que yo probaría:
> >
> > context.invokeFactory(tipo,**atd)
> > obj = getattr(context, 'id del objeto creado en la linea anterior')
> > obj.at_post_create_script()
> > obj.unmarkCreationFlag()
> >
> > Saludos,
> > Emanuel
> >
> >
> > _______________________________________________
> > Plone-ConoSur mailing list
> > Plone-ConoSur en lists.plone.org
> > http://lists.plone.org/mailman/listinfo/plone-conosur






Más información sobre la lista de distribución Plone-ConoSur