from flask import Blueprint, render_template, url_for
from jinja2 import Markup
from insignal.config.path import get_template_path, get_static_path
from insignal.config.config_sub_pages import get_sub_pages

products_page = Blueprint('products', __name__, template_folder=get_template_path(),
                          static_folder=get_static_path(), url_prefix="/products")


@products_page.route("/")
@products_page.route("/cpu_pmic")
def cpu_pmic():
    sub_pages = get_sub_pages("products", "PMIC")
    
    return render_template("products/cpu_pmic.html", page_name="CPU/PMIC", sub_pages=sub_pages)


@products_page.route("/cpu_module")
def cpu_module():
    sub_pages = get_sub_pages("products", "CPU_MODULE")

    return render_template("products/cpu_module.html", page_name="CPU MODULE", sub_pages=sub_pages)


@products_page.route("/peripheral_components")
def peripheral_components():
    sub_pages = get_sub_pages("products", "PERIPHERAL_COMPONENTS")
    
    return render_template("products/peripheral_components.html", page_name="PERIPHERAL COMPONENTS", sub_pages=sub_pages)


@products_page.route("/camera_modules")
def camera_modules():
    sub_pages = get_sub_pages("products", "CAMERA_MODULES")

    return render_template("products/camera_modules.html", page_name="CAMERA MODULES", sub_pages=sub_pages)


@products_page.route("/cpu_evaluation")
def cpu_evaluation():
    sub_pages = get_sub_pages("products", "CPU_EVALUATION")

    return render_template("products/cpu_evaluation.html", page_name="CPU EVALUATION(EV-KIT) BOARD", sub_pages=sub_pages)


def get_sub_page_links():
    map_sub_page_links = (
        (url_for('products.cpu_pmic'), "CPU/PMIC"),
        (url_for('products.cpu_module'), "CPU MODULE"),
        (url_for('products.peripheral_components'), "PERIPHERAL COMPONENTS"),
        (url_for('products.camera_modules'), "CAMERA MODULES"),
        (url_for('products.cpu_evaluation'), "CPU EVALUATION(EV-KIT) BOARD")
    )

    return Markup("\n".join(["<li><a href='{i[0]}'>{i[1]}</a></li>".format(i=item) for item in map_sub_page_links]))


@products_page.app_context_processor
def app_context_processor():
    return dict(page_links=get_sub_page_links)
