<?xml version = "1.0"?>
<ncaq:doc
xmlns:maki="http://maki.sourceforge.net/maki"
xmlns:ncaq="http://ncaquariums.com"
>

   <ncaq:body>
<maki:logic>
def getAct(req):
	act = req.get("act-cancel")
	if(act): return "cancel"
	act = req.get("act-preview")
	if(act): return "preview"
	act = req.get("act-edit")
	if(act): return "edit"
	act = req.get("act-save")
	if(act): return "save"
	return "start"

act = getAct(MAKI_trans)
if(act == 'cancel'):
	MAKI_trans.sendRedirect("/expert_questions.xml")
	MAKI_return()

statuses = None
redirect = "expert_thanks.xml"
errors = None
question = ncaq.ExpertQuestion(resources)
question.setSerializeMetadata(1)
if(act != 'start'):
	for name in ("questioner_name", "questioner_status_id", "questioner_status_other", "questioner_location", "question"):
		question.set(name, MAKI_trans.get(name))
	errors = question.validate()
	
if(act == 'save' and not errors):
	question.save()
	resources.commitConnection()

	smtp = ncaq.getSMTP()
	admin_email_address = ncaq.ADMIN_TO
	message =  "The following question was just submitted.\nPlease use the admin interface to respond.\n-----------------------------------------------------\n" + MAKI_trans.get('question')
	smtp.send("Ask the experts question", message, ncaq.SYSTEM_FROM, admin_email_address)
	
	MAKI_trans.sendRedirect(redirect)
	MAKI_return()

if(act == 'preview' and errors):
	act = "edit"

if(act != 'preview'):
	statuses = spb.DBW.getMatchingObjects(ncaq.PublicStatus, resources)

expert_question_page = spb.DBW.getMatchingObject(ncaq.ExpertQuestionPage, resources)
for feq in expert_question_page.get("FeaturedExpertQuestion"):
	feq.get("ExpertQuestion", spb.DBW.LITE)

</maki:logic>
<maki:expr name="act">act</maki:expr>
<maki:expr name="errors">ncaq_util.XmlableErrors(errors)</maki:expr>
<maki:expr name="ExpertQuestion">question</maki:expr>
<maki:elements name="PublicStatus">statuses</maki:elements>
<maki:expr name="ExpertQuestionPage">expert_question_page</maki:expr>
   </ncaq:body>
</ncaq:doc>
