bugfixes_in_flight

bzr revid: fp@tinyerp.com-20081211081931-z2f8y6fuqk7hf65x
This commit is contained in:
Fabien Pinckaers 2008-12-11 09:19:31 +01:00
parent 720126aeec
commit f3e7dc68d3
9 changed files with 121 additions and 77 deletions

View File

@ -2,7 +2,11 @@
<openerp>
<data>
<menuitem icon="terp-administration" id="menu_administration" name="Administration" sequence="20"/>
<menuitem id="menu_custom" name="Custom" parent="base.menu_administration" sequence="2"/>
<menuitem id="next_id_4" name="Low Level Objects" parent="base.menu_administration" sequence="3"/>
<menuitem id="menu_low_workflow" name="Workflow Items" parent="base.next_id_4"/>
<menuitem id="menu_custom" name="Customization" parent="base.menu_administration" sequence="2"/>
<menuitem id="menu_custom_action" name="Actions" parent="base.menu_custom" sequence="20"/>
<menuitem id="menu_config" name="Configuration" parent="base.menu_administration" sequence="1"/>
<menuitem id="menu_translation" name="Translations" parent="base.menu_administration" sequence="4"/>
<menuitem id="menu_translation_app" name="Application Terms" parent="base.menu_translation" sequence="4"/>
<menuitem id="menu_translation_export" name="Import / Export" parent="base.menu_translation" sequence="4"/>

View File

@ -6,7 +6,7 @@
Languages
======================
-->
<menuitem id="next_id_2" name="Interface" parent="base.menu_custom"/>
<menuitem id="next_id_2" name="User Interface" parent="base.menu_custom"/>
<!--
======================

View File

@ -41,7 +41,7 @@
</record>
<record id="act_values_form" model="ir.actions.act_window">
<field name="name">Values</field>
<field name="name">Client Actions Connections</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.values</field>
<field name="view_type">form</field>
@ -49,7 +49,6 @@
<field name="context">{'read':'default'}</field>
</record>
<menuitem id="next_id_4" name="Low Level" parent="menu_custom"/>
<menuitem action="act_values_form" id="menu_values_form" parent="next_id_4"/>
<!-- Sequences -->
@ -114,7 +113,7 @@
<field name="view_id" ref="sequence_view_tree"/>
<field name="context">{'active_test': False}</field>
</record>
<menuitem id="next_id_5" name="Sequences" parent="base.menu_custom"/>
<menuitem id="next_id_5" name="Sequences" parent="base.menu_config"/>
<menuitem action="ir_sequence_form" id="menu_ir_sequence_form" parent="next_id_5"/>
<!-- Sequences Types -->
@ -464,7 +463,7 @@
<field name="model">ir.ui.view</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="User Interface - Views">
<form string="Views">
<field name="name" select="1"/>
<field name="type" select="1"/>
<field name="model" select="1"/>
@ -480,7 +479,7 @@
<field name="model">ir.ui.view</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree>
<tree string="Views">
<field name="name"/>
<field name="type"/>
<field name="model"/>
@ -488,7 +487,7 @@
</field>
</record>
<record id="action_ui_view" model="ir.actions.act_window">
<field name="name">View</field>
<field name="name">Views</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.ui.view</field>
<field name="view_id" ref="view_view_tree"/>
@ -719,7 +718,7 @@
</page>
<page string="Access Rights">
<field colspan="4" name="access_ids" select="1" nolabel="1">
<tree string="Access Rules" editable="bottom" colspan="4">
<tree string="Access Rules" editable="bottom">
<field name="group_id"/>
<field name="perm_read"/>
<field name="perm_write"/>
@ -786,7 +785,7 @@
<field name="on_delete" attrs="{'readonly': [('ttype','!=','many2one')]}"/>
</group>
</page>
<page string="Security on Groups" colspan="4">
<page string="Security on Groups">
<field name="groups" colspan="4" nolabel="1"/>
</page>
</notebook>
@ -933,7 +932,7 @@
</field>
</record>
<record id="grant_menu_access" model="ir.actions.act_window">
<field name="name">Grant access to menu</field>
<field name="name">Grant Access To Menus</field>
<field name="res_model">ir.ui.menu</field>
<field name="view_type">form</field>
<field name="view_id" ref="edit_menu"/>
@ -991,7 +990,7 @@
<field name="context">{'active_test': False}</field>
<field name="view_id" ref="ir_cron_view_tree"/>
</record>
<menuitem id="next_id_10" name="Scheduler" parent="base.menu_custom"/>
<menuitem id="next_id_10" name="Scheduler" parent="base.menu_config"/>
<menuitem action="ir_cron_act" id="menu_ir_cron_act" parent="next_id_10"/>
@ -1175,12 +1174,12 @@
<tree string="Field Mappings" editable="top">
<field name="col1" domain="[('model_id','=',parent.srcmodel_id or parent.model_id)]"/>
<field name="type"/>
<field name="value" colsapan="4"/>
<field name="value" colspan="4"/>
</tree>
<form string="Field Mapping">
<field name="col1" domain="[('model_id','=',parent.srcmodel_id or parent.model_id)]"/>
<field name="type"/>
<field name="value" colsapan="4"/>
<field name="value" colspan="4"/>
</form>
</field>
<label colspan="4" string="If you use a formula type, use a python expression using the variable 'object'." align="0.0"/>
@ -1218,7 +1217,7 @@
<field name="view_id" ref="view_server_action_tree"/>
<field name="context">{'key':'server_action'}</field>
</record>
<menuitem action="action_server_action" id="menu_server_action" parent="base.next_id_6"/>
<menuitem action="action_server_action" id="menu_server_action" parent="base.menu_custom_action"/>
<record id="view_model_fields_tree" model="ir.ui.view">
<field name="name">ir.model.fields.tree</field>
@ -1278,7 +1277,8 @@
<field name="view_type">form</field>
<field name="domain">[('type','=','configure')]</field>
</record>
<menuitem id="next_id_11" name="Configuration Wizards" parent="base.menu_custom"/><menuitem action="act_ir_actions_todo_form" id="menu_ir_actions_todo_form" parent="next_id_11"/>
<menuitem id="next_id_11" name="Configuration Wizards" parent="base.menu_config" sequence="1"/>
<menuitem action="act_ir_actions_todo_form" id="menu_ir_actions_todo_form" parent="next_id_11"/>
<record id="view_config_wizard_form" model="ir.ui.view">
<field name="name">Main Configuration Wizard</field>

