[IMP] remove action elements on boards respectively to the groups attributes + HR...
authorFrançois Degrave <fde@openerp.com>
Thu, 30 Dec 2010 15:03:40 +0000 (16:03 +0100)
committerFrançois Degrave <fde@openerp.com>
Thu, 30 Dec 2010 15:03:40 +0000 (16:03 +0100)
bzr revid: fde@openerp.com-20101230150340-qdtsp56xb9k59agx

addons/account/board_account_view.xml
addons/account/security/ir.model.access.csv
addons/board/board.py

index 0711e07..673cdfa 100644 (file)
@@ -12,7 +12,6 @@
             <field name="view_type">form</field>
             <field name="view_mode">graph,tree</field>
             <field name="domain">[('type','=','receivable')]</field>
-            <field name="groups_id" eval="[(6,0,[ref('account.group_account_manager'),ref('account.group_account_user')])]"/>
         </record>
         <record id="action_aged_income" model="ir.actions.act_window">
             <field name="name">Income Accounts</field>
@@ -20,7 +19,6 @@
             <field name="view_type">form</field>
             <field name="view_mode">graph,tree</field>
             <field name="domain">[('type','=','income')]</field>
-            <field name="groups_id" eval="[(6,0,[ref('account.group_account_manager'),ref('account.group_account_user')])]"/>
         </record>
       <record id="action_company_analysis_tree" model="ir.actions.act_window">
           <field name="name">Company Analysis</field>
@@ -29,7 +27,6 @@
           <field name="view_mode">tree,graph</field>
           <field name="context">{'group_by':['user_type'], 'group_by_no_leaf':1}</field>
           <field name="view_id" ref="account.view_account_entries_report_tree"/>
-            <field name="groups_id" eval="[(6,0,[ref('account.group_account_manager')])]"/>
       </record>
       <record id="action_treasory_graph" model="ir.actions.act_window">
           <field name="name">Treasury</field>
@@ -38,7 +35,6 @@
           <field name="view_mode">graph,tree</field>
           <field name="domain">[('type','=','liquidity')]</field>
           <field name="view_id" ref="account.view_treasory_graph"/>
-            <field name="groups_id" eval="[(6,0,[ref('account.group_account_manager'),ref('account.group_account_user')])]"/>
       </record>
         <record id="board_account_form" model="ir.ui.view">
             <field name="name">board.account.form</field>
                     <hpaned>
                         <child1>
                             <action colspan="4" height="160" width="400" name="%(account.action_invoice_tree1)d" string="Customer Invoices to Approve" domain="[('state','=','draft'),('type','=','out_invoice')]"/>
-                            <action colspan="4" height="160" width="400" name="%(action_company_analysis_tree)d" string="Company Analysis" />
+                            <action colspan="4" height="160" width="400" name="%(action_company_analysis_tree)d" string="Company Analysis" groups="account.group_account_manager"/>
                         </child1>
                         <child2>
-                            <action colspan="4" height="220" name="%(action_treasory_graph)d" string="Treasury"/>
-                            <action colspan="4" height="220" name="%(action_aged_receivable)d" string="Aged Receivables"/>
+                            <action colspan="4" height="220" name="%(action_treasory_graph)d" string="Treasury" groups="account.group_account_manager,account.group_account_user"/>
+                            <action colspan="4" height="220" name="%(action_aged_receivable)d" string="Aged Receivables" groups="account.group_account_manager,account.group_account_user"/>
                             <!--  <action colspan="4" height="220" name="%(action_aged_income)d" string="Aged income"/> -->
                         </child2>
                     </hpaned>
index fe98ef7..83efe67 100644 (file)
@@ -98,6 +98,7 @@
 "access_account_bank_statement_manager","account.bank.statement manager","model_account_bank_statement","account.group_account_manager",1,1,1,1
 "access_account_entries_report_manager","account.entries.report","model_account_entries_report","account.group_account_manager",1,1,1,1
 "access_account_entries_report_user","account.entries.report","model_account_entries_report","account.group_account_user",1,0,0,0
+"access_account_entries_report_employee","account.entries.report employee","model_account_entries_report","base.group_user",1,0,0,0
 "access_analytic_entries_report_manager","analytic.entries.report","model_analytic_entries_report","account.group_account_manager",1,0,0,0
 "access_account_cashbox_line","account.cashbox.line","model_account_cashbox_line","account.group_account_manager",1,1,1,1
 "access_account_cashbox_line","account.cashbox.line","model_account_cashbox_line","account.group_account_user",1,1,1,1
index 8662aa5..7de35fc 100644 (file)
@@ -120,7 +120,6 @@ class board_board(osv.osv):
         @return: Dictionary of Fields, arch and toolbar.
         """
 
-
         res = {}
         res = super(board_board, self).fields_view_get(cr, user, view_id, view_type,\
                                  context, toolbar=toolbar, submenu=submenu)
@@ -131,9 +130,31 @@ class board_board(osv.osv):
             view_id = vids[0]
             arch = self.pool.get('ir.ui.view.custom').browse(cr, user, view_id, context=context)
             res['arch'] = arch.arch
-
+        res['arch'] = self._arch_preprocessing(cr, user, res['arch'], context=context)
         res['toolbar'] = {'print': [], 'action': [], 'relate': []}
         return res
+    
+    
+    def _arch_preprocessing(self, cr, user, arch, context=None): 
+        from lxml import etree                               
+        def remove_unauthorized_children(node):
+            for child in node.iterchildren():
+                if child.tag=='action' and child.get('invisible'):
+                    node.remove(child)
+                else:
+                    child=remove_unauthorized_children(child)
+            return node
+        
+        def encode(s):
+            if isinstance(s, unicode):
+                return s.encode('utf8')
+            return s
+            
+        archnode = etree.fromstring(encode(arch))        
+        return etree.tostring(remove_unauthorized_children(archnode),pretty_print=True)
+        
+        
+    
 
     _columns = {
         'name': fields.char('Dashboard', size=64, required=True),