105 rv = ['<html><head>'
106 '<title>GRL generator</title>'
107 '<script type="text/javascript" src="/static/js/grl.js"><!-- -->'
108 '</script>'
109 '</head><body onload="onLoad()">'
110 '<h1>Good Run List Generator</h1>'
111 '<p>This generator allows you to create good run list XML files from '
112 'configurations that are currently kept on AFS, in <tt>~atlasdqm/grl</tt>.'
113 '<p>Using tags:'
114 '<p>CoolRunQuery-00-01-92'
115 '<p>GoodRunsLists-00-00-71'
116 ]
117 rv.append('<div><form method="get" action="generate" style="border-width: 2px; border-style:solid">')
118 rv.append('Configuration file: <select name="configuration" id="confselect">')
119 for f, cn in _get_list_of_grl_classes():
120 rv.append('<option value="%(config)s">%(config)s</option>'
121 % {'config': cn})
122 rv.append('</select> <a href="javascript:downloadPython()">(Click to download)</a> <br/>\n')
123 rv.append('DQ folder: <select name="folder" id="folderselect" onchange="adjustTagList(this)">\n'
124 '<option value="LBSUMM" selected>LBSUMM: Full DQ summary (default, recommended)</option>\n'
125 '<option value="SHIFTOFL">SHIFTOFL: Offline shifters (experts)</option>\n'
126 '<option value="DQCALCOFL">DQCALCOFL: Automatic checks + online shifters (experts)</option>\n'
127 '</select> If in doubt, leave as LBSUMM<br/>'
128 )
129 rv.append('COOL tag: <select name="cooltag" id ="cooltagselect">')
130 for folder in ('LBSUMM', 'SHIFTOFL', 'DQCALCOFL'):
131 for t, descr, lock in _get_cool_tags_for_folder(folder):
132 if t in TAGS_TO_SUPPRESS: continue
133 apptext = []
134 if descr:
135 apptext.append('(%s)' % descr)
136 if lock == 'unlocked':
137 apptext.append('Tag unlocked, all runs may change')
138 elif lock == 'partial':
139 apptext.append('Tag partially locked, recent runs may change')
140 else:
141 apptext.append('Tag locked')
142 if apptext != []:
143 apptext.insert(0, '—')
144 rv.append('<option value="%(tag)s">%(tag)s %(apptext)s</option>'
145 % {'tag': t, 'apptext': ' '.join(apptext)})
146
147 rv.append(
148 '<option value="">HEAD</option>'
149 '</select><br/>')
150 rv.append(
151 '<input type="submit" value="Submit"/>\n'
152 '</form></div>')
153
154 rv.append('</body></html>')
155
156
157 return '\n'.join(rv)
158