本文整理汇总了Python中trytond.transaction.Transaction.limit_clause方法的典型用法代码示例。如果您正苦于以下问题:Python Transaction.limit_clause方法的具体用法?Python Transaction.limit_clause怎么用?Python Transaction.limit_clause使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trytond.transaction.Transaction
的用法示例。
在下文中一共展示了Transaction.limit_clause方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: startElement
# 需要导入模块: from trytond.transaction import Transaction [as 别名]
# 或者: from trytond.transaction.Transaction import limit_clause [as 别名]
def startElement(self, name, attributes):
cursor = Transaction().cursor
values = {}
self.xml_id = attributes['id']
for attr in ('name', 'icon', 'sequence', 'parent', 'action', 'groups'):
if attributes.get(attr):
values[attr] = attributes.get(attr)
if attributes.get('active'):
values['active'] = bool(safe_eval(attributes['active']))
if values.get('parent'):
values['parent'] = self.mh.get_id(values['parent'])
action_name = None
if values.get('action'):
action_id = self.mh.get_id(values['action'])
# TODO maybe use a prefetch for this:
cursor.execute(cursor.limit_clause(
"SELECT a.name, a.type, v.type, v.field_childs, icon.name " \
"FROM ir_action a " \
"LEFT JOIN ir_action_report report ON (a.id = report.action) "\
"LEFT JOIN ir_action_act_window act ON (a.id = act.action) " \
"LEFT JOIN ir_action_wizard wizard ON (a.id = wizard.action) "\
"LEFT JOIN ir_action_url url ON (a.id = url.action) " \
"LEFT JOIN ir_action_act_window_view wv ON " \
"(act.id = wv.act_window) " \
"LEFT JOIN ir_ui_view v ON (v.id = wv.view) " \
"LEFT JOIN ir_ui_icon icon ON (a.icon = icon.id) " \
"WHERE report.id = %s " \
"OR act.id = %s " \
"OR wizard.id = %s " \
"OR url.id = %s " \
"ORDER by wv.sequence", 1),
(action_id, action_id, action_id, action_id))
action_name, action_type, view_type, field_childs, icon_name = \
cursor.fetchone()
values['action'] = '%s,%s' % (action_type, action_id)
icon = attributes.get('icon', '')
if icon:
values['icon'] = icon
elif icon_name:
values['icon'] = icon_name
elif action_type == 'ir.action.wizard':
values['icon'] = 'tryton-executable'
elif action_type == 'ir.action.report':
values['icon'] = 'tryton-print'
elif action_type == 'ir.action.act_window':
if view_type == 'tree':
if field_childs:
values['icon'] = 'tryton-tree'
else:
values['icon'] = 'tryton-list'
elif view_type == 'form':
values['icon'] = 'tryton-new'
elif view_type == 'graph':
values['icon'] = 'tryton-graph'
elif view_type == 'calendar':
values['icon'] = 'tryton-calendar'
elif action_type == 'ir.action.url':
values['icon'] = 'tryton-web-browser'
else:
values['icon'] = 'tryton-new'
if values.get('groups'):
raise Exception("Please use separate records for groups")
if not values.get('name'):
if not action_name:
raise Exception("Please provide at least a 'name' attributes "
"or a 'action' attributes on the menuitem tags.")
else:
values['name'] = action_name
self.values = values