# -*- coding: utf-8 -*-

from .i18n import get_


class PageAttachmentSizeInfo:
    """Класс для генерации информации о самых записях с самым большим
    размером прикрепленных файлов"""

    def __init__(self, pageAttachmentSizeList, itemsCount):
        """
        itemsCount - количество выводимых страниц в списках
        """
        self._pageListAll = pageAttachmentSizeList
        self._itemsCount = itemsCount

        global _
        _ = get_()

    @property
    def content(self):
        title = _(
            "Pages with the largest size of attachments (in brackets the size of attachments):"
        )
        pageListHtml = self._getGratestPages()

        return """<p>{title}<br>
{items}
</p>
<hr/>""".format(
            title=title, items=pageListHtml
        )

    def _getGratestPages(self):
        pageList = self._pageListAll[0 : min(self._itemsCount, len(self._pageListAll))]
        return self._getPageListHtml(pageList)

    def _getPageListHtml(self, pageList):
        """
        Оформить список страниц в виде HTML
        """
        # Локализованные единицы изменения размеров файлов
        kb = _("kB")

        items = [
            "<li><b>{title}</b> ({size} {kb})</li>".format(
                title=page.display_subpath,
                size="{0:,.2f}".format(size / 1024.0).replace(",", " "),
                kb=kb,
            )
            for page, size in pageList
        ]

        return "<ul>" + "".join(items) + "</ul>"
