|
13 | 13 |
|
14 | 14 | LOG = logging.getLogger(__name__)
|
15 | 15 |
|
| 16 | +_list_headers = ('ID', 'Date', 'Name', 'Submitter', 'State', 'Archived', |
| 17 | + 'Delegate') |
| 18 | + |
16 | 19 |
|
17 | 20 | @click.command(name='apply', context_settings=dict(
|
18 | 21 | ignore_unknown_options=True,
|
@@ -199,11 +202,11 @@ def update_cmd(patch_ids, commit_ref, state, delegate, archived, fmt):
|
199 | 202 | @click.option('--sort', metavar='FIELD', default='-date', type=click.Choice(
|
200 | 203 | ['id', '-id', 'name', '-name', 'date', '-date']),
|
201 | 204 | help='Sort output on given field.')
|
202 |
| -@utils.format_options |
| 205 | +@utils.format_options(headers=_list_headers) |
203 | 206 | @click.argument('name', required=False)
|
204 | 207 | @api.validate_multiple_filter_support
|
205 | 208 | def list_cmd(state, submitter, delegate, archived, limit, page, sort, fmt,
|
206 |
| - name): |
| 209 | + headers, name): |
207 | 210 | """List patches.
|
208 | 211 |
|
209 | 212 | List patches on the Patchwork instance.
|
@@ -243,19 +246,25 @@ def list_cmd(state, submitter, delegate, archived, limit, page, sort, fmt,
|
243 | 246 |
|
244 | 247 | # Format and print output
|
245 | 248 |
|
246 |
| - headers = ['ID', 'Date', 'Name', 'Submitter', 'State', 'Archived', |
247 |
| - 'Delegate'] |
248 |
| - |
249 |
| - output = [[ |
250 |
| - patch.get('id'), |
251 |
| - arrow.get(patch.get('date')).humanize(), |
252 |
| - utils.trim(patch.get('name')), |
253 |
| - '%s (%s)' % (patch.get('submitter').get('name'), |
254 |
| - patch.get('submitter').get('email')), |
255 |
| - patch.get('state'), |
256 |
| - 'yes' if patch.get('archived') else 'no', |
257 |
| - (patch.get('delegate').get('username') |
258 |
| - if patch.get('delegate') else ''), |
259 |
| - ] for patch in patches] |
| 249 | + output = [] |
| 250 | + |
| 251 | + for patch in patches: |
| 252 | + item = [ |
| 253 | + patch.get('id'), |
| 254 | + arrow.get(patch.get('date')).humanize(), |
| 255 | + utils.trim(patch.get('name')), |
| 256 | + '%s (%s)' % (patch.get('submitter').get('name'), |
| 257 | + patch.get('submitter').get('email')), |
| 258 | + patch.get('state'), |
| 259 | + 'yes' if patch.get('archived') else 'no', |
| 260 | + (patch.get('delegate') or {}).get('username', ''), |
| 261 | + ] |
| 262 | + |
| 263 | + output.append([]) |
| 264 | + for idx, header in enumerate(_list_headers): |
| 265 | + if header not in headers: |
| 266 | + continue |
| 267 | + |
| 268 | + output[-1].append(item[idx]) |
260 | 269 |
|
261 | 270 | utils.echo_via_pager(output, headers, fmt=fmt)
|
0 commit comments