View File

@ -27,7 +27,6 @@ import netsvc
import os
def _check_xml(self, cr, uid, ids, context={}):
return True
for view in self.browse(cr, uid, ids, context):
eview = etree.fromstring(view.arch)
frng = tools.file_open(os.path.join('base','rng','view.rng'))

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem id="menu_workflow_root" name="Workflows" parent="menu_custom"/>
<menuitem id="menu_workflow_root" name="Workflow Definitions" parent="menu_custom"/>
<!--
================================
@ -110,7 +110,7 @@
</record>
<record id="action_workflow_activity_form" model="ir.actions.act_window">
<field name="name">Activites</field>
<field name="name">Activities</field>
<field name="res_model">workflow.activity</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_workflow_activity_tree"/>
@ -207,7 +207,7 @@
<field name="view_type">form</field>
<field name="view_id" ref="view_workflow_instance_tree"/>
</record>
<menuitem action="action_workflow_instance_form" id="menu_workflow_instance" parent="base.menu_workflow_root"/>
<menuitem action="action_workflow_instance_form" id="menu_workflow_instance" parent="base.menu_low_workflow"/>
<!--
================================
@ -248,7 +248,7 @@
<field name="view_type">form</field>
<field name="view_id" ref="view_workflow_workitem_tree"/>
</record>
<menuitem action="action_workflow_workitem_form" id="menu_workflow_workitem" parent="base.menu_workflow_root"/>
<menuitem action="action_workflow_workitem_form" id="menu_workflow_workitem" parent="base.menu_low_workflow"/>
</data>
</openerp>

View File

