Einbinden eines Bestätigungfeldes (onClick) in grok.action
Verfasst: Dienstag 28. Juli 2009, 12:51
Moin, moin liebe Forumsteilnehmer und Experten von der Küste,
ich habe hier einen Sachverhalt, der mir schon seit einiger Zeit das Gehirn schmelzen lässt. Bevor ich jetzt weitergrübel, möchte ich sichergehen, dass die Idee überhaupt umsetzbar ist und bin für jeden Tipp / für jede Antwort dankbar!
Es geht hierbei um eine mittels Zope 3 / Grok erstellte Webanwendung. Genutzt wird eine SQL-Datenbank.
Daten dieser Datenbank werden auf einer Seite angezeigt und es gibt zwei Arten der weiteren Verarbeitung (grok.action (bearbeiten und loeschen). Sowohl das Bearbeiten als auch das Löschen funktionieren reibungslos. Beim Löschen ist allerdings der Datensatz sofort ohne weiter nachzufragen weg.
Zum Nachfragen gibt es bekanntlich die JavaScript-Anweisung "onClick="return window.confirm('Loeschen?')". Diese kann ich im PageTemplate aber scheinbar nicht sinnvoll einbauen, da die Verlinkung in der Python-Datei erfolgt.
An der entsprechenden Stelle sieht das PageTemplate wie folgt aus:
<tr class="controls">
<td>
<input tal:repeat="action view/actions"
tal:replace="structure action/render" />
</td>
</tr>
Das Python-Coding hat folgenden groben Aufbau:
@grok.action(_u(u'Loeschen'))
def loeschen(self, **kw):
context = self.context
...
...
store = getUtility....
delbef = store.find.....
delbef.remove()
url = 'xyz'
self.redirect(url)
Jetzt stellt sich die Frage, ob es überhaupt grundsätzlich möglich ist, in diesem Fall das "onClick" anzuwenden oder ob es nicht sinniger wäre, im Python auf eine Zwischenseite zu verweisen, wo dann nachgefragt wird und je nach Antwort dann mit delbef redirected oder eben ohne delbef weitergeleitet wird.
Ferner besteht m.E. noch die Möglichkeit, die URL's im Template zu generieren und dann beim HREF das "onClick" mit einzubauen.
Was wäre Eurer Meinung nach die sauberste Alternative? Habe ich etwas übersehen? Vielen lieben Dank.
Hazel75
ich habe hier einen Sachverhalt, der mir schon seit einiger Zeit das Gehirn schmelzen lässt. Bevor ich jetzt weitergrübel, möchte ich sichergehen, dass die Idee überhaupt umsetzbar ist und bin für jeden Tipp / für jede Antwort dankbar!
Es geht hierbei um eine mittels Zope 3 / Grok erstellte Webanwendung. Genutzt wird eine SQL-Datenbank.
Daten dieser Datenbank werden auf einer Seite angezeigt und es gibt zwei Arten der weiteren Verarbeitung (grok.action (bearbeiten und loeschen). Sowohl das Bearbeiten als auch das Löschen funktionieren reibungslos. Beim Löschen ist allerdings der Datensatz sofort ohne weiter nachzufragen weg.
Zum Nachfragen gibt es bekanntlich die JavaScript-Anweisung "onClick="return window.confirm('Loeschen?')". Diese kann ich im PageTemplate aber scheinbar nicht sinnvoll einbauen, da die Verlinkung in der Python-Datei erfolgt.
An der entsprechenden Stelle sieht das PageTemplate wie folgt aus:
<tr class="controls">
<td>
<input tal:repeat="action view/actions"
tal:replace="structure action/render" />
</td>
</tr>
Das Python-Coding hat folgenden groben Aufbau:
@grok.action(_u(u'Loeschen'))
def loeschen(self, **kw):
context = self.context
...
...
store = getUtility....
delbef = store.find.....
delbef.remove()
url = 'xyz'
self.redirect(url)
Jetzt stellt sich die Frage, ob es überhaupt grundsätzlich möglich ist, in diesem Fall das "onClick" anzuwenden oder ob es nicht sinniger wäre, im Python auf eine Zwischenseite zu verweisen, wo dann nachgefragt wird und je nach Antwort dann mit delbef redirected oder eben ohne delbef weitergeleitet wird.
Ferner besteht m.E. noch die Möglichkeit, die URL's im Template zu generieren und dann beim HREF das "onClick" mit einzubauen.
Was wäre Eurer Meinung nach die sauberste Alternative? Habe ich etwas übersehen? Vielen lieben Dank.
Hazel75