Turn the XML generation helper into a class for better flexibility

This commit is contained in:
Magnus Hagander
2010-01-13 23:07:25 +01:00
parent 31400cc2d3
commit a6537437ce
2 changed files with 19 additions and 11 deletions

View File

@ -3,6 +3,7 @@ from pgweb.util.contexts import NavContext
from django.http import HttpResponseRedirect
from django.template import Context
from django.template.loader import get_template
import django.utils.xmlutils
def simple_form(instancetype, itemid, request, formclass, formtemplate='base/form.html', redirect='/account/', navsection='account'):
if itemid == 'new':
@ -46,7 +47,15 @@ def simple_form(instancetype, itemid, request, formclass, formtemplate='base/for
def template_to_string(templatename, attrs = {}):
return get_template(templatename).render(Context(attrs))
def add_xml_element(xml, name, value):
xml.startElement(name, {})
xml.characters(value)
xml.endElement(name)
class PgXmlHelper(django.utils.xmlutils.SimplerXMLGenerator):
def __init__(self, outstream, skipempty=False):
django.utils.xmlutils.SimplerXMLGenerator.__init__(self, outstream, 'utf-8')
self.skipempty = skipempty
def add_xml_element(self, name, value):
if self.skipempty and value=='': return
self.startElement(name, {})
self.characters(value)
self.endElement(name)