def cardDataSave(context, main=None, add=None, filterinfo=None, session=None, elementId=None, xformsdata=None): u'''Функция сохранения карточки редактирования содержимого справочника разрешений. ''' permissions = PermissionsCursor(context) content = json.loads(xformsdata)["schema"] # for field in permissions.meta().getColumns(): # permissions.__setattr__(field, content[field]) permissions.roleid = content["roleid"] permissions.grainid = content["grainid"] permissions.tablename = content["tablename"] permissions.r = content["r"] == "true" permissions.i = content["i"] == "true" permissions.m = content["m"] == "true" permissions.d = content["d"] == "true" if add == 'add' and permissions.canInsert() and permissions.canModify(): if not permissions.tryInsert(): permissionsOld = PermissionsCursor(context) permissionsOld.get(content["roleid"], content["grainid"], content["tablename"]) permissionsOld.r = content["r"] == "true" permissionsOld.i = content["i"] == "true" permissionsOld.m = content["m"] == "true" permissionsOld.d = content["d"] == "true" permissionsOld.update() elif add == 'add' and permissions.canInsert(): permissions.insert() elif add == 'edit' and permissions.canModify(): permissionsOld = PermissionsCursor(context) currIdEncoded = json.loads(session)['sessioncontext']['related'][ 'gridContext']['currentRecordId'] currId = json.loads(base64.b64decode(currIdEncoded)) permissionsOld.get(*currId) if permissionsOld.roleid==permissions.roleid and \ permissionsOld.grainid==permissions.grainid and \ permissionsOld.tablename==permissions.tablename: permissions.recversion = permissionsOld.recversion permissions.update() elif permissions.canInsert(): permissions.insert() permissionsOld.delete() else: raise CelestaException(u"Недостаточно прав для данной операции!") else: raise CelestaException(u"Недостаточно прав для данной операции!")
def cardData(context, main=None, add=None, filterinfo=None, session=None, elementId=None): u'''Функция данных для карточки редактирования содержимого таблицы разрешения. ''' permissions = PermissionsCursor(context) if add == 'add': formData = json.loads(session)['sessioncontext']['related'][ "xformsContext"]["formData"]["schema"] xformsdata = { "schema": { "roleid": formData["roleid"], "grainid": formData["grainid"], "tablename": formData["tablename"], "r": "", "i": "", "m": "", "d": "" } } elif add == 'edit': currIdEncoded = json.loads(session)['sessioncontext']['related'][ 'gridContext']['currentRecordId'] currId = json.loads(base64.b64decode(currIdEncoded)) permissions.get(*currId) xformsdata = { "schema": { "roleid": permissions.roleid, "grainid": permissions.grainid, "tablename": permissions.tablename, "r": unicode(permissions.r).lower(), "i": unicode(permissions.i).lower(), "m": unicode(permissions.m).lower(), "d": unicode(permissions.d).lower() } } # print xformsdata xformssettings = { "properties": { "event": { "@name": "single_click", "@linkId": "1", "action": { "#sorted": [{ "main_context": "current" }, { "datapanel": { "@type": "current", "@tab": "current", "element": { "@id": "permGrid", "add_context": "" } } }] } } } } return JythonDTO(XMLJSONConverter.jsonToXml(json.dumps(xformsdata)), XMLJSONConverter.jsonToXml(json.dumps(xformssettings)))