# coding: utf-8


import json

try:
    from ru.curs.showcase.core.jython import JythonDTO
except:
    from ru.curs.celesta.showcase import JythonDTO
from ru.curs.celesta.showcase.utils import XMLJSONConverter
from security._security_orm import subjectsCursor, loginsCursor

def cardData(context, main, add, filterinfo=None, session=None, elementId=None):
    xformsdata = {"schema":{"@xmlns":""}}
    xformssettings = {"properties":{"event":{"@name":"single_click",
                                             "@linkId": "1",
                                             "action":{"@name":"single_click",
                                                       "#sorted":[{"main_context": "current"},                                                                  
                                                                  {"datapanel": {"@type": "current",
                                                                                "@tab": "current",
                                                                                "element": {"@id":"subjectsGrid",
                                                                                            "add_context": ""
                                                                                            }
                                                                                }
                                                                  }]
                                                       }
                                             }
                                    }
                      }
    jsonData = XMLJSONConverter.jsonToXml(json.dumps(xformsdata))
    jsonSettings = XMLJSONConverter.jsonToXml(json.dumps(xformssettings))
    return JythonDTO(jsonData, jsonSettings)

def cardDelete(context, main=None, add=None, filterinfo=None, session=None, elementId=None, xformsdata=None):    
    currId=json.loads(session)['sessioncontext']['related']['gridContext']["currentRecordId"]        
    subject = subjectsCursor(context)
    login = loginsCursor(context)
    subject.get(currId)
    login.setRange('subjectId', subject.sid)
    for login in login.iterate():
        login.subjectId=None
        login.update()
    subject.delete()