def gridMeta(context, main=None, add=None, filterinfo=None, session=None, elementId=None): u'''Функция получения настроек грида. ''' # Курсор таблицы directories roles = RolesCursor(context) # Вычисляем количества записей в таблице specialRoles = ["!'editor'", "!'reader'"] roles.setFilter("id", '&'.join(specialRoles)) totalcount = roles.count() # Заголовок таблицы header = "Роли" _header = {"id": [u"Роль"], "description": [u"Описание"], } # Определяем список полей таблицы для отображения settings = {} settings["gridsettings"] = {"columns": {"col": []}, "properties": {"@pagesize":"50", "@gridWidth": "100%", "@gridHeight": getGridHeight(session, numberOfGrids=1.6, delta=35), "@totalCount": totalcount, "@profile": "default.properties"}, "labels": {"header": header} } # Добавляем поля для отображения в gridsettings settings["gridsettings"]["columns"]["col"].append({"@id": _header["id"][0], "@width": "80px"}) settings["gridsettings"]["columns"]["col"].append({"@id": _header["description"][0], "@width": "400px"}) res = XMLJSONConverter.jsonToXml(json.dumps(settings)) return JythonDTO(None, res)
def rolesCount(context, main=None, add=None, filterinfo=None, session=None, params=None, curvalue="", startswith=False): roles = RolesCursor(context) roles.setFilter( 'description', "@%s'%s'%%" % ("%" * (not startswith), curvalue.replace("'", "''"))) count = roles.count() # raise Exception(count) return ResultSelectorData(None, count)
def rolesCount(context, main=None, add=None, filterinfo=None, session=None, params=None, curvalue=None, startswith=None): u'''Функция count для селектора выбора ролей. ''' #specialRoles = ["!'editor'", "!'reader'"] roles = RolesCursor(context) roles.setFilter( 'id', """!'editor'&!'reader'&@%s'%s'%%""" % ("%" * (not startswith), curvalue.replace("'", "''"))) count = roles.count() return ResultSelectorData(None, count)
def gridMeta(context, main=None, add=None, filterinfo=None, session=None, elementId=None): u'''Функция получения настроек грида. ''' roles = RolesCursor(context) # Вычисляем количества записей в таблице totalcount = roles.count() # Заголовок таблицы header = "Роли" _header = { "id": ["~~id"], "roleId": [u"Роль"], "description": [u"Описание"], "exists": [u" "], "properties": [u"properties"] } # Определяем список полей таблицы для отображения settings = {} currentDatapanelHeight = int( json.loads(session)["sessioncontext"]["currentDatapanelHeight"]) # Вычисляем numberOfGrids, где 2.1 - numberOfGrids для первого грида customPermissions.py из датапанели # 60 - gridHeaderHeight для обоих гридов, 134 - суммарная дельта numberOfGrids = ((currentDatapanelHeight - 60) * 2.1) / ( 2.1 * currentDatapanelHeight - 2.1 * 134 - currentDatapanelHeight + 60) settings["gridsettings"] = { "columns": { "col": [] }, "properties": { "@pagesize": "50", "@gridWidth": "100%", "@gridHeight": getGridHeight(session, numberOfGrids, 60, 67), "@totalCount": totalcount, "@profile": "editableGrid.properties" }, "labels": { "header": header } } # Добавляем поля для отображения в gridsettings settings["gridsettings"]["columns"]["col"].append({ "@id": _header["exists"][0], "@width": "33px", "@readonly": "false", "@editor": "{editor: 'checkbox'}" }) settings["gridsettings"]["columns"]["col"].append({ "@id": _header["roleId"][0], "@width": "80px", "@readonly": "true" }) settings["gridsettings"]["columns"]["col"].append({ "@id": _header["description"][0], "@width": "400px", "@readonly": "true" }) res = XMLJSONConverter.jsonToXml(json.dumps(settings)) return JythonDTO(None, res)