Changeset 3548 for TI05-delivery/ows_framework
- Timestamp:
- 29/02/08 13:58:46 (13 years ago)
- Location:
- TI05-delivery/ows_framework/branches/ows_framework-refactor/ows_common/ows_common
- Files:
-
- 5 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TI05-delivery/ows_framework/branches/ows_framework-refactor/ows_common/ows_common/pylons/ows_controller.py
r3496 r3548 32 32 33 33 # Instantiate Genshi template loader 34 genshiLoader = TemplateLoader(34 templateLoader = TemplateLoader( 35 35 resource_filename('ows_common.pylons', 'templates'), 36 36 auto_reload=True, … … 44 44 45 45 46 class O wsControllerBase(WSGIController):46 class OWSControllerBase(WSGIController): 47 47 """ 48 48 @ivar owsParams: A dictionary of parameters passed to the service. … … 63 63 if 'pylons' in EXCEPTION_TYPE: 64 64 self._fixOwsAction(environ) 65 return super(O wsControllerBase, self).__call__(environ, start_response)65 return super(OWSControllerBase, self).__call__(environ, start_response) 66 66 else: 67 67 try: 68 68 self._fixOwsAction(environ) 69 return super(O wsControllerBase, self).__call__(environ, start_response)69 return super(OWSControllerBase, self).__call__(environ, start_response) 70 70 except OWS_E.OwsError, e: 71 71 logger.exception(e) 72 72 73 tmpl = genshiLoader.load('exception_report.xml')73 tmpl = templateLoader.load('exception_report.xml') 74 74 response.write(tmpl.generate(report=e.report).render('xml')) 75 75 response.headers['content-type'] = 'text/xml' … … 116 116 def addOperation(opName, formats=[]): 117 117 ops = c.capabilities.operationsMetadata.operationDict 118 ops[opName] = helpers.operation(url_for( ), formats=formats)119 120 def addLayer(name, title, abstract, srs , bbox, dimensions={}):118 ops[opName] = helpers.operation(url_for(qualified=True, action="index")+'?', formats=formats) 119 120 def addLayer(name, title, abstract, srss, bbox, dimensions={}): 121 121 """ 122 122 @param dimensions: Dictionary of dictionaries D[k1][k2]=val where … … 131 131 c.capabilities.contents = Contents() 132 132 133 layer = helpers.wms_layer(name, title, srs , bbox, abstract)133 layer = helpers.wms_layer(name, title, srss, bbox, abstract) 134 134 135 135 for k1, kwargs in dimensions.items(): … … 159 159 #----------------------------------------------------------------------------- 160 160 161 class O wsController(OwsControllerBase):162 """ 163 Adds basic GetCapabilities response to O wsControllerBase.161 class OWSController(OWSControllerBase): 162 """ 163 Adds basic GetCapabilities response to OWSControllerBase. 164 164 165 165 @cvar service: If None does not enforce the SERVICE parameter. Otherwise … … 175 175 owsOperations = ['GetCapabilities'] 176 176 177 # Override these attributes to control how O wsController responds to177 # Override these attributes to control how OWSController responds to 178 178 # GetCapabilities 179 179 service = None -
TI05-delivery/ows_framework/branches/ows_framework-refactor/ows_common/ows_common/pylons/templates/wms_capabilities_1_1_1.xml
r3496 r3548 1 1 <?xml version="1.0"?> 2 2 <!DOCTYPE WMT_MS_Capabilities SYSTEM 3 "http:// www.digitalearth.gov/wmt/xml/capabilities_1_1_1.dtd">3 "http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd"> 4 4 5 5 <?python … … 8 8 from ows_common.pylons.genshi_util import RenameElementFilter 9 9 from genshi import QName 10 import webhelpers as h 10 11 11 12 ?> 12 13 13 14 <WMT_MS_Capabilities xmlns:py="http://genshi.edgewall.org/" 14 xmlns:xlink="http://www.w3.org/1999/xlink"15 15 version="1.1.1"> 16 16 … … 24 24 <Format py:for="f in op.parameters['Format'].possibleValues.allowedValues" py:content="f"/> 25 25 <DCPType><HTTP> 26 <Get><OnlineResource xlink:href="${op.get.href}"/></Get> 26 <Get> 27 <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" 28 xlink:href="${op.get.href}"/> 29 </Get> 27 30 </HTTP></DCPType> 28 31 </Operation> … … 60 63 <Dimension name="${d_n}" units="${d.valuesUnit}" 61 64 unitSymbol="${d.unitSymbol}"/> 62 <Extent name="${d_n}" default="${d.defaultValue}" nearestValue="${ d.nearestValue}"63 py:content="' 65 <Extent name="${d_n}" default="${d.defaultValue}" nearestValue="${int(d.nearestValue)}" 66 py:content="','.join(d.possibleValues.allowedValues)"/> 64 67 </py:for> 65 68 </Layer> … … 76 79 py:content="kw"/> 77 80 </KeywordList> 78 <!--! <OnlineResource xlink:type="simple" xlink:href="${h.url_for()}"/> --> 81 <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" 82 xlink:href="${h.url_for(qualified=True, action='index')}?"/> 79 83 80 84 <ContactInformation py:if="sm.serviceProvider is not None" … … 82 86 <ContactPersonPrimary> 83 87 <ContactPerson py:if="rp is not None" py:content="rp.individualName"/> 84 <ContactOrgani sation py:content="sm.serviceProvider.providerName"/>88 <ContactOrganization py:content="sm.serviceProvider.providerName"/> 85 89 </ContactPersonPrimary> 86 90 <ContactPosition py:content="rp.positionName"/> … … 113 117 <Capability py:with="sm=c.capabilities; om=sm.operationsMetadata"> 114 118 <py:if test="om is not None"> 115 <py:for each="opName, op in om.operationDict.items()"> 116 <Request py:content="markupOperation(opName, op)"/> 117 <?python exceptions = op.parameters.get('ExceptionFormat') ?> 118 <Exception py:if="exceptions is not None"> 119 <Format py:for="e in exceptions.possibleValues.allowedValues" 120 py:content="e"/> 121 </Exception> 122 </py:for> 119 <?python ops = ['GetCapabilities', 'GetMap', 'GetFeatureInfo'] ?> 120 <Request> 121 <py:for each="opName in ops" py:if="opName in om.operationDict.keys()"> 122 <span py:content="markupOperation(opName, om.operationDict[opName])" py:strip="True"/> 123 </py:for> 124 <py:for each="opName in ops" py:if="opName in om.operationDict.keys()"> 125 <?python exceptions = om.operationDict[opName].parameters.get('ExceptionFormat') ?> 126 <Exception py:if="exceptions is not None"> 127 <Format py:for="e in exceptions.possibleValues.allowedValues" 128 py:content="e"/> 129 </Exception> 130 </py:for> 131 </Request> 123 132 </py:if> 124 133 134 <!--!TODO: capability exceptions --> 135 <Exception><Format>text/xml</Format></Exception> 136 125 137 <Layer py:if="sm.contents is not None"> 126 138 <Title>Contents</Title> 127 139 <Layer py:for="ds in sm.contents.datasetSummaries" 128 py:replace="markupLayer(ds)"/> 140 py:replace="markupLayer(ds)"> 141 </Layer> 129 142 </Layer> 130 143 </Capability>
Note: See TracChangeset
for help on using the changeset viewer.