def save_the_page(pagename, request, text=u''):
    from MoinMoin.Page import Page
    from MoinMoin.PageEditor import PageEditor

    _ = request.getText

    if not request.user.may.write(pagename):
        Page(request, pagename).send_page(request,
            msg = _('You are not allowed to edit this page.'))
        return

    pg = PageEditor(request, pagename)
    savetext = pg.getACL(request).getString() + text
    rev = 0
    comment = u'Quiz answers'
    rstrip = 0
    trivial = 0

    # IMPORTANT: normalize text from the form. This should be done in
    # one place before we manipulate the text.
    savetext = pg.normalizeText(savetext, stripspaces=rstrip)
    try:
        savemsg = pg.saveText(savetext, rev, trivial=trivial, comment=comment)
    except pg.EditConflict, msg:
        savemsg = _(u'Someone else changed this page while you were editing!')
    except pg.SaveError, msg:
        # msg contain a unicode string
        savemsg = unicode(msg)

    # Send new page after save or after unsuccessful conflict merge.
    request.reset()
    backto = request.form.get('backto', [None])[0]
    if backto:
        pg = Page(request, backto)
    pg.send_page(request, msg=savemsg)

def execute(pagename, request):
    if request.user:
        user = request.user.name or 'anonymous'
    else:
        user = 'anonymous'
    text = u'' #u'#acl %s:read,write GrupaWykładowcy:read,write,admin,delete All:'%user
    quiz = request.form.iteritems()
    for question, answers in quiz:
        if question!='action':
            text += ' %s::\n'%question
            for answer in answers:
                text += '  * %s\n'%answer
                                
    save_the_page(pagename+'/'+user, request, text)

