[IMP] Improved res widget per user.
authorvda (Open ERP) <vda@tinyerp.com>
Fri, 15 Oct 2010 15:00:18 +0000 (20:30 +0530)
committervda (Open ERP) <vda@tinyerp.com>
Fri, 15 Oct 2010 15:00:18 +0000 (20:30 +0530)
bzr revid: vda@tinyerp.com-20101015150018-1hdbak0wue5loiqa

bin/addons/base/__openerp__.py
bin/addons/base/ir/ir_ui_menu.py
bin/addons/base/res/__init__.py
bin/addons/base/res/res_widget.py
bin/addons/base/res/res_widget_view.xml
bin/addons/base/res/res_widget_wizard.py [new file with mode: 0644]
bin/addons/base/res/res_widget_wizard_view.xml [new file with mode: 0644]

index 2bf126f..d2536b0 100644 (file)
@@ -75,6 +75,7 @@
 
         'security/ir.model.access.csv',
         'res/res_widget_view.xml',
+        'res/res_widget_wizard_view.xml',
     ],
     'demo_xml': [
         'base_demo.xml',
index ec92307..6a6f391 100644 (file)
@@ -260,6 +260,8 @@ class ir_ui_menu(osv.osv):
                 return False
             level -= 1
         return True
+    
+    
 
     _columns = {
         'name': fields.char('Menu', size=64, required=True, translate=True),
@@ -289,7 +291,7 @@ class ir_ui_menu(osv.osv):
     _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()
index 1536f8b..313897a 100644 (file)
@@ -34,4 +34,5 @@ import res_lang
 import res_log 
 import ir_property
 import res_widget
+import res_widget_wizard
 
index a152a6b..0c92948 100644 (file)
 ##############################################################################
 
 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()
index 7ddd5a0..9a3acce 100644 (file)
             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>
diff --git a/bin/addons/base/res/res_widget_wizard.py b/bin/addons/base/res/res_widget_wizard.py
new file mode 100644 (file)
index 0000000..c5acd1b
--- /dev/null
@@ -0,0 +1,38 @@
+# -*- 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
diff --git a/bin/addons/base/res/res_widget_wizard_view.xml b/bin/addons/base/res/res_widget_wizard_view.xml
new file mode 100644 (file)
index 0000000..6fa4fd7
--- /dev/null
@@ -0,0 +1,18 @@
+<?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