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