'security/ir.model.access.csv',
'res/res_widget_view.xml',
+ 'res/res_widget_wizard_view.xml',
],
'demo_xml': [
'base_demo.xml',
return False
level -= 1
return True
+
+
_columns = {
'name': fields.char('Menu', size=64, required=True, translate=True),
_defaults = {
'icon' : lambda *a: 'STOCK_OPEN',
'icon_pict': lambda *a: ('stock', ('STOCK_OPEN','ICON_SIZE_MENU')),
- 'sequence' : lambda *a: 10
+ 'sequence' : lambda *a: 10,
}
_order = "sequence,id"
ir_ui_menu()
import res_log
import ir_property
import res_widget
+import res_widget_wizard
##############################################################################
from osv import fields,osv
-
class res_widget(osv.osv):
_name = "res.widget"
+res_widget()
+
+class res_widget_user(osv.osv):
+ _name="res.widget.user"
+ _columns = {
+ 'sequence': fields.integer('Sequence'),
+ 'user_id': fields.one2many('res.users', 'widget_user', 'Users'),
+ 'widget_id': fields.one2many('res.widget', 'widget_res', 'Widgets'),
+ }
+res_widget_user()
+
+class res_users(osv.osv):
+ _inherit = 'res.users'
+ _columns = {
+ 'widget_user': fields.many2one('res.widget.user', 'Widget User'),
+ }
+res_users()
+
+class res_widget(osv.osv):
+ _inherit = "res.widget"
_rec_name = "title"
_columns = {
'title' : fields.char('Title', size=64, required=True),
- 'content': fields.text('Content', required=True)
+ 'content': fields.text('Content', required=True),
+ 'widget_res': fields.many2one('res.widget.user', 'Widget')
}
res_widget()
id="menu_res_widget_act_window"
parent="base.next_id_2"
/>
+
+ <record id="res_widget_user_tree" model="ir.ui.view">
+ <field name="name">res.widget.user.tree</field>
+ <field name="model">res.widget.user</field>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <tree string="User Widgets">
+ <field name="sequence"/>
+ <field name="user_id"/>
+ <field name="widget_id"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="res_widget_user_form" model="ir.ui.view">
+ <field name="name">res.widget.user.form</field>
+ <field name="model">res.widget.user</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="User Widgets">
+ <field name="sequence"/>
+ <field name="user_id"/>
+ <field name="widget_id"/>
+ </form>
+ </field>
+ </record>
+
+ <record id="res_widget_user_act_window" model="ir.actions.act_window">
+ <field name="name">Res user Widgets</field>
+ <field name="res_model">res.widget.user</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ </record>
+
+ <menuitem
+ action="res_widget_user_act_window"
+ id="menu_res_widget_user_act_window"
+ parent="base.menu_users"
+ />
+
+ <act_window name="Res Widget Wizard"
+ res_model="res.widget.wizard"
+ src_model="res.widget.user"
+ view_mode="form"
+ target="new"
+ key2="client_action_multi"
+ id="action_res_widget_wizard"/>
+
</data>
</openerp>
--- /dev/null
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+from osv import fields, osv
+
+class res_widget_wizard(osv.osv_memory):
+ _name = "res.widget.wizard"
+ _description = "Res Widget Wizard"
+
+ _columns = {
+ 'res_widget': fields.one2many("res.widget", 'widget_res', 'Res Widget', required=True),
+ }
+
+ def res_widget_add(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ res_widget = self.read(cr, uid, ids)[0]
+ self.pool.get('res.widget').write(cr, uid, res_widget['res_widget'],{'widget_res':context['active_ids'][0]})
+ return {}
+
+res_widget_wizard()
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <record id="view_res_widget_wizard" model="ir.ui.view">
+ <field name="name">Res Widget Wizard</field>
+ <field name="model">res.widget.wizard</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Res Widget" col="4">
+ <field name="res_widget"/>
+ <newline/>
+ <button name="res_widget_add" string="Add Widget" type="object"/>
+ </form>
+ </field>
+ </record>
+ </data>
+</openerp>
\ No newline at end of file