"""
open/dulcinea/lib/ui/user/motd.qpy
"""
from dulcinea.misc import get_misc_db
from dulcinea.util import format_text, SAFE_TAGS
from qp.fill.directory import Directory
from qp.fill.form import Form
from qp.pub.common import redirect, get_user, page
def format_motd:xml(motd):
'
%s
' % format_text(motd)
class MotdUI (Directory):
def get_exports(self):
if get_user() and get_misc_db():
yield ('', '_q_index', 'Signin Message', 'Message-of-the-day')
if get_user().is_admin():
yield ('edit', 'edit', 'Edit', 'Edit message-of-the-day')
def _q_index:xml(self):
return page('Signin Message',
format_motd(get_misc_db().get_motd()))
def edit(self):
form = Form()
form.add_text('motd', value=get_misc_db().get_motd(),
rows=30, cols=90,
hint=("The message-of-the-day may include the following "
"HTML tags: %s. " % ', '.join(SAFE_TAGS)))
form.add_submit('update', 'Update')
form.add_submit('preview', 'Preview')
form.add_submit('cancel', 'Cancel')
if form.get('cancel'):
redirect('.')
if not form.is_submitted() or form.has_errors():
return page('Edit: Message of the Day', form.render())
if form.get('preview'):
return page('Preview: Message of the Day',
format_motd(form['motd']),
form.render())
if form.get('update'):
get_misc_db().set_motd(form['motd'])
redirect('.')