from mako.template import Template
from copy import deepcopy


def generate_flux(bucket, host, field, data):
    return Template(flux_template).render(
        bucket=bucket,
        host=host,
        field=field,
        data=data
    ).strip()


def generate_panel(bucket, host, title, targets, min=None, max=None):
    panel = deepcopy(panel_template)
    panel['title'] = title
    
    if min:
        panel['fieldConfig']['defaults']['min'] = min
    if max:
        panel['fieldConfig']['defaults']['max'] = max

    panel['targets'] = [
        {
            'hide': False,
            'refId': field,
            'query': generate_flux(bucket, host, field, data),
        } for field, data in targets.items()
    ]