在现有模型中找不到模型错误

时间:2018-08-17 09:55:24

标签: python xml python-2.7 odoo odoo-10

显示Model not found: staff.transfer。在安装此模块时,始终会递归显示此错误。希望有人能帮忙!

staff_transfer.py

from datetime import datetime, timedelta
from odoo import models, fields, _

class StaffTransfer(models.Model):
    _name = 'staff.transfer'
    _rec_name = "staff_id"

    staff_id = fields.Many2one('hr.employee',string ="Employee Name")
    staff_job_id = fields.Many2one('hr.job', string='Designation',compute='_compute_staff_details', store=True)  
    staff_date = fields.Datetime('Date')
    current_company_id = fields.Many2one('res.company',"Current Company",compute='_compute_staff_details', store=True)
    cmp_id = fields.Many2one('res.company', 'To Company')
    staff_purpose = fields.Text("Purpose Of Transfer")
    staff_work_location = fields.Char('Work Location',compute='_compute_staff_details', store=True)

    state = fields.Selection([('draft','New'),
        ('in progress','In Progress'),
        ('approve','Approved'),
        ('rejected','Rejected')], index='true', default='draft')


    @api.depends('staff_id')
    def _compute_staff_details(self):
        if self.staff_id:
            self.staff_work_location = self.staff_id.work_location
            self.staff_job_id = self.staff_id.job_id
            self.current_company_id = self.staff_id.company_id

    @api.multi
    def set_start(self):
        self.write({'state': 'in progress'})

    @api.multi
    def set_close(self):
        if self.cmp_id:
            self.staff_id.company_id = self.cmp_id
        staff_var = self.env['hr.employee'].search([('id','=',self.staff_id.id)])
        staff_var_list = []
        if staff_var:
            ele = {
                'company_date': self.staff_date,
                'from_company': self.current_company_id.id,
                'to_company': self.cmp_id.id,
                'reason' : self.staff_purpose,
                    }
            staff_var_list.append(ele)
        # raise UserError(str(ele))
        staff_var.employee_line_ids = staff_var_list
        # variable.stud_name = self.student_name.id

        self.write({'state': 'approve'})

    @api.multi
    def set_reject(self):
        self.write({'state': 'rejected'})   

    @api.multi
    def set_to_reset(self):
        self.write({'state': 'draft'})

class HrEmployee(models.Model):
    _inherit = 'hr.employee'

    employee_line_ids = fields.One2many('staff.transfer.line','employee_line_id')

class StaffTransferLine(models.Model):
    _name = "staff.transfer.line"
    _description = 'Staff Transfer Line'

    employee_line_id = fields.Many2one('hr.employee')
    company_date = fields.Date("Date")
    from_company = fields.Many2one('res.company', 'From Branch')
    to_company = fields.Many2one('res.company','To Branch')
    reason = fields.Char("Transfer Reason")

staff_transfer_views.xml

<odoo>
    <!-- Staff Transfer Request Form -->
    <record id="staff_transfer_request_tree" model="ir.ui.view">
        <field name="name">staff.transfer.tree</field>
        <field name="model">staff.transfer</field>
        <field name="arch" type="xml">
            <tree string="Staff Transfer Request">
                <field name="staff_id"/>
                <field name="staff_date"/>
                <field name="staff_job_id"/> 
                <field name="current_company_id"/>
                <field name="cmp_id"/>
                <field name="staff_work_location"/>
                <field name="staff_purpose"/>        
            </tree>
        </field>
    </record>

    <record id="staff_transfer_request_menu_kanban" model="ir.ui.view">
        <field name="name">staff.transfer.kanban</field>
        <field name="model">staff.transfer</field>
        <field name="priority">10</field>
        <field name="arch" type="xml">
            <kanban class="o_hr_staff_transfer_model_kanban">
                <templates>
                    <t t-name="kanban-box">
                    <div class="oe_kanban_global_click">
                        <ul>
                            <li><strong>Name : </strong><field name="staff_id"/></li>
                            <li><strong>Date : </strong><field name="staff_date"/></li>
                            <li><strong>Designation : </strong><field name="staff_job_id"/></li>
                            <li><strong>From : </strong><field name="current_company_id"/></li>
                            <li><strong>To  : </strong><field name="cmp_id"/></li>
                            <li><strong>Purpose  : </strong><field name="staff_purpose"/></li>
                        </ul>
                    </div>
                    </t>
                </templates>
            </kanban>
        </field>
    </record>

    <record id="staff_transfer_request_menu_form" model="ir.ui.view">
        <field name="name">staff.transfer.form</field>
        <field name="model">staff.transfer</field>
        <field name="arch" type="xml">
            <form string="Staff Transfer Request">
                <header>
                    <button name="set_start" string="Start" type="object" help="start" states="draft" class="oe_highlight"/> 
                    <button name="set_close" string="Approve" type="object" help="close" states="in progress" class="oe_highlight"/> 
                    <button name="set_reject" string="Reject" type="object" help="reject" states="in progress" class="oe_highlight"/>
                    <field name="state" widget="statusbar" statusbar_visible="draft,in progress,approve,rejected"/>
                </header>
            <sheet>
                <group>
                    <group>
                        <field name="staff_id" required="1" options="{'no_create_edit': True}"/>
                        <field name="staff_job_id" required="1" readonly="1" /> 
                        <field name="current_company_id" required="1" readonly="1" />
                        <field name="staff_purpose" required="1"/>
                    </group>
                    <group>
                        <field name="staff_date" required="1" />
                        <field name="staff_work_location" required="1" />
                        <field name="cmp_id" required="1" options="{'no_create_edit': True}"/>
                    </group>
                </group>
            </sheet>
            </form>
        </field>
    </record>

    <record id="action_staff_transfer_request_form" model="ir.actions.act_window">
        <field name="name">Staff Transfer Request</field>
        <field name="res_model">staff.transfer</field>
        <field name="view_type">form</field>
        <field name="view_mode">kanban,tree,form</field>
        <field name="domain">[]</field>
        <field name="context">{}</field>
        <field name="view_id" eval="False"/>
        <field name="help" type="html">
            <p>
               Staff Transfer Request
            </p>
        </field>
    </record>

    <record id="view_hr_employee_form_inherited" model="ir.ui.view">
        <field name="name">hr.employee</field>
        <field name="model">hr.employee</field>
        <field name="inherit_id" ref="hr.view_employee_form"/>
        <field name="priority">10</field>
        <field name="arch" type="xml">
            <xpath expr="//form/sheet/notebook/page[@name='public']" position="after">
                <page string="Staff's Transfer Details">    
                    <group>
                        <field name="employee_line_ids" readonly="1" nolabel="1">
                            <tree string="Staff's Transfer Details">
                                <field name="company_date"/>
                                <field name="from_company"/>
                                <field name="to_company"/>
                                <field name="reason"/>
                            </tree>                                    
                        </field>
                    </group>
                </page>
            </xpath>
        </field>
    </record>

    <menuitem id="menu_staff_transfer_request" 
        name="Employee Transfer Request" 
        parent="hr_employee_updation.menu_hr_management" 
        action="action_staff_transfer_request_form" 
        sequence="3"/>
</odoo>

在Odoo 10中创建自定义模块时,我被困在这里。上面是代码。仍然我都没有发现任何错误。如果有人可以帮助我,请! python代码和xml代码都在这里。

1 个答案:

答案 0 :(得分:1)

将此行添加到您的__init__.py文件中:

import staff_transfer