Hi mitch!
Ich habe mich da mal ein wenig gespielt:
http://gelb.bcom.at/trac/misc/browser/A ... ins/ATTest
Es geht wahrscheinlich auch einfacher, aber die einfache Lösung fällt mir im Moment nicht ein. Probier es einfach mal aus...
lg
Gerold
template vorlage für "dokument"
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
hi gerold,
danke für das Script.
Ich habe auch mal eine Lösung erschaffen, die ist etwas unsauber aber na ja schau selbst.
Der untere Teil ist zu beachten, da spielt sich im Prinzip alles ab.
Es ist halt ohne script gelöst. Ich werde deine Lösung allerdings mal probieren, weil die etwas eleganter aussieht!
danke für das Script.
Ich habe auch mal eine Lösung erschaffen, die ist etwas unsauber aber na ja schau selbst.
Der untere Teil ist zu beachten, da spielt sich im Prinzip alles ab.
Es ist halt ohne script gelöst. Ich werde deine Lösung allerdings mal probieren, weil die etwas eleganter aussieht!
Code: Alles auswählen
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en"
metal:use-macro="here/main_template/macros/master"
i18n:domain="plone">
<metal:block fill-slot="top_slot"
tal:define="dummy python:request.set('disable_border',1)" />
<body>
<div metal:fill-slot="main"
tal:define="is_manager python: checkPermission('Manage portal', here);
results python:mtool.searchForMembers(request);
projectName python:request.get('projektbeteiligungen');
Batch python:modules['Products.CMFPlone'].Batch;
DateTime python:modules['DateTime'].DateTime;
b_size python:12;b_start python:0;b_start request/b_start | b_start;">
<h1 i18n:translate="heading_search_results">Search results</h1>
<!--<div tal:content="request"></div>
<div tal:content="projectName"></div>-->
<div tal:condition="python: 'Kein Projekt' in projectName">
<div tal:condition="results"
tal:define="batch python:Batch(results, b_size, int(b_start), orphan=1)">
<strong i18n:translate="batch_x_items_matching_your_criteria">
<span i18n:name="number" tal:omit-tag="" tal:content="python:len(results)">234</span> items matching your criteria.
</strong>
<!-- Navigation -->
<div metal:use-macro="here/batch_macros/macros/navigation" />
<div>
<metal:block tal:repeat="result batch">
<div class="card" tal:define="name result/getUserName;
home python:container.portal_membership.getHomeUrl(name, verifyPermission=1);
portrait python: here.portal_membership.getPersonalPortrait(name);
settings string:prefs_user_details?userid=;
settings python:settings + name">
<a href="#" tal:attributes="href home">
<img src="defaultUser.gif"
alt=""
border="0"
width="75"
height="100"
tal:attributes="src portrait/absolute_url" />
<br />
<span tal:content="name">user id</span>
</a>
<br />
<a href="#" tal:attributes="href settings">
<span>Persönliche Einstellungen</span>
</a>
<br />
</div>
</metal:block>
</div>
<!-- Navigation -->
<div class="visualClear"><!-- --></div>
<div metal:use-macro="here/batch_macros/macros/navigation" />
<div class="visualClear"><!-- --></div>
</div>
<div tal:condition="not: results">
<p><strong i18n:translate="description_no_results_found">No results were found.</strong></p>
</div>
</div>
<div tal:define="projects python:context.get_member(project= projectName);
project projects;">
<tal:block tal:repeat="project projects">
<tal:block tal:define="project_object project/getObject;
name1 project_object/getMember1;
name2 project_object/getMember2;
name3 project_object/getMember3;
name4 project_object/getMember4;
name5 project_object/getMember5;">
<!--<h1 tal:content="test3"></h1>-->
<tal:block tal:repeat="name python: name1,name2,name3,name4,name5">
<tal:block tal:condition="python: '' is not name">
<div class="card" tal:define="home python:container.portal_membership.getHomeUrl(name, verifyPermission=1);
portrait python: here.portal_membership.getPersonalPortrait(name);
settings string:prefs_user_details?userid=;
settings python:settings + name;">
<a href="#" tal:attributes="href home">
<img src="defaultUser.gif"
alt=""
border="0"
width="75"
height="100"
tal:attributes="src portrait/absolute_url" />
<br />
<span tal:content="name">user id</span>
</a>
<br />
<a href="#" tal:attributes="href settings">
<span>Persönliche Einstellungen</span>
</a>
<br />
</div>
</tal:block>
</tal:block>
</tal:block>
</tal:block>
</div>
</div>
</body>
</html>
Hi,
kannst du mir erklären, was hier:
bei der Zeile project_brains = catalog... passiert ? Was muss ich da für werte eintragen bei "Member5" ?
mfg mitch
kannst du mir erklären, was hier:
Code: Alles auswählen
searchparams = searchparams or context.REQUEST
mtool = context.portal_membership
catalog = context.portal_catalog
# Suche nach Member
found_members = mtool.searchForMembers(searchparams)
if found_members:
projectmembership = searchparams.get("projektbeteiligungen", None)
if projectmembership == "Kein Projekt":
return found_members
else:
membernames = [ member.getUserName() for member in found_members ]
ret_list = []
project_brains = catalog({"Type": "Projekte", "path": "neuesprojekt.2006-10-30.2749270932"})
for project_brain in project_brains:
project = project_brain.getObject()
projectmembers = [
item for item in (
project.getMember1(), project.getMember2(), project.getMember3(),project.getMember4(),project.getMember5()
) if item
]
for index, membername in enumerate(membernames):
if membername in projectmembers:
ret_list.append(found_members[index])
return ret_list
else:
return []
mfg mitch
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi mitch!mitch hat geschrieben:kannst du mir erklären, was hier: bei der Zeile project_brains = catalog... passiert?
Das ist ein Überbleibsel. Vorher hatte ich nach "Titel" gesucht. Jetzt, da ich den "Pfad" verwende, ist die Suche komplett für die Katz.
Ich werde das mal im SVN-Repository ändern und mich dann noch mal hier melden.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo mitch!
Ich habe das Beispiel ausgebessert.
http://gps.gp:8580/TESTORDNER/archetype ... earch_form
lg
Gerold
Ich habe das Beispiel ausgebessert.
http://gps.gp:8580/TESTORDNER/archetype ... earch_form
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hi gerold,
also ich versuch mal durch deine Methode durch zusteigen.
Wenn ich angeben bei der Suche "Kein Projekt" funktioniert die Suche einwandfrei. Sobald ich aber ein Projekt suche z.B. "neues Projekt" dann steht da ... Fehlerwert --> "neues Projekt"
Kannst du mir da weiter Helfen und mich ein bisschen über die Methode aufklären?! Was hab ich daran falsch gedeutet ?
mfg mitch
also ich versuch mal durch deine Methode durch zusteigen.
Code: Alles auswählen
'--> also hier werden die request Werte in searchparams geschrieben, danach einige Pfade in Variablen gespeichert'
searchparams = searchparams or context.REQUEST
mtool = context.portal_membership
catalog = context.portal_catalog
# Suche nach Member
'--> es wird nach Membern gesucht.. :P '
found_members = mtool.searchForMembers(searchparams)
if found_members:
'--> hier schreibe ich den Wert aus dem Request von projektbeteiligungen in die Variable'
projectmembership = searchparams.get("projektbeteiligungen", None)
# Info:
# ``projectmembership``: Pfad zum Projekt; aus dem Katalog entnommen und vom "Brain"
# per ``getPath()`` heraus geholt.
# Siehe: http://gelb.bcom.at/trac/misc/browser/ATTest/trunk/skins/ATTest/extended_member_search_form.pt?rev=47#L67
if projectmembership == 'Kein Projekt':
'--> fals in projectmembership "kein Projekt" steht, wird nach membern gesucht'
return found_members
else:
'--> wenn nicht, dann soll ja nur nach den Mitgliedern von dem Projekt gesucht werden'
'--> wenn z.B. nur ein Projekt ausgewählt wurde, dann werden ja alle Mitglieder gefunden und diese werden mit dem username in das Array membernames geschrieben '
membernames = [ member.getUserName() for member in found_members ]
'--> Array ret_list wird erzeugt'
ret_list = []
'--> hier steh ich ein bisschen auf dem schlauch, wird hier der Pfad zu dem Projekt gespeichert ? '
project = context.restrictedTraverse(projectmembership)
'--> nun sollen von dem Object die einzelnen Mitglieder in projectmembers gespeichert werden aber was soll if item bedeuten ?'
projectmembers = [
item for item in (
project.getMember1(), project.getMember2(), project.getMember3(), project.getMember4(), project.getMember5()
) if item
]
'--> was ist enumerate?'
'--> wird hier das ergebniss der normalen member suche und der member des gesuchten projektes verglichen ?'
'--> wenn eine übereinstimmung statt gefunden hat, wird der index des members in ret_list gespeichert ?!'
'--> was soll der index da sein ?'
for index, membername in enumerate(membernames):
if membername in projectmembers:
ret_list.append(found_members[index])
return ret_list
else:
return []
Kannst du mir da weiter Helfen und mich ein bisschen über die Methode aufklären?! Was hab ich daran falsch gedeutet ?
mfg mitch
Zuletzt geändert von mitch am Montag 6. November 2006, 12:22, insgesamt 1-mal geändert.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
...ich Trottelgerold hat geschrieben:http://gps.gp:8580/TESTORDNER/archetype ... earch_form
Das ist der falsche URL.
Hier ist der URL zum richtigen Projekt: http://gelb.bcom.at/trac/misc/browser/A ... ins/ATTest
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Kein Problem... das hab ich gemerkt aber ich hab ja die Seite noch gehabt und mir da die Aktuelle Methode geholt.
Wie du sehen kannst hab ich ja eine Post über dir die Methode mal versucht auseinander zu nehmen und zu durchleuchten.
Kannst du mir sagen wo ich richtig lag oder wo ich falsch gedacht habe ?
Weils ja wie gesagt bei mir noch nicht funktioniert! Normal halt..
mfg mitch
Wie du sehen kannst hab ich ja eine Post über dir die Methode mal versucht auseinander zu nehmen und zu durchleuchten.
Kannst du mir sagen wo ich richtig lag oder wo ich falsch gedacht habe ?
Weils ja wie gesagt bei mir noch nicht funktioniert! Normal halt..
mfg mitch
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!
Dieser Thread verträgt keine zusätzlichen Beiträge mit Code mehr.
Deshalb setze ich diesen Thread hier fort:
http://www.python-forum.de/post-48312.html#48312
lg
Gerold
Dieser Thread verträgt keine zusätzlichen Beiträge mit Code mehr.
Deshalb setze ich diesen Thread hier fort:
http://www.python-forum.de/post-48312.html#48312
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.