Re: copy-and-paste von Objekten mit ReferenceFields

"Jens W. Klein" <[email protected]>
Newsgroups gmane.comp.web.zope.german
Organization Klein & Partner KEG, BlueDynamics Alliance
Message-ID <1233217460.7018.13.camel@minime>
Am Mittwoch, den 28.01.2009, 13:05 +0100 schrieb Stefan Palme:
> > PS: 'Cut&paste' sollte die Referencen erhalten (im
> > Unterschied zu *copy*/paste - und das ist Absicht).
> > Was passiert denn, wenn Du erst 'cut' und dann *2mal*
> > 'paste' machst?
> 
> Soweit ich weiß, kann man nach einem Cut nur EINMAL Paste
> machen. Aber selbst WENN das ginge, wäre es nicht ganz
> das was ich brauche, denn dann würden auch die Referenzen
> mit kopiert werden, die ich nicht haben will.
> 
> Ich will eigentlich nur, dass die Referenzen aus den
> ReferenceFields mitkommen.
> 
> Wahrscheinlich läuft das ganze darauf hinaus, dass ich mir
> eine eigene Implementierung eines ReferenceFields schreibe,
> welche nicht die AT-ReferenceEngine benutzt, sondern im
> einfachsten Fall nur die UID des Ziel-Objektes als String
> abspeichert oder so...

Also im Grunde genommen ist so ein Subscriber (wie Raphael meinte) auf
zope.lifecycleevent.interfaces.IObjectCopiedEvent genau das Richtige für
Dein Problem. Die Reference-API von Archetypes ist ganz fein
anzuprogrammieren. Im Subscriber holst Du dir die referenzierten Objekte
mit der passenden "relationship" raus und setzt die dann dann auf dem
Ziel. Etwa so:

>>> targets = original.getRefs("relationship_name")
>>> for target in targets:
...     newobj.addReferences(target, "relationship_name")

Ich hoffe das hilft bei der Lösung Deines ansich nicht so komplizierten
Problems ;) Find ich jedenfalls einfacher und sauberer als ein eigenes
Field zu bauen. Im Zope und Archetypes ist ja alles notwendige da.

lg Jens
-- 
Jens Klein
Software Architect
Managing Director, General Partner
+43 512 890077

BlueDynamics Alliance        WEB APPLICATIONS,  ZOPE,  PLONE, HOSTING
Klein & Partner KEG          production: concept, development, design
http://bluedynamics.com      consulting: analysis, coaching, training
http://zoplo.com             management: projects, process, community



_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.