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

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.

主站蜘蛛池模板: 黔东| 平江县| 上栗县| 噶尔县| 金平| 京山县| 五峰| 沧州市| 武功县| 栖霞市| 理塘县| 依兰县| 古浪县| 香港| 绵竹市| 蓝田县| 尼勒克县| 荥阳市| 都江堰市| 雷山县| 会泽县| 西华县| 吴堡县| 鲁甸县| 赤壁市| 敦化市| 南京市| 额尔古纳市| 榆林市| 襄樊市| 静安区| 凤翔县| 烟台市| 昆明市| 靖宇县| 当雄县| 朝阳市| 南岸区| 和顺县| 平利县| 呼和浩特市|