Rajout d'un chatter pour les 3 objets
[OpenERP/faq.git] / faq.py
1 #-*- coding: utf8 -*-
2
3 from openerp.osv import osv, fields
4
5 class theme(osv.Model):
6     _name = "faq.theme"
7
8     _inherit = "mail.thread"
9
10     def _question_items(self, cr, uid, ids, field, arg, context=None):
11         result={}
12         for theme in self.browse(cr, uid, ids, context=context):
13             res=[]
14             for question in theme.questions:
15                 res.append({'id': question.id, 'name': question.name, 'answer_items': question.answer_items})
16             result[theme.id] = res
17         return result
18
19     _columns = {
20         "name": fields.char(string="Title", size=64, required=True),
21         "description": fields.text(string="Description"),
22         "questions": fields.one2many("faq.question" , "theme_id", string="Questions"),
23         "question_items": fields.function(_question_items, type="text", string="Question items"),
24     }
25
26 class question(osv.Model):
27     _name = "faq.question"
28
29     _inherit = "mail.thread"
30
31     def _answer_items(self, cr, uid, ids, field, arg, context=None):
32         result={}
33         for question in self.browse(cr, uid, ids, context=context):
34             res=[]
35             for answer in question.answers:
36                 res.append({'id': answer.id, 'name': answer.name})
37             result[question.id] = res
38         return result
39
40     _columns = {
41         "name": fields.char(string="Title", size=64, required=True),
42         "description": fields.text(string="Description"),
43         "theme_id": fields.many2one("faq.theme", string="Theme", required=True),
44         "answers": fields.one2many("faq.answer" , "question_id", string="Answers"),
45         "answer_items": fields.function(_answer_items, type="text", string="Answer items"),
46     }
47
48 class answer(osv.Model):
49     _name = "faq.answer"
50
51     _inherit = "mail.thread"
52
53     _columns = {
54         "name": fields.char(string="Title", size=64, required=True),
55         "description": fields.text(string="Description"),
56         "question_id": fields.many2one("faq.question", string="Question", required=True),
57     }