In src/vs.registration/vs/registration/browser/registration.kss
wird die Serveraktion referenziert mit:
action-server:confirmRegistrant;
confirm-registrant: kssAttr('confirm');
Beim Aufruf der Aktion wird confirmRegistran
im aktuellen Kontext mit den entsprechenden Parametern aufgerufen. So wird z.B. eine HTTP POST-Anfrage zu der URL http://localhost:8080/mysite/registration/confirmRegistrant
mit dem Parameter confirm
gesendet.
Die serverseitige Aktion wird meist als View implementiert. Entsprechend geben wir in browser/configure.zcml
folgendes an:
<browser:page
for="vs.registration.interfaces.IRegistration"
name="confirmRegistrant"
class=".confirmations.confirmedRegistrants"
attribute="confirm_registrant"
permission="zope2.RequestReview"
/>
Und die confirmedRegistrants
-Klasse in browser/confirmations
sieht dann so aus:
from zope.interface import alsoProvides
from kss.core import kssaction
from plone.app.kss.plonekssview import PloneKSSView
from plone.app.layout.globals.interfaces import IViewView
from Akquisition import aq_inner
from Products.Five.browser import BrowserView
from vs.Registration.interfaces import IConfirmations
class confirmedRegistrants
@kssaction
def confirm_registrant
confirm = confirm.lower()
if confirm not in ("confirm", "reject"):
return