default['name'] = new_name
return osv.Model.copy(self, cr, uid, id, default, context=context)
+ def _get_manday(self, cr, uid, ids, field, arg, context=None):
+ result={}
+ for container in self.browse(cr, uid, ids, context=context):
+ result[container.id] = sum([t.manday for t in container.tasks if t.state != "done"])
+ return result
+
_name = "todolist.container"
"description": fields.text(string="Description"),
"target": fields.date(string="Target", help="Target Date"),
"milestone": fields.date(string="Milestone", help="Due date"),
- "manday": fields.float(string="Man-Days", digits=(6, 2)),
+ "manday": fields.function(_get_manday, type="integer", string="Man-Days"),
"state": fields.selection(_status, string="State", select=True),
"tasks": fields.one2many("todolist.task", "container_id", string="Tasks"),
"topics_id": fields.many2many("todolist.topic", "todolist_container_topic_rel", "container_id", "topic_id", string="Topics", domain=[("activated", "=","Active")]),
"name": fields.char(string="Title", size=64, required=True),
"description": fields.text(string="Description"),
"planned": fields.date(string="Planed"),
- "milestone": fields.date(string="Milestone"),
- "manday": fields.integer(string="Man-Days"),
- "priority": fields.selection(_priorities, string="Priority", select=True),
+ "milestone": fields.date(string="Milestone", required=True),
+ "manday": fields.integer(string="Man-Days", required=True),
+ "priority": fields.selection(_priorities, string="Priority", select=True, required=True),
"state": fields.selection(_states, string="State", select=True),
"container_id": fields.many2one("todolist.container", string="To do list", required=True),
}
vals["milestone"] = task.container_id.milestone
return osv.Model.write(self, cr, user, ids, vals, context)
+ def create(self, cr, user, vals, context=None):
+ container_model = self.pool.get("todolist.container")
+ container = container_model.read(cr, user, vals["container_id"], context=context)
+ milestone = container["milestone"]
+ if milestone < vals["milestone"]:
+ vals["milestone"] = milestone
+ return osv.Model.create(self, cr, user, vals, context=context)
+
class Topic(osv.Model):
"""TODO List : Container"s Topic"""