# coding: utf-8 ''' Created on 13 нояб. 2017 г. @author: dgulyakin ''' import json from ru.curs.celesta.showcase.utils import XMLJSONConverter from nci._nci_orm import global_settingsCursor from nci import generalSettings try: from ru.curs.showcase.core.jython import JythonDTO except: from ru.curs.celesta.showcase import JythonDTO def cardData(context, main=None, add=None, filterinfo=None, session=None, elementId=None): u'''Карточка глобальных параметров''' xformsdata = {"schema": {"@xmlns":"", "#sorted": []}} global_settings = global_settingsCursor(context) for item in global_settings.iterate(): xformsdata["schema"]["#sorted"].append({"param": { "@id": item.id, "name": item.name, "value": item.value}}) global_settings.close() xformssettings = {"properties": { "event": [ {"@name":"single_click", "@linkId": "1", "action": { '#sorted': [ {"main_context": "current"}, {"datapanel": {"@type": "current", "@tab": "current", "element": { "@id":"globalSettings", "add_context": ""}}}]}}]}} return JythonDTO(XMLJSONConverter.jsonToXml(json.dumps(xformsdata)), XMLJSONConverter.jsonToXml(json.dumps(xformssettings))) def cardSave(context, main=None, add=None, filterinfo=None, session=None, elementId=None, xformsdata=None): u'''Сохранение глобальных параметров''' global_settings = global_settingsCursor(context) data = json.loads(xformsdata)["schema"]["param"] if isinstance(data, dict): data = [data] for param in data: if global_settings.tryGet(param['@id']): global_settings.value = param['value'] global_settings.update() global_settings.close() generalSettings.globalSettings = {} context.message(u'Настройки успешно изменены')