# coding: utf-8

import json

from ru.curs.celesta.showcase.utils import XMLJSONConverter
from umk._umk_orm import specialityCursor


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


def cardData(context, main=None, add=None, filterinfo=None, session=None, elementId=None):
    u'''Данные для карточки.'''

    string_bool = lambda x: x and 'true' or 'false'

    # Структура данных
    xforms_data = {
        'schema': {
            '@xmlns': '',
            'data': {
                'form_text': 'Вы действительно хотите удалить эту специальность?'
            }
        }
    }

    # Первоначальная xforms_settings
    xforms_settings = {
        'properties': {
            'event': [
                {
                    '@name': 'single_click',
                    '@linkId': '1',
                    'action': {
                        '@keep_user_settings': string_bool(True),
                        '#sorted': [
                          {'main_context': 'current'},
                          {'datapanel': {
                              '@type': 'current',
                              '@tab': 'current',
                              'element': {
                                  '@id': 'specialitiesGrid',
                                  'add_context': ''
                              }
                          }}]
                    }
                }
            ]
        }
    }

    return JythonDTO(XMLJSONConverter.jsonToXml(json.dumps(xforms_data)),
                     XMLJSONConverter.jsonToXml(json.dumps(xforms_settings)))


def cardSave(context, main=None, add=None, filterinfo=None, session=None, elementId=None, xformsdata=None):
    u'''Сохранение карточки. '''

    specialities = specialityCursor(context)
    current_id = json.loads(session)['sessioncontext']['related']['gridContext']['currentRecordId']
    specialities.get(current_id)
    specialities.delete()

def checkSpecialitiesUsage(context, current_id):
    u'''Проверяет где используется специальность. '''

    return False