[IMP] models: move prefetching of records back to method _prefetch_field
[odoo/odoo.git] / doc / howto / howto_website / move-to-openerp-objects
1 # HG changeset patch
2 # Parent bc8914ae6b552520bdc3856e81d3624dc5a77a99
3
4 diff --git a/__init__.py b/__init__.py
5 --- a/__init__.py
6 +++ b/__init__.py
7 @@ -1,4 +1,3 @@
8  # -*- coding: utf-8 -*-
9  import controllers
10  import models
11 -
12 diff --git a/__openerp__.py b/__openerp__.py
13 --- a/__openerp__.py
14 +++ b/__openerp__.py
15 @@ -17,10 +17,8 @@
16      # any module necessary for this one to work correctly
17      'depends': ['website', 'website_event'],
18      'data': [
19 -        'security/ir.model.access.csv',
20          'views/templates.xml',
21          'data/records.xml',
22 -        'data/views.xml',
23      ],
24      'demo': [
25          'demo/teaching_assistants.xml',
26 diff --git a/controllers/academy.py b/controllers/academy.py
27 --- a/controllers/academy.py
28 +++ b/controllers/academy.py
29 @@ -6,14 +6,22 @@ from openerp.addons.web.controllers impo
30  class academy(main.Home):
31      @http.route('/', auth='public', website=True)
32      def index(self):
33 -        lectures = http.request.env['academy.lectures'].search([])
34 -        tas = http.request.env['academy.tas'].search([])
35 +        ta_group = http.request.env.ref('academy.tas')
36 +        tas = http.request.env['res.users'].search(
37 +            [('groups_id', '=', [ta_group.id])]
38 +        )
39 +
40 +        lecture_type = http.request.env.ref('academy.lecture_type')
41 +        lectures = http.request.env['event.event'].search(
42 +            [('type', '=', lecture_type.id)]
43 +        )
44 +
45          return http.request.render('academy.index', {
46              'lectures': lectures,
47              'tas': tas,
48          })
49  
50 -    @http.route('/tas/<model("academy.tas"):ta>/', auth='public', website=True)
51 +    @http.route('/tas/<model("res.users"):ta>/', auth='public', website=True)
52      def ta(self, ta):
53          return http.request.render('academy.ta', {
54              'ta': ta,
55 diff --git a/data/views.xml b/data/views.xml
56 deleted file mode 100644
57 --- a/data/views.xml
58 +++ /dev/null
59 @@ -1,25 +0,0 @@
60 -<openerp>
61 -    <data>
62 -        <record id="list_academy_lecture" model="ir.ui.view">
63 -            <field name="model">academy.lectures</field>
64 -            <field name="arch" type="xml">
65 -               <tree string="Lectures">
66 -                   <field name="name"/>
67 -                   <field name="date"/>
68 -               </tree>
69 -            </field>
70 -        </record>
71 -
72 -        <record id="action_academy_lecture" model="ir.actions.act_window">
73 -            <field name="name">Academy lectures</field>
74 -            <field name="res_model">academy.lectures</field>
75 -        </record>
76 -
77 -        <menuitem sequence="0" id="menu_academy" name="Academy"/>
78 -        <menuitem id="menu_academy_content" parent="menu_academy"
79 -                  name="Academy Content"/>
80 -        <menuitem id="menu_academy_content_lectures"
81 -                  parent="menu_academy_content"
82 -                  action="action_academy_lecture"/>
83 -    </data>
84 -</openerp>
85 diff --git a/demo/lectures.xml b/demo/lectures.xml
86 --- a/demo/lectures.xml
87 +++ b/demo/lectures.xml
88 @@ -1,24 +1,47 @@
89  <openerp>
90      <data>
91 -        <record model="academy.lectures" id="lecture1">
92 +        <delete model="event.registration" search="[]"/>
93 +        <delete model="event.event" search="[]"/>
94 +        <delete model="event.type" search="[]"/>
95 +
96 +        <record model="event.type" id="lecture_type">
97 +            <field name="name">Lecture</field>
98 +        </record>
99 +
100 +        <record model="event.event" id="lecture1">
101              <field name="name">Lecture 1</field>
102 -            <field name="date">2014-01-06</field>
103 +            <field name="date_begin">2015-01-06 10:00:00</field>
104 +            <field name="date_end">2015-01-06 12:00:00</field>
105 +            <field name="type" ref="lecture_type"/>
106 +            <field name="website_published" eval="True"/>
107          </record>
108 -        <record model="academy.lectures" id="lecture2">
109 +        <record model="event.event" id="lecture2">
110              <field name="name">Lecture 2</field>
111 -            <field name="date">2014-01-08</field>
112 +            <field name="date_begin">2015-01-08 10:00:00</field>
113 +            <field name="date_end">2015-01-08 12:00:00</field>
114 +            <field name="type" ref="lecture_type"/>
115 +            <field name="website_published" eval="True"/>
116          </record>
117 -        <record model="academy.lectures" id="lecture3">
118 +        <record model="event.event" id="lecture3">
119              <field name="name">Lecture 3</field>
120 -            <field name="date">2014-01-10</field>
121 +            <field name="date_begin">2015-01-10 10:00:00</field>
122 +            <field name="date_end">2015-01-10 12:00:00</field>
123 +            <field name="type" ref="lecture_type"/>
124 +            <field name="website_published" eval="True"/>
125          </record>
126 -        <record model="academy.lectures" id="lecture4">
127 +        <record model="event.event" id="lecture4">
128              <field name="name">Lecture 4</field>
129 -            <field name="date">2014-01-13</field>
130 +            <field name="date_begin">2015-01-13 10:00:00</field>
131 +            <field name="date_end">2015-01-13 12:00:00</field>
132 +            <field name="type" ref="lecture_type"/>
133 +            <field name="website_published" eval="True"/>
134          </record>
135 -        <record model="academy.lectures" id="lecture5">
136 +        <record model="event.event" id="lecture5">
137              <field name="name">Lecture 5</field>
138 -            <field name="date">2014-01-15</field>
139 +            <field name="date_begin">2015-01-15 10:00:00</field>
140 +            <field name="date_end">2015-01-15 12:00:00</field>
141 +            <field name="type" ref="lecture_type"/>
142 +            <field name="website_published" eval="True"/>
143          </record>
144      </data>
145  </openerp>
146 diff --git a/demo/teaching_assistants.xml b/demo/teaching_assistants.xml
147 --- a/demo/teaching_assistants.xml
148 +++ b/demo/teaching_assistants.xml
149 @@ -1,19 +1,54 @@
150  <openerp>
151      <data>
152 -        <record id="padilla" model="academy.tas">
153 +        <record id="padilla_p" model="res.partner">
154              <field name="name">Diana Padilla</field>
155          </record>
156 -        <record id="carroll" model="academy.tas">
157 +        <record id="padilla" model="res.users">
158 +            <field name="login">padilla</field>
159 +            <field name="partner_id" ref="padilla_p"/>
160 +        </record>
161 +
162 +        <record id="carroll_p" model="res.partner">
163              <field name="name">Jody Carroll</field>
164          </record>
165 -        <record id="vaughn" model="academy.tas">
166 +        <record id="carroll" model="res.users">
167 +            <field name="login">carroll</field>
168 +            <field name="partner_id" ref="carroll_p"/>
169 +        </record>
170 +
171 +        <record id="vaughn_p" model="res.partner">
172              <field name="name">Lester Vaughn</field>
173          </record>
174 -        <record id="jimenez" model="academy.tas">
175 +        <record id="vaughn" model="res.users">
176 +            <field name="login">vaughn</field>
177 +            <field name="partner_id" ref="vaughn_p"/>
178 +        </record>
179 +
180 +        <record id="jimenez_p" model="res.partner">
181              <field name="name">Paul Jimenez</field>
182          </record>
183 -        <record id="harris" model="academy.tas">
184 +        <record id="jimenez" model="res.users">
185 +            <field name="login">jimenez</field>
186 +            <field name="partner_id" ref="jimenez_p"/>
187 +        </record>
188 +
189 +        <record id="harris_p" model="res.partner">
190              <field name="name">Tanya Harris</field>
191          </record>
192 +        <record id="harris" model="res.users">
193 +            <field name="login">harris</field>
194 +            <field name="partner_id" ref="harris_p"/>
195 +        </record>
196 +
197 +        <record id="tas" model="res.groups">
198 +            <field name="name">Teaching Assistants</field>
199 +            <field name="users" eval="[
200 +                (4, ref('padilla')),
201 +                (4, ref('carroll')),
202 +                (4, ref('vaughn')),
203 +                (4, ref('jimenez')),
204 +                (4, ref('harris')),
205 +            ]"/>
206 +        </record>
207      </data>
208  </openerp>
209 diff --git a/models/__init__.py b/models/__init__.py
210 --- a/models/__init__.py
211 +++ b/models/__init__.py
212 @@ -1,3 +1,3 @@
213  # -*- coding: utf-8 -*-
214 -import academy
215 +import res_partner
216  
217 diff --git a/models/academy.py b/models/academy.py
218 deleted file mode 100644
219 --- a/models/academy.py
220 +++ /dev/null
221 @@ -1,16 +0,0 @@
222 -# -*- coding: utf-8 -*-
223 -from openerp.models import Model
224 -from openerp.fields import Char, Html, Date
225 -
226 -class TeachingAssistants(Model):
227 -    _name = "academy.tas"
228 -
229 -    name = Char()
230 -    biography = Html()
231 -
232 -class Lectures(Model):
233 -    _name = 'academy.lectures'
234 -    _order = 'date ASC'
235 -
236 -    name = Char(required=True, string="Name")
237 -    date = Date(required=True, string="Date")
238 diff --git a/models/res_partner.py b/models/res_partner.py
239 new file mode 100644
240 --- /dev/null
241 +++ b/models/res_partner.py
242 @@ -0,0 +1,8 @@
243 +from openerp.models import Model
244 +from openerp.fields import Html
245 +
246 +class Partner(Model):
247 +    _inherit = 'res.partner'
248 +
249 +    biography = Html()
250 +
251 diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
252 deleted file mode 100644
253 --- a/security/ir.model.access.csv
254 +++ /dev/null
255 @@ -1,3 +0,0 @@
256 -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
257 -access_academy_tas,access_academy_tas,model_academy_tas,,1,0,0,0
258 -access_academy_lectures,access_academy_lectures,model_academy_lectures,,1,0,0,0
259 \ No newline at end of file
260 diff --git a/views/templates.xml b/views/templates.xml
261 --- a/views/templates.xml
262 +++ b/views/templates.xml
263 @@ -31,11 +31,11 @@
264                          </tr>
265                          <tr t-foreach="lectures" t-as="lecture">
266                              <td>
267 -                                <span t-field="lecture.date"
268 +                                <span t-field="lecture.date_begin"
269                                        t-field-options='{"format": "long"}'/>
270                              </td>
271                              <td>
272 -                                <span t-field="lecture.date"
273 +                                <span t-field="lecture.date_begin"
274                                        t-field-options='{"format": "EEE"}'/>
275                              </td>
276                              <td>
277 @@ -56,9 +56,9 @@
278              <div class="oe_structure"/>
279              <div class="oe_structure">
280                  <div class="container">
281 -                    <h1 t-field="ta.name"/>
282 +                    <h1 t-field="ta.partner_id.name"/>
283                      <h2>Biography</h2>
284 -                    <div t-field="ta.biography"/>
285 +                    <div t-field="ta.partner_id.biography"/>
286                  </div>
287              </div>
288              <div class="oe_structure"/>