Re: Objekt aus ReferenceField geordnet und Workflow gerecht anzeigen
Michael Graf <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Message-ID | <[email protected]> |
Es hat dann doch etwas länger gedauert, aber gestern Abend hatte ich dann endlich Zeit. So sieht es jetzt aus, und scheinbar funktioniert es auch
=========================
def getTester(self,relationship=None):
"""
"""
reference_catalog = getToolByName(self, 'portal_catalog')
mtool = getToolByName(self, 'portal_membership')
result = []
items = list(set(self.getRefs(relationship=relationship)))
items = sorted(items, cmp=lambda x,y: cmp(x.sortable_name(), y.sortable_name()))
for item in items:
if mtool.checkPermission('View', item) is None:
continue
result.append({
'title' : item.Title(),
'sortable_name' : item.sortable_name(),
'url' : item.absolute_url(),
'prefix': item.getPrefix(),
'image': item.getImage(),
})
return result
=========================
Gibt es eventuell einen performanteren, eleganteren,.... Weg
Noch etwas, sortable_name (KeywordIndex) ist ein angelegter Index von mir - bei jedem Neustart der Instanze ist der Index leer???
Erst nach einem "Clear and Rebuild" ist er wieder gefüllt - muss ich in meinem def sortable_name einen ReIndex einfügen? Drückt das nicht sehr auf die Performance?
Bei meinen 30 Personen isses zwar egal, aber bei ein paar hundert...
lg
michi
-----Ursprüngliche Nachricht-----
Von: [email protected] [mailto:[email protected]] Im Auftrag von Michael Graf
Gesendet: Mittwoch, 17. November 2010 11:50
An: 'Deutschsprachige Zope-Benutzer-Liste'
Betreff: [dzug-zope] Re: Objekt aus ReferenceField geordnet und Workflow gerecht anzeigen
Ja, danke - erhellt jedenfalls den Raum schon mal gewaltig und ich weiß jetzt in welche Richtung ich versuchen muss.
lg
michi
-----Ursprüngliche Nachricht-----
Von: [email protected] [mailto:[email protected]] Im Auftrag von Jens W. Klein
Gesendet: Mittwoch, 17. November 2010 11:31
An: Deutschsprachige Zope-Benutzer-Liste
Betreff: [dzug-zope] Re: Objekt aus ReferenceField geordnet und Workflow gerecht anzeigen
Hallo Michael,
Am Mittwoch, den 17.11.2010, 10:06 +0000 schrieb Michael Graf:
> Hallo Liste,
>
> ich habe seit gestern gröbere Probleme mit dem
> ReferenceField/ReferenceBrowserWidget!
>
> Gernerell hab ich so meine Probleme, weil ich die bis jetzt noch nie
> wirklich verstanden habe und deshalb auch gemieden habe, aber jetzt
> bieten sie sich geradezu an.
Achtung: ReferenceDas Field ist kein echtes vollwertiges Field, weil es kein wirklches Storage hat. Es interagiert lediglich mit der ReferenceEngine API!
> Und zwar baue ich gerade eine kleine Vereinsseite inklusive
> Mitgliederseite. Ich lege alle Personen einzeln als Inhaltstyp an. Die
> Übersichtsseite ebenfalls, in der Edit-Ansicht der Übersichtsseite hab
> ich 3 ReferenceFields angelegt, eins für den Vorstand
> (multiValued=False), eins für den Stellvertreter und eins für die
> Mitglieder…
>
> Wie kann ich auf die referenzierten Personen inklusive der eignen
> Felder (zB: Telefon, email,…) zugreifen, abhängig davon ob ich
> Berechtigt bin oder nicht und geordnet nach einem KeywordIndex (=
> nachname vorname).
Du kannst ganz normal den Accessor verwenden: context.getDeinfieldname() und bekommst dann das referenzierte Objekt zurück. Wenn Du keine Rechte hast fliegst Du damit auf die Nase, sobald Du aus restricted Code drauf zugreifst. Deswegen musst Du den Berechtigungscheck selber in Deinen View-Code einbauen.
Alternativ kannst Du aber auch die ReferenceEngine befragen und Dir eine Liste von UIDs zurückliefern lassen. Diese fütterst du in den portal_catalog und lässt Dir eine Menge brains zurückgeben. Da der portal_catalog im Plone so nett ist und einen Berechtigungscheck macht, bekommst Du da auch wirklich zurück, was Du anzeigen darfst. Und nebenbei ist das auch noch um ein vielfaches schneller so.
ReferenceFields haben kein Storage um eine Ordnung vorzugeben und die ReferenzEngine hat auch keine Order vorgesehen. Also hilft es hier nur selber zu sortieren. Mit der o.a. Methode der Catalogabfrage ist das auch kein Problem. Es gibts ein paar Addons, die ReferenceFields mit Order liefern. Ich habe aber keine Erfahrung wie gut das geht und wo dort die Einschränkungen sind.
Ich hoffe das bringt ein wenig Licht ins Dunkel
Jens
--
Jens W. Klein
Software Architect
Managing Director, General Partner
+43 512 890077
Klein & Partner KG WEB APPLICATIONS, ZOPE, PLONE, HOSTING
BlueDynamics Alliance 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
________________________________
Diese Nachricht erhalten Sie von einem IMC Mitarbeiter.
Allfallige angehängte Dokumente sind vertraulich und nur für den/die Adressaten bestimmt. Sollten Sie nicht der beabsichtigte Adressat sein, ist jede Offenlegung, Weiterleitung oder sonstige Verwendung dieser Information nicht gestattet. In diesem Fall bitten wir, den Absender zu verstandigen und die Information zu vernichten. Für Übermittlungsfehler oder sonstige Irrtumer bei Übermittlung besteht keine Haftung.
This message is being transmitted by an IMC employee.
Any attached files are confidential and intended solely for the addressee(s). Any publication, transmission or other use of the information by a person or entity other than the intended addressee is prohibited. If you receive this in error please contact the sender and delete the material. The sender does not accept liability for any errors or omissions as a result of the transmission.
Informationspflicht nach §14 UGB:
IMC Fachhochschule Krems GmbH
Piaristengasse 1, A-3500 Krems
Austria, Europe
ATU: 37552304
Firmenbuchnummer: 79297 p
Firmenbuchgericht: Landesgericht Krems an der Donau
DVR: 0798771
Fachgruppe Unternehmensberatung
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
________________________________
Diese Nachricht erhalten Sie von einem IMC Mitarbeiter.
Allfallige angehängte Dokumente sind vertraulich und nur für den/die Adressaten bestimmt. Sollten Sie nicht der beabsichtigte Adressat sein, ist jede Offenlegung, Weiterleitung oder sonstige Verwendung dieser Information nicht gestattet. In diesem Fall bitten wir, den Absender zu verstandigen und die Information zu vernichten. Für Übermittlungsfehler oder sonstige Irrtumer bei Übermittlung besteht keine Haftung.
This message is being transmitted by an IMC employee.
Any attached files are confidential and intended solely for the addressee(s). Any publication, transmission or other use of the information by a person or entity other than the intended addressee is prohibited. If you receive this in error please contact the sender and delete the material. The sender does not accept liability for any errors or omissions as a result of the transmission.
Informationspflicht nach §14 UGB:
IMC Fachhochschule Krems GmbH
Piaristengasse 1, A-3500 Krems
Austria, Europe
ATU: 37552304
Firmenbuchnummer: 79297 p
Firmenbuchgericht: Landesgericht Krems an der Donau
DVR: 0798771
Fachgruppe Unternehmensberatung
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope