# HG changeset patch
# User paulb
# Date 1104160777 0
# Node ID d8f5b795fb321c5a7ec5ad8c23779fb6c50f51b2
# Parent 0757f68e09ab0b8bca2ff774970560230f140373
[project @ 2004-12-27 15:19:35 by paulb]
Added a simple export feature.
diff -r 0757f68e09ab -r d8f5b795fb32 examples/Common/PEP241/Resources/pep241_template.xhtml
--- a/examples/Common/PEP241/Resources/pep241_template.xhtml Sun Dec 26 18:48:11 2004 +0000
+++ b/examples/Common/PEP241/Resources/pep241_template.xhtml Mon Dec 27 15:19:37 2004 +0000
@@ -169,6 +169,7 @@
|
+
|
diff -r 0757f68e09ab -r d8f5b795fb32 examples/Common/PEP241/__init__.py
--- a/examples/Common/PEP241/__init__.py Sun Dec 26 18:48:11 2004 +0000
+++ b/examples/Common/PEP241/__init__.py Mon Dec 27 15:19:37 2004 +0000
@@ -53,14 +53,17 @@
global XSLForms # NOTE: Strangely required to avoid UnboundLocalError!
method = trans.get_request_method()
+
+ # Only obtain field information according to the stated method.
+
if method == "GET":
fields = XSLForms.Fields.Fields(encoding="iso-8859-1", values_are_lists=1)
- items = trans.get_fields_from_path().items()
- documents = fields.make_documents(items)
+ parameters = trans.get_fields_from_path()
+ documents = fields.make_documents(parameters.items())
elif method == "POST":
fields = XSLForms.Fields.Fields(encoding=self.encoding, values_are_lists=1)
- items = trans.get_fields_from_body(self.encoding).items()
- documents = fields.make_documents(items)
+ parameters = trans.get_fields_from_body(self.encoding)
+ documents = fields.make_documents(parameters.items())
else:
trans.set_response_code(405)
raise WebStack.Generic.EndOfResponse
@@ -72,7 +75,9 @@
else:
package = fields.new_instance("package")
- selectors = fields.get_selectors(items, documents)
+ # Add and remove elements according to the selectors found.
+
+ selectors = fields.get_selectors(parameters.items(), documents)
add_elements(selectors.get("add_platform"), "platform", "platforms")
remove_elements(selectors.get("remove_platform"))
add_elements(selectors.get("add_supported_platform"), "supported-platform", "supported-platforms")
@@ -84,33 +89,45 @@
add_elements(selectors.get("add_dependency"), "dependency", "dependencies")
remove_elements(selectors.get("remove_dependency"))
- # Transform, adding enumerations/ranges.
+ # Send a response according to certain parameters.
+ # When exported, an XML version of the data is returned.
+
+ if parameters.has_key("export"):
+ trans.set_content_type(WebStack.Generic.ContentType("text/xml", self.encoding))
+ libxml2dom.toStream(package, trans.get_response_stream(), trans.get_response_stream_encoding())
- categories_xsl = os.path.join(self.resource_dir, "pep241_categories.xsl")
- categories_xml = os.path.join(self.resource_dir, "pep241_categories.xml")
- proc = XSLOutput.Processor([categories_xsl], {"categories" : categories_xml})
- package = proc.get_result(package)
+ # When not exported, the data is transformed to produce a normal Web
+ # page.
+
+ else:
- # Start the response.
+ # Transform, adding enumerations/ranges.
- trans.set_content_type(WebStack.Generic.ContentType("text/html", self.encoding))
-
- # Ensure that an output stylesheet exists.
+ categories_xsl = os.path.join(self.resource_dir, "pep241_categories.xsl")
+ categories_xml = os.path.join(self.resource_dir, "pep241_categories.xml")
+ proc = XSLOutput.Processor([categories_xsl], {"categories" : categories_xml})
+ package = proc.get_result(package)
- trans_xsl = os.path.join(self.resource_dir, "pep241_output.xsl")
- template_xml = os.path.join(self.resource_dir, "pep241_template.xhtml")
+ # Start the response.
+
+ trans.set_content_type(WebStack.Generic.ContentType("text/html", self.encoding))
- if not os.path.exists(trans_xsl) or \
- os.path.getmtime(trans_xsl) < os.path.getmtime(template_xml):
+ # Ensure that an output stylesheet exists.
- import XSLForms.Prepare
+ trans_xsl = os.path.join(self.resource_dir, "pep241_output.xsl")
template_xml = os.path.join(self.resource_dir, "pep241_template.xhtml")
- XSLForms.Prepare.make_stylesheet(template_xml, trans_xsl)
- # Complete the response.
+ if not os.path.exists(trans_xsl) or \
+ os.path.getmtime(trans_xsl) < os.path.getmtime(template_xml):
- proc = XSLOutput.Processor([trans_xsl])
- proc.send_output(trans.get_response_stream(), trans.get_response_stream_encoding(),
- package)
+ import XSLForms.Prepare
+ template_xml = os.path.join(self.resource_dir, "pep241_template.xhtml")
+ XSLForms.Prepare.make_stylesheet(template_xml, trans_xsl)
+
+ # Complete the response.
+
+ proc = XSLOutput.Processor([trans_xsl])
+ proc.send_output(trans.get_response_stream(), trans.get_response_stream_encoding(),
+ package)
# vim: tabstop=4 expandtab shiftwidth=4