#!/usr/bin/env python3
#
# Format a result
#

import pscheduler

from validate import result_is_valid
from validate import MAX_SCHEMA

TEMPLATE = '''
{%- macro dump_text(label, arg) -%}
{{ label }}:

  Time ........... {{ unspec(arg.time) }}
{%- if arg.synchronized %}
  Synchronized ... {{ arg.source }}, {{ arg.reference }}
  Offset ......... {{ arg.offset }}
{%- endif -%}
{%- endmacro -%}

{%- macro dump_html(label, arg) -%}
<tr><th colspan="2">{{ label }}</th></tr>
<tr><td>Time</td><td>{{ unspec(arg.time) }}</td></tr>
{%- if arg.synchronized %}
<tr><td>Synchronized</td><td>{{ arg.source }}, {{ arg.reference }}</td></tr>
<tr><td>Offset</td><td>{{ arg.offset }}</td></tr>
{%- endif -%}
{%- endmacro -%}

{% if _mime_type == 'text/plain' %}

{{ dump_text('Local', result.local) }}

{{ dump_text('Remote', result.remote) }}

Difference ... {{ result.difference }}

{% elif _mime_type == 'text/html' %}
<table>
  {{ dump_html('Local', result.local) }}
  {{ dump_html('Remote', result.remote) }}
  <tr><td colspan="2">&nbsp;</td></tr>
  <tr><td>Difference</td><td>{{ result.difference }}</td></tr>
</table>

{% else %}

{{ error('Unsupported MIME type "' + _mime_type + '"') }}

{% endif %}
'''

pscheduler.result_format_method(TEMPLATE, max_schema=MAX_SCHEMA, validator=result_is_valid)