@ -107,49 +107,33 @@ class module(osv.osv):
res[m.id] = ''
return res
def _get_menus(self, cr, uid, ids, field_name=None, arg=None, context={}):
res = {}
model_data_obj = self.pool.get('ir.model.data')
menu_obj = self.pool.get('ir.ui.menu')
for m in self.browse(cr, uid, ids):
if m.state == 'installed':
menu_txt = ''
menus_id = model_data_obj.search(cr,uid,[('module','=',m.name),('model','=','ir.ui.menu')])
for data_id in model_data_obj.browse(cr,uid,menus_id):
menu_txt += menu_obj.browse(cr,uid,data_id.res_id).complete_name + '\n'
res[m.id] = menu_txt
else:
res[m.id] = ''
return res
def _get_reports(self, cr, uid, ids, field_name=None, arg=None, context={}):
res = {}
model_data_obj = self.pool.get('ir.model.data')
report_obj = self.pool.get('ir.actions.report.xml')
for m in self.browse(cr, uid, ids):
if m.state == 'installed':
report_txt = ''
report_id = model_data_obj.search(cr,uid,[('module','=',m.name),('model','=','ir.actions.report.xml')])
for data_id in model_data_obj.browse(cr,uid,report_id):
report_txt += report_obj.browse(cr,uid,data_id.res_id).name + '\n'
res[m.id] = report_txt
else:
res[m.id] = ''
return res
def _get_views(self, cr, uid, ids, field_name=None, arg=None, context={}):
res = {}
model_data_obj = self.pool.get('ir.model.data')
view_obj = self.pool.get('ir.ui.view')
for m in self.browse(cr, uid, ids, context=context):
if m.state == 'installed':
view_txt = ''
view_id = model_data_obj.search(cr,uid,[('module','=',m.name),('model','=','ir.ui.view')])
for data_id in model_data_obj.browse(cr,uid,view_id):
view_txt += view_obj.browse(cr,uid,data_id.res_id).name + '\n'
res[m.id] = view_txt
else:
res[m.id] = ''
report_obj = self.pool.get('ir.actions.report.xml')
menu_obj = self.pool.get('ir.ui.menu')
mlist = self.browse(cr, uid, ids, context=context)
mnames = {}
for m in mlist:
mnames[m.name] = m.id
res[m.id] = {
'menus_by_module':'',
'reports_by_module':'',
'views_by_module': ''
}
view_id = model_data_obj.search(cr,uid,[('module','in', mnames.keys()),
('model','in',('ir.ui.view','ir.actions.report.xml','ir.ui.menu'))])
for data_id in model_data_obj.browse(cr,uid,view_id,context):
key = data_id['model']
if key=='ir.ui.view':
v = view_obj.browse(cr,uid,data_id.res_id)
aa = v.inherit_id and '* INHERIT ' or ''
res[mnames[data_id.module]]['views_by_module'] += aa + v.name + ' ('+v.type+')\n'
elif key=='ir.actions.report.xml':
res[mnames[data_id.module]]['reports_by_module'] += report_obj.browse(cr,uid,data_id.res_id).name + '\n'
elif key=='ir.ui.menu':
res[mnames[data_id.module]]['menus_by_module'] += menu_obj.browse(cr,uid,data_id.res_id).complete_name + '\n'
return res
_columns = {
@ -182,9 +166,9 @@ class module(osv.osv):
('GPL-3 or any later version', 'GPL-3 or later version'),
('Other proprietary', 'Other proprietary')
], string='License', readonly=True),
'menus_by_module': fields.function(_get_menus, method=True, string='Menus', type='text'),
'reports_by_module': fields.function(_get_reports, method=True, string='Reports', type='text'),
'views_by_module': fields.function(_get_views, method=True, string='Views', type='text'),
'menus_by_module': fields.function(_get_views, method=True, string='Menus', type='text', multi="meta"),
'reports_by_module': fields.function(_get_views, method=True, string='Reports', type='text', multi="meta"),
'views_by_module': fields.function(_get_views, method=True, string='Views', type='text', multi="meta"),
}
_defaults = {

View File

@ -137,6 +137,13 @@
</tr>
</blockTable>
<para style="P6">[[ format(module.description or '') ]]</para>
<h1>Menus</h1>
<para style="P6">[[ format(module.menus_by_module or '') ]]</para>
<h1>Reports</h1>
<para style="P6">[[ format(module.reports_by_module or '') ]]</para>
<h1>Views</h1>
<para style="P6">[[ format(module.views_by_module or '') ]]</para>
<h1>Objects</h1>
<section>
<para style="Standard">[[ repeatIn(findobj(module.name) ,'object') ]]</para>
<blockTable colWidths="510.0" repeatRows="1" style="Tableau3">

View File

@ -38,7 +38,8 @@
<field name="domain">[('res_id','=',False)]</field>
<field name="view_id" ref="ir_property_view_tree"/>
</record>
<menuitem id="next_id_15" name="Properties" parent="base.menu_custom"/><menuitem action="ir_property_form" id="menu_ir_property_form" parent="next_id_15"/>
<menuitem id="next_id_15" name="Properties" parent="base.menu_config"/>
<menuitem action="ir_property_form" id="menu_ir_property_form" parent="next_id_15"/>
<record id="ir_property_form_all" model="ir.actions.act_window">
<field name="name">All Properties</field>

View File

@ -7,6 +7,7 @@
<rng:optional><rng:attribute name="editable"/></rng:optional>
<rng:optional><rng:attribute name="type"/></rng:optional>
<rng:optional><rng:attribute name="position"/></rng:optional>
<rng:optional><rng:attribute name="link"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="notebook"/>
@ -33,6 +34,7 @@
<rng:optional><rng:attribute name="editable"/></rng:optional>
<rng:optional><rng:attribute name="toolbar"/></rng:optional>
<rng:optional><rng:attribute name="position"/></rng:optional>
<rng:optional><rng:attribute name="link"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="field"/>
@ -60,6 +62,31 @@
</rng:element>
</rng:define>
<rng:define name="level">
<rng:element name="level">
<rng:optional><rng:attribute name="object"/></rng:optional>
<rng:optional><rng:attribute name="link"/></rng:optional>
<rng:optional><rng:attribute name="domain"/></rng:optional>
<rng:oneOrMore>
<rng:optional><rng:ref name="field"/></rng:optional>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="gantt">
<rng:element name="gantt">
<rng:optional><rng:attribute name="color"/></rng:optional>
<rng:optional><rng:attribute name="date_delay"/></rng:optional>
<rng:optional><rng:attribute name="date_start"/></rng:optional>
<rng:optional><rng:attribute name="date_string"/></rng:optional>
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:zeroOrMore>
<rng:optional><rng:ref name="level"/></rng:optional>
<rng:optional><rng:ref name="field"/></rng:optional>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="hpaned">
<rng:element name="hpaned">
<rng:optional><rng:attribute name="position"/></rng:optional>
@ -123,6 +150,17 @@
<rng:optional><rng:attribute name="col"/></rng:optional>
<rng:optional><rng:attribute name="select"/></rng:optional>
<rng:optional><rng:attribute name="position"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="separator"/>
<rng:ref name="button"/>
<rng:ref name="field"/>
<rng:ref name="label" />
<rng:ref name="group" />
<rng:element name="properties"><rng:empty/></rng:element>
<rng:element name="newline"><rng:empty/></rng:element>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
@ -132,9 +170,10 @@
<rng:optional><rng:attribute name="position"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="notebook" />
<rng:ref name="graph" />
<rng:ref name="calendar" />
<rng:ref name="notebook" />
<rng:ref name="graph" />
<rng:ref name="calendar" />
<rng:ref name="gantt" />
<rng:ref name="form"/>
<rng:ref name="tree"/>
<rng:ref name="field"/>
@ -181,13 +220,18 @@
<rng:optional><rng:attribute name="digits"/></rng:optional>
<rng:optional><rng:attribute name="icon"/></rng:optional>
<rng:optional><rng:attribute name="mode"/></rng:optional>
<rng:optional><rng:attribute name="img_width"/></rng:optional>
<rng:optional><rng:attribute name="img_height"/></rng:optional>
<rng:optional><rng:attribute name="size"/></rng:optional>
<rng:optional><rng:attribute name="filename"/></rng:optional>
<rng:optional><rng:attribute name="fieldname"/></rng:optional>
<rng:optional><rng:attribute name="height"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="form"/>
<rng:ref name="tree"/>
<rng:ref name="field"/>
<rng:ref name="label"/>
<rng:ref name="separator"/>
<rng:ref name="xpath"/>
<rng:ref name="button"/>
@ -203,12 +247,14 @@
<rng:optional><rng:attribute name="attrs"/></rng:optional>
<rng:optional><rng:attribute name="col"/></rng:optional>
<rng:optional><rng:attribute name="colspan"/></rng:optional>
<rng:optional><rng:attribute name="position"/></rng:optional>
<rng:optional><rng:attribute name="expand"/></rng:optional>
<rng:optional><rng:attribute name="states"/></rng:optional>
<rng:optional><rng:attribute name="groups"/></rng:optional>
<rng:optional><rng:attribute name="string"/></rng:optional>
<rng:optional><rng:attribute name="fill"/></rng:optional>
<rng:optional><rng:attribute name="height"/></rng:optional>
<rng:optional><rng:attribute name="name"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="separator"/>
@ -265,16 +311,17 @@
<rng:optional><rng:attribute name="position"/></rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="form" />
<rng:ref name="field" />
<rng:ref name="tree" />
<rng:ref name="notebook" />
<rng:ref name="graph" />
<rng:ref name="calendar" />
<rng:ref name="xpath" />
<rng:ref name="page" />
<rng:ref name="separator"/>
<rng:ref name="button"/>
<rng:ref name="form" />
<rng:ref name="field" />
<rng:ref name="tree" />
<rng:ref name="notebook" />
<rng:ref name="graph" />
<rng:ref name="calendar" />
<rng:ref name="gantt" />
<rng:ref name="xpath" />
<rng:ref name="page" />
<rng:ref name="separator"/>
<rng:ref name="button"/>
<rng:element name="properties"><rng:empty/></rng:element>
<rng:element name="newline"><rng:empty/></rng:element>
</rng:choice>
@ -286,11 +333,13 @@
<rng:start>
<rng:choice>
<rng:ref name="form" />
<rng:ref name="group" />
<rng:ref name="field" />
<rng:ref name="tree" />
<rng:ref name="notebook" />
<rng:ref name="graph" />
<rng:ref name="calendar" />
<rng:ref name="gantt" />
<rng:ref name="xpath" />
<rng:ref name="page" />
<rng:ref name="separator"/>