source: cows_wps/trunk/cows_wps/templates/defs.xml @ 7538

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cows_wps/trunk/cows_wps/templates/defs.xml@7538
Revision 7538, 3.2 KB checked in by astephen, 10 years ago (diff)

Introduced use of pygments for XML rendering.

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--! This template contains various functions for rendering bits of
3    ExecuteResponse and DCIP-specific XML.
4-->
5<?python
6    from cows_wps.process_handler.context.process_status import STATUS
7    from routes import url_for
8?>
9<defs xmlns:py="http://genshi.edgewall.org/" py:strip="True">
10    <?python
11        def renderStatus(context):
12            if context.status == STATUS.ACCEPTED:
13                s = 'ProcessAccepted'
14            elif context.status == STATUS.STARTED:
15                s = 'ProcessStarted'
16            elif context.status == STATUS.COMPLETED:
17                s = 'ProcessCompleted'
18            elif context.status == STATUS.FAILED:
19                s = 'ProcessFailed'
20            else:
21                s = ''
22           
23            return '%s:%s:%s' % (s, context.percentComplete, context.statusMessage)
24    ?>
25   
26    <?python
27    from genshi.builder import tag, Element
28    def markupProcessSpecificContent(context):
29        PSCElement = tag.ProcessSpecificContent("\n")
30       
31        d = context.outputs.get('ProcessSpecificContent')
32       
33        if type(d) != dict:
34            return PSCElement
35   
36        items = d.items()
37        items.sort()
38
39        for key, value in items:
40            PSCElement("\t", Element(key)(value))("\n")
41   
42        return PSCElement
43    ?>
44       
45    <FileSet py:def="markupFileSet(fileSet, jobId)">
46        ${markupFileSetContents(fileSet, jobId)}
47    </FileSet>
48   
49    <py:def function="markupFileSetContents(fileSet, jobId)">
50        <FileDetails py:for="file in fileSet.contents">
51            <FileURL py:content="url_for(controller='/download', authorisedRoles=authorisedRoles, jobId=jobId, fileName=file.name, qualified=True)"/>
52            <FileSize py:content="file.size"/>
53            <FileInfo py:content="file.info"/>
54            <FileType py:content="file.flag"/>
55            <FileCapabilities py:content="file.capabilities"/>
56            <FileContents py:if="file.flag == 'zip'">   
57                ${markupFileSetContents(file, jobId)}
58            </FileContents>
59            <py:if test="file.flag != 'zip'">
60            <FileContents />
61            </py:if>   
62        </FileDetails>
63    </py:def>
64
65   
66       
67    <JobDetails py:def="markupJobDetails(context, fullDetails=False)">
68        <?python jd = context.outputs['job_details'] ?>
69        <JobID py:content="jd['job_id']"/>
70        <JobUnixCompletionTime py:content="jd.get('completion_time')"/>
71        <JobCompletionTimeDate py:content="jd.get('completion_date_time')"/>
72        <JobSubmissionTime py:content="jd.get('submission_date_time')"/>
73        <JobCapabilities py:content="jd.get('job_capabilities')"/>
74        <JobDuration>
75            <py:if test="jd.has_key('duration')">
76                ${jd['duration']}
77            </py:if>
78        </JobDuration>
79        <JobVolume py:content="jd.get('job_volume')"/>
80        <RequestDescription py:content="jd.get('RequestDescription')"/>
81        <RequestType py:content="jd.get('RequestType')"/>
82       
83        <py:if test="str(fullDetails) == 'True'">
84            ${markupFileSet(context.outputs['FileSet'], jd['job_id'])}           
85        </py:if>
86   
87    </JobDetails>
88</defs>
Note: See TracBrowser for help on using the repository browser.