# coding: utf-8
"""
"""

import json

from ru.curs.celesta.showcase.utils import XMLJSONConverter
from common.htmlhints.htmlHint import htmlHintElement
from gridsettings.functions.gridSettings import toolbar_button_panel

def datapanel(context, main=None, session=None):

    data = {
        "datapanel": {
            "tab": []
        }
    }

    tab1 = {
        "@id": 1,
        "@name": u"Образовательные сертификаты",
        "element": []
    }

    certificateFilter = {
        "@id": "certificateFilter",
        "@type": "xforms",
        "@proc": "edu.xform.certificateFilter.cardData.celesta",
        "@template": "certificateFilter.xml",
        "@hideOnLoad": "true"
    }

    accredCycleRequestsGrid = {
        "@id": "accredCycleRequestsGrid",
        "@type": "grid",
        "@subtype": "JS_PAGE_GRID",
        "@plugin": "pageDGrid",
#         "@proc": "edu.grid.accredCycleRequestsGrid.gridData.celesta",
        "@proc":"medstaff.grid.certificationGrid.gridData.celesta",
        "@hideOnLoad": "false",
        "proc": [
            {
                "@id": "proc1",
#                 "@name": "edu.grid.accredCycleRequestsGrid.gridMeta.celesta",
                "@name":'medstaff.grid.certificationGrid.gridMeta.celesta',
                "@type": "METADATA"
            },
            {"@id":'certificatesEduGridDownload',
                 "@name":"medstaff.grid.certificationGrid.certificateDownload.celesta",
                 "@type":"DOWNLOAD"
            },
            {
                "@id": "proc2",
#                 "@name": "edu.grid.accredCycleRequestsGrid.gridToolBar.celesta",
                
                "@name":"medstaff.grid.certificationGrid.gridToolBar.celesta",
                "@type": "TOOLBAR"
            }
        ],
    }

    certificateEditCard = {
        '@id': 'certificateEditCard',
        '@type': 'xforms',
        '@proc': 'medstaff.xform.downloadCertificateCard.cardData.celesta',
        '@template': 'downloadCertificateCard.xml',
        '@hideOnLoad': 'true',
        'proc': {
            '@id': 'save',
            '@name': 'medstaff.xform.downloadCertificateCard.cardDataSave.celesta',
            '@type': 'SAVE'
        },
        'related': {
            '@id': 'accredCycleRequestsGrid'
        }
    }

    certificateMassChangeStatusCard = {
        "@id": "certificateMassChangeStatusCard",
        "@type": "xforms",
        "@proc": "edu.xform.certificateMassChangeStatusCard.cardData.celesta",
        "@template": "certificateMassChangeStatusCard.xml",
        "@hideOnLoad": "true",
        "proc": {
            "@id": "save",
            "@name": "edu.xform.certificateMassChangeStatusCard.cardSave.celesta",
            "@type": "SAVE"
        },
        "related": {
            "@id": "accredCycleRequestsGrid"
        }
    }

    changeAccredCycleRequestStatusCard = {
        "@id": "changeAccredCycleRequestStatusCard",
        "@type": "xforms",
        "@proc": "edu.xform.changeAccredCycleRequestStatusCard.cardData.celesta",
        "@template": "changeStatusStandardCardWithComment.xml",
        "proc": {
            "@id": "changeAccredCycleRequestStatusCardSave",
            "@name": "edu.xform.changeAccredCycleRequestStatusCard.cardSave.celesta",
            "@type": "SAVE"
        },
        "@hideOnLoad": "true",
        "related": {
                    "@id": "accredCycleRequestsGrid"
        }
     }

    tab1['element'].append(htmlHintElement('edu_certificate'))
    tab1['element'].append(toolbar_button_panel())
    tab1["element"].append(certificateFilter)
    tab1["element"].append(accredCycleRequestsGrid)
    tab1["element"].append(certificateEditCard)
    tab1["element"].append(certificateMassChangeStatusCard)
    tab1["element"].append(changeAccredCycleRequestStatusCard)
    data["datapanel"]["tab"].extend([tab1])

    return XMLJSONConverter.jsonToXml(json.dumps(data))