官术网_书友最值得收藏!

Adding business logic

We should edit the todo_task_model.py Python file to add the methods called by the button. First, we need to import the new API, so add it to the import statement at the top of the Python file:

from odoo import api, fields, models 

The logic for the Clear Done button is quite simple: just set the Active? flag to false. This takes advantage of an ORM built-in feature: records with an active flag set to False by default are filtered out and won't be presented to the user. You can think of it as a "soft delete."

In the models/todo_task_model.py file, add the following to the TodoTask class:

@api.multi 
def do_clear_done(self): 
    for task in self: 
        task.active = False 
    return True 

For logic on records, we use the @api.multi decorator. Here, self will represent a recordset, and we should then loop through each record. In fact, this is the default for Model methods, so the @api.multi decorator can safely be omitted here. We prefer to keep it for clarity.

The code loops through all the To-Do task records and, for each one, assigns the False value on the active field.

The method does not need to return anything, but we should have it at least return a True value. The reason is that not all client implementations of the XML-RPC protocol support None/Null values, and may raise errors when such a value is returned by a method.

主站蜘蛛池模板: 宣城市| 宜宾县| 呈贡县| 山阳县| 东乡县| 湘潭县| 乐清市| 巴马| 师宗县| 云和县| 万源市| 泗阳县| 遂宁市| 嘉祥县| 临潭县| 钟山县| 大姚县| 田林县| 肃北| 神农架林区| 长治县| 金昌市| 岚皋县| 乐山市| 榆中县| 棋牌| 邹平县| 安丘市| 西和县| 于田县| 金坛市| 武安市| 巴里| 桦川县| 乌兰浩特市| 扶余县| 镶黄旗| 布尔津县| 海淀区| 泸水县| 丹江口市|