Skip to Content
Menu
This question has been flagged
3 Replies
7038 Views

In one of my custom module i have following model

    _name = "receipt.details"
    _description = "receipt_details"
    _columns = 
      {
        'date': fields.date('Date', required=True),
        'manual_receipt_no': fields.char('Manual Receipt No'),
        'billnumber': fields.char('Receipt Number', readonly=True),
        'companyid': fields.integer('Comp_ID', readonly=True),
        'chq_dd_no': fields.char('Chq/DD No'),
        'cheque_date': fields.datetime('Cheque Date'),
        'bank_name': fields.char("Bank Name"),
        'child_receipt': fields.one2many('child.receipt', 'rel_id', 'Child Details', ondelete='cascade'),
        'officer_name': fields.many2one('hr.employee', "Officer Name", required=True, ondelete='restrict'),
        'total': fields.function(fnct_total_fee, method=True, string='Total', type='float', store=True),
        'note': fields.text('Note'),
        'is_deleted': fields.boolean('Is Deleted'),
        'ip_address': fields.char('ip Address'),
        'type': fields.char('Type'),
        # 'account_name': fields.selection(_get_BankName_completelst, "Firm Name", required=True),
        'account_name': fields.many2one('account.account', "Firm Name"),
        'journal': fields.many2one('account.journal', 'Journal', required=True),
        'tally_import': fields.binary('Import File(.xml)'),
        'is_bill_cancellation': fields.boolean('Is Bill Cancellation'),
        'interest': fields.float('Market Fee Interest'),
        'manual_license_number': fields.char('Manual License Number'),
      }

with this model i want to display records which are created by current logged in user only how to use domain filter for this scenario

Here is my XML

Form view

  <record model="ir.ui.view" id="bank_recieptsinsertion_form">
            <field name="name">Receipt Form</field>
            <field name="model">receipt.details</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="receipt Form" version="7.0">
                    <sheet>
                        <head>
                           <field name="tally_import" on_change= "onchange_tallyimport(tally_import)" invisible="1"/>
                        </head>
                        <group col="4">
                            <field name="date" on_change= "onchange_date(date)"/>
                            <field name="account_name" on_change="onchange_account_name(account_name)"  required="1"
                                     />
                            <field name="manual_license_number" readonly="1"/>
                            <field name="manual_receipt_no" />
                            <field name="billnumber"/>
                            <field name="chq_dd_no" />
                            <field name="cheque_date" />
                            <field name="bank_name" />
                            <field name="officer_name"  widget="selection" />
                            <field name="total" />
                            <field name="interest" attrs="{'readonly': [('interest', '=', '0')]}"/>
                            <field name="note" />
                            <field name="is_deleted" invisible="1"  />
                            <field name="type" invisible="1"  />
                            <field name="ip_address"  class="ipcaptuaring"  invisible="1"/>
                            <field name="journal"  widget="selection"/>
                        </group>
                        <group>
                            <field name="child_receipt" on_change="onchange_total(child_receipt)"  nolabel="1"/>
                        </group>
                    </sheet>
                </form>
            </field>
    </record>

In form view while editing and creating new receipt i want show only currently logged in user(res.user table) name

Tree view

        <record model="ir.ui.view" id="bank_recieptsinsertion_tree">
            <field name="name">Receipt Tree</field>
            <field name="model">receipt.details</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree string="receipt Data" version="7.0">
                            <field name="date" type="date"/>
                            <field name="account_name" />
                            <field name="manual_receipt_no" />
                            <field name="billnumber"/>
                            <field name="chq_dd_no" />
                            <field name="cheque_date" />
                            <field name="bank_name" />
                            <field name="officer_name"/>
                            <field name="total" />
                            <field name="note" />
                            <field name="is_bill_cancellation"/>
                </tree>
            </field>
        </record>

this tree view is the list of records i want show records which are created by current logged in user

Record tag

        <record model="ir.actions.act_window"   id="action_receipt_insertion">
           <field name="name">Receipt</field>
           <field name="type">ir.actions.act_window</field>
           <field name="res_model">receipt.details</field>
           <field name="context">[('is_deleted','!=',1)]</field>
           <field name="view_type">form</field>
           <field name="view_mode">tree,form</field>
       </record>

actually I am very new to Open-ERP and Python.I am working on this issue since last one week,your help is highly appreciated Thank you

Avatar
Discard
Author

Thankyou, now i am getting only current logged in user records only . And i have one more issue that is

" In one of custom module i created some new Reports and screens but those reports and screens are showing only in Super Administrator login,Now i want to display those reports to every user, to achive this what i need to do"

Please help me

Best Answer

Hi,

If you want to show only the records created by the current logged in user, try like this

 <record model="ir.actions.act_window"   id="action_receipt_insertion">
           <field name="name">Receipt</field>
           <field name="type">ir.actions.act_window</field>
           <field name="res_model">receipt.details</field>
           <field name="domain">[('create_uid','=',uid)]</field> <field name="context">[('is_deleted','!=',1)]</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record>

Then the records created by the logged in user will be shown.

Thanks

Avatar
Discard

Thanks very much Niyas Raphy for information records created by the current logged in user

Best Answer

Problem Statement

Let say we have a company and in that company we have different active user related to different department. And we want to display some data or records in a tree view or list view according to active user department, when some one clicks on related menu. To achieve this goal we need to create dynamic domain on action window.

Solution

To put domain on action window we need a computed filed in Odoo 8 or function field in older version of Odoo, in that computed field we need to create two method first one for computed field and second one for search.

In py

 department_clo_acl_ids=fields.Char(compute="_compute_department_clo_acl_ids",search='department_clo_acl_ids_search') @api.one
 @api.depends('department_id')
 def _compute_department_clo_acl_ids(self):
    print('View My Department CLO ACL')
 def department_clo_acl_ids_search(self, operator, operand):
     clo_acl_obj = self.env['obe.clo.acl'].search([('department_id','=',self.env.user.faculty_id.department_id.id)]).ids     return [('id','in',clo_acl_obj)]

In xml

<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('department_clo_acl_ids','=',1)]</field>

Read more :http://learnopenerp.blogspot.com/2017/11/show-records-on-treeview-that-are.html


Avatar
Discard