1

良い一日!kanbanビューの読み込み中にエラーが発生しました。xmlを継承しhr.employee Kanban、特定のドキュメントの有効期限が切れた場合に条件を追加するだけです。有効期限切れのドキュメント通知がkanbanビューに追加されます。xml コードは次のとおりです。

    <record model="ir.ui.view" id="hr_kanban_view_employees_recruitment_kanban">
        <field name="name">HR - Employees Kanban Document Status</field>
        <field name="model">hr.employee</field>
        <field name="inherit_id" ref="hr.hr_kanban_view_employees"/>
        <field name="arch" type="xml">
            <xpath expr="//templates" position="before">
                <field name="employee_id"/>
                <field name="documents_status"/>
            </xpath>
            <xpath expr="//div[@class='oe_employee_details']/ul/li[@id='last_login']" position="inside">
                <span t-if="record.documents_status.raw_value" style="font-size: 100%%"
                        t-att-class="record.documents_status.raw_value==true'oe_kanban_button oe_kanban_color_3'">
                    <field name="employee_id" readonly = "1"/>
                    Has Expired Documents
                </span>
            </xpath>
        </field>
    </record>

documents_statusフィールドのモデル

そしてロード時

documents_status = fields.Boolean('DocumentStatus', readonly = True,store = False,compute ='getdocumentStatus')

    @api.one
    def getdocumentStatus(self):
        raise Warning(self.employee_id)
        server_date = datetime.datetime.strptime(DATE_NOW.strftime("%Y-%m-%d") ,"%Y-%m-%d")
        result = {}

        for id in self.ids:
            result[id] = {
                'documents_status': True
            }
            totaldoc = self.env['hr.employee_documents'].search_count([('date_expiry', '<', server_date),('employee_doc_id','=', id)])
            if totaldoc > 0:
                result[id]['documents_status'] = True
                self.documents_status = True
            else:
                result[id]['documents_status'] = False
                self.documents_status = False
        return result

kanbanエラーが発生した従業員のビュー

予想されるシングルトン: hr.employee(1, 2)。

誰かがこれで私を助けてくれますか、事前に感謝します。

4

1 に答える 1

5

hr.employeeとの関係がわかりませんhr.employee_documents。これが(特定の従業員に対する多数のドキュメント) である場合、モデル内に を指すフィールドOne2manyが存在する必要があります。このフィールドに名前が付けられているとします(これは、 を介して compute メソッドをトリガーするために重要です)。次に、次のコードを記述します。One2manyhr.employeehr.employee_documentsdocumentsapi.depends

@api.multi
@api.depends('documents.date_expiry')
def getdocumentStatus(self):
    server_date = datetime.datetime.strptime(DATE_NOW.strftime("%Y-%m-%d"), "%Y-%m-%d")
    for record in self:
        totaldoc = self.env['hr.employee_documents'].search_count([('date_expiry', '<', server_date),('employee_doc_id','=', self.id)])
        if totaldoc > 0:
            record.documents_status = True
        else:
            record.documents_status = False

正確な回答を得るには、両方のモデル間の関係を書いてください。

于 2015-09-28T11:30:48.390 に答える