# coding: utf-8
'''
Created on 15.01.2016

@author: i.lopatin

'''
import json
from qt._qt_orm import QtiPackageAttributeCursor
from ru.curs.celesta.showcase.utils import XMLJSONConverter

try:
    from ru.curs.showcase.core.jython import JythonDTO
    from ru.curs.showcase.core.selector import ResultSelectorData
    from ru.beta2.extra.gwt.ui.selector.api import DataRecord
except:
    from ru.curs.celesta.showcase import JythonDTO, DataRecord, ResultSelectorData

def cardData(context, main=None, add=None, filterinfo=None, session=None, elementId=None): 
    u'''Процедура для отрисовки данных карточки. '''
    
    u"""Создание курсоров для грида btzAttributesGrid"""
    attribute = QtiPackageAttributeCursor(context)

    u"""Получение набора всего набора полей из таблицы"""
    gridContext = json.loads(session)['sessioncontext']['related']['gridContext']

    for grid in gridContext:
        if grid["@id"] == "btzAttributesGrid":
            currAttributeId = grid.get("currentRecordId")
        
    u"""Получение выделенной записи для таблицы QtiPackageAttributes(btzAttributesGrid)"""
    attribute.get(currAttributeId)
  
    u"""Данные для полей на карточке"""    
    xformsdata = {"schema":{"attributeData": {"@add":add,
                                            "@AttributeName": attribute.AttributeName,
                                            "@AttributeValue": attribute.AttributeValue,
                                            "@PackageId": attribute.PackageID
                                           }
                            }
                  }
    
    xformssettings = {"properties":{"event":{"@name":"single_click",
                                             "@linkId": "1",
                                             "action":{
                                                  "#sorted": [
                                                      {"main_context": "current"},
                                                      {"datapanel": {"@type": "current",
                                                                     "@tab": "current",
                                                                     "element": {"@id":"btzAttributesGrid",
                                                                                "add_context": ""
                                                                                }                                                                                 
                                                                     }
                                                      }]}
                                             },
                                    
                                    }
                      }
    
    return JythonDTO(XMLJSONConverter.jsonToXml(json.dumps(xformsdata)),
                     XMLJSONConverter.jsonToXml(json.dumps(xformssettings))
                     )


def cardDataDelete(context, main=None, add=None, filterinfo=None, session=None, elementId=None, xformsdata=None):    
    u'''Процедура удаления'''  
    
    u"""Создание курсора для таблицы qtiPackageAttribute"""
    attribute = QtiPackageAttributeCursor(context)
    
    u"""Получение набора всего набора полей из данной таблицы"""
    idContent = json.loads(session)['sessioncontext']['related']['gridContext']

    for grid in idContent:
        if grid["@id"] == "btzAttributesGrid":
            currAttributeId = grid.get("currentRecordId")
            attribute.get(currAttributeId)
    
    u"""Удаление выбранного аттрибута"""
    attribute.delete()
    
    context.message(u"Данные удалены")

