diff --git a/doc/howto/howto_website.rst b/doc/howto/howto_website.rst index 67b1348258327e9464077c6e20468fdf6b093c22..f94c9a93c65e4b7d261bb3a6932bd81280d1ea7f 100644 --- a/doc/howto/howto_website.rst +++ b/doc/howto/howto_website.rst @@ -553,6 +553,30 @@ keep only the datetime and location: .. patch:: +Moving lectures and TAs +~~~~~~~~~~~~~~~~~~~~~~~ + +There are already demonstration data in events and event types, so we'll want +to delete them before inserting our own. The gist of the operation is fairly +simple, but there are lots of changes: + +* The custom models can be removed as we'll be using standard objects +* The controller has to be altered to fetch from standard objects + (``event.event`` and ``res.users``), we'll use groups to discriminate + between our academy objects and other demo objects, so that has to be used + as well +* HTML templates have to be slightly edited to match the new objects + (our lecture's ``date`` field is replaced by ``event.event``'s + ``date_begin``) +* Missing parts of the standard events have to be added (``res.partner``, + which is where "personal" informations are stored for ``res.users``, does + not have a biographical field. We have to add it) +* Finally demo files must be converted, and existing demo data should be + purged if we do not need it (e.g. existing non-lectures events and event + types can be removed before adding our own) + +.. patch:: + .. [#taprofile] the teaching assistants profile view ends up broken for now, but don't worry we'll get around to it diff --git a/doc/howto/howto_website/move-to-openerp-objects b/doc/howto/howto_website/move-to-openerp-objects new file mode 100644 index 0000000000000000000000000000000000000000..8623d8a90e5fcef21e39f14a158c7d0a3b15b086 --- /dev/null +++ b/doc/howto/howto_website/move-to-openerp-objects @@ -0,0 +1,300 @@ +# HG changeset patch +# Parent ade038cd6dfd855f1d423cffb3d4e242404c28f0 + +diff --git a/__init__.py b/__init__.py +--- a/__init__.py ++++ b/__init__.py +@@ -1,4 +1,3 @@ + # -*- coding: utf-8 -*- + import controllers + import models +- +diff --git a/__openerp__.py b/__openerp__.py +--- a/__openerp__.py ++++ b/__openerp__.py +@@ -17,10 +17,8 @@ + # any module necessary for this one to work correctly + 'depends': ['website', 'website_event'], + 'data': [ +- 'security/ir.model.access.csv', + 'views/templates.xml', + 'data/records.xml', +- 'data/views.xml', + ], + 'demo': [ + 'demo/teaching_assistants.xml', +diff --git a/controllers/academy.py b/controllers/academy.py +--- a/controllers/academy.py ++++ b/controllers/academy.py +@@ -6,18 +6,29 @@ from openerp.addons.web.controllers impo + class academy(main.Home): + @http.route('/', auth='public', website=True) + def index(self): ++ registry = http.request.registry + cr, uid, context = http.request.cr, http.request.uid, http.request.context +- Lectures = http.request.registry['academy.lectures'] +- tas = http.request.registry['academy.tas'].search_read( +- http.request.cr, http.request.uid, context=http.request.context) ++ ++ Data = registry['ir.model.data'] ++ _, ta_group_id = Data.get_object_reference(cr, uid, 'academy', 'tas') ++ tas = registry['res.users'].search_read( ++ http.request.cr, http.request.uid, ++ [('groups_id', '=', [ta_group_id])], ++ context=http.request.context) ++ ++ Lectures = registry['event.event'] ++ _, lecture_type_id = Data.get_object_reference(cr, uid, 'academy', 'lecture_type') + lectures = Lectures.browse( +- cr, uid, Lectures.search(cr, uid, [], context=context), context=context) ++ cr, uid, ++ Lectures.search(cr, uid, [('type', '=', lecture_type_id),], context=context), ++ context=context) ++ + return http.request.website.render('academy.index', { + 'tas': tas, + 'lectures': lectures, + }) + +- @http.route('/tas/<model("academy.tas"):ta>/', auth='public', website=True) ++ @http.route('/tas/<model("res.users"):ta>/', auth='public', website=True) + def ta(self, ta): + return http.request.website.render('academy.ta', { + 'ta': ta, +diff --git a/data/views.xml b/data/views.xml +deleted file mode 100644 +--- a/data/views.xml ++++ /dev/null +@@ -1,25 +0,0 @@ +-<openerp> +- <data> +- <record id="list_academy_lecture" model="ir.ui.view"> +- <field name="model">academy.lectures</field> +- <field name="arch" type="xml"> +- <tree string="Lectures"> +- <field name="name"/> +- <field name="date"/> +- </tree> +- </field> +- </record> +- +- <record id="action_academy_lecture" model="ir.actions.act_window"> +- <field name="name">Academy lectures</field> +- <field name="res_model">academy.lectures</field> +- </record> +- +- <menuitem sequence="0" id="menu_academy" name="Academy"/> +- <menuitem id="menu_academy_content" parent="menu_academy" +- name="Academy Content"/> +- <menuitem id="menu_academy_content_lectures" +- parent="menu_academy_content" +- action="action_academy_lecture"/> +- </data> +-</openerp> +diff --git a/demo/lectures.xml b/demo/lectures.xml +--- a/demo/lectures.xml ++++ b/demo/lectures.xml +@@ -1,24 +1,47 @@ + <openerp> + <data> +- <record model="academy.lectures" id="lecture1"> ++ <delete model="event.registration" search="[]"/> ++ <delete model="event.event" search="[]"/> ++ <delete model="event.type" search="[]"/> ++ ++ <record model="event.type" id="lecture_type"> ++ <field name="name">Lecture</field> ++ </record> ++ ++ <record model="event.event" id="lecture1"> + <field name="name">Lecture 1</field> +- <field name="date">2014-01-06</field> ++ <field name="date_begin">2015-01-06 10:00:00</field> ++ <field name="date_end">2015-01-06 12:00:00</field> ++ <field name="type" ref="lecture_type"/> ++ <field name="website_published" eval="True"/> + </record> +- <record model="academy.lectures" id="lecture2"> ++ <record model="event.event" id="lecture2"> + <field name="name">Lecture 2</field> +- <field name="date">2014-01-08</field> ++ <field name="date_begin">2015-01-08 10:00:00</field> ++ <field name="date_end">2015-01-08 12:00:00</field> ++ <field name="type" ref="lecture_type"/> ++ <field name="website_published" eval="True"/> + </record> +- <record model="academy.lectures" id="lecture3"> ++ <record model="event.event" id="lecture3"> + <field name="name">Lecture 3</field> +- <field name="date">2014-01-10</field> ++ <field name="date_begin">2015-01-10 10:00:00</field> ++ <field name="date_end">2015-01-10 12:00:00</field> ++ <field name="type" ref="lecture_type"/> ++ <field name="website_published" eval="True"/> + </record> +- <record model="academy.lectures" id="lecture4"> ++ <record model="event.event" id="lecture4"> + <field name="name">Lecture 4</field> +- <field name="date">2014-01-13</field> ++ <field name="date_begin">2015-01-13 10:00:00</field> ++ <field name="date_end">2015-01-13 12:00:00</field> ++ <field name="type" ref="lecture_type"/> ++ <field name="website_published" eval="True"/> + </record> +- <record model="academy.lectures" id="lecture5"> ++ <record model="event.event" id="lecture5"> + <field name="name">Lecture 5</field> +- <field name="date">2014-01-15</field> ++ <field name="date_begin">2015-01-15 10:00:00</field> ++ <field name="date_end">2015-01-15 12:00:00</field> ++ <field name="type" ref="lecture_type"/> ++ <field name="website_published" eval="True"/> + </record> + </data> + </openerp> +diff --git a/demo/teaching_assistants.xml b/demo/teaching_assistants.xml +--- a/demo/teaching_assistants.xml ++++ b/demo/teaching_assistants.xml +@@ -1,19 +1,54 @@ + <openerp> + <data> +- <record id="padilla" model="academy.tas"> ++ <record id="padilla_p" model="res.partner"> + <field name="name">Diana Padilla</field> + </record> +- <record id="carroll" model="academy.tas"> ++ <record id="padilla" model="res.users"> ++ <field name="login">padilla</field> ++ <field name="partner_id" ref="padilla_p"/> ++ </record> ++ ++ <record id="carroll_p" model="res.partner"> + <field name="name">Jody Carroll</field> + </record> +- <record id="vaughn" model="academy.tas"> ++ <record id="carroll" model="res.users"> ++ <field name="login">carroll</field> ++ <field name="partner_id" ref="carroll_p"/> ++ </record> ++ ++ <record id="vaughn_p" model="res.partner"> + <field name="name">Lester Vaughn</field> + </record> +- <record id="jimenez" model="academy.tas"> ++ <record id="vaughn" model="res.users"> ++ <field name="login">vaughn</field> ++ <field name="partner_id" ref="vaughn_p"/> ++ </record> ++ ++ <record id="jimenez_p" model="res.partner"> + <field name="name">Paul Jimenez</field> + </record> +- <record id="harris" model="academy.tas"> ++ <record id="jimenez" model="res.users"> ++ <field name="login">jimenez</field> ++ <field name="partner_id" ref="jimenez_p"/> ++ </record> ++ ++ <record id="harris_p" model="res.partner"> + <field name="name">Tanya Harris</field> + </record> ++ <record id="harris" model="res.users"> ++ <field name="login">harris</field> ++ <field name="partner_id" ref="harris_p"/> ++ </record> ++ ++ <record id="tas" model="res.groups"> ++ <field name="name">Teaching Assistants</field> ++ <field name="users" eval="[ ++ (4, ref('padilla')), ++ (4, ref('carroll')), ++ (4, ref('vaughn')), ++ (4, ref('jimenez')), ++ (4, ref('harris')), ++ ]"/> ++ </record> + </data> + </openerp> +diff --git a/models/__init__.py b/models/__init__.py +--- a/models/__init__.py ++++ b/models/__init__.py +@@ -1,3 +1,3 @@ + # -*- coding: utf-8 -*- +-import academy ++import res_partner + +diff --git a/models/academy.py b/models/academy.py +deleted file mode 100644 +--- a/models/academy.py ++++ /dev/null +@@ -1,19 +0,0 @@ +-# -*- coding: utf-8 -*- +-from openerp.osv import orm, fields +- +-class TeachingAssistants(orm.Model): +- _name = "academy.tas" +- +- _columns = { +- 'name': fields.char(), +- 'biography': fields.html(), +- } +- +-class Lectures(orm.Model): +- _name = 'academy.lectures' +- _order = 'date ASC' +- +- _columns = { +- 'name': fields.char(required=True, string="Name"), +- 'date': fields.date(required=True, string="Date"), +- } +diff --git a/models/res_partner.py b/models/res_partner.py +new file mode 100644 +--- /dev/null ++++ b/models/res_partner.py +@@ -0,0 +1,8 @@ ++from openerp.osv import orm, fields ++ ++class Partner(orm.Model): ++ _inherit = 'res.partner' ++ ++ _columns = { ++ 'biography': fields.html(), ++ } +diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv +deleted file mode 100644 +--- a/security/ir.model.access.csv ++++ /dev/null +@@ -1,3 +0,0 @@ +-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +-access_academy_tas,access_academy_tas,model_academy_tas,,1,0,0,0 +-access_academy_lectures,access_academy_lectures,model_academy_lectures,,1,0,0,0 +\ No newline at end of file +diff --git a/views/templates.xml b/views/templates.xml +--- a/views/templates.xml ++++ b/views/templates.xml +@@ -31,11 +31,11 @@ + </tr> + <tr t-foreach="lectures" t-as="lecture"> + <td> +- <span t-field="lecture.date" ++ <span t-field="lecture.date_begin" + t-field-options='{"format": "long"}'/> + </td> + <td> +- <span t-field="lecture.date" ++ <span t-field="lecture.date_begin" + t-field-options='{"format": "EEE"}'/> + </td> + <td> +@@ -56,9 +56,9 @@ + <div class="oe_structure"/> + <div class="oe_structure"> + <div class="container"> +- <h1 t-field="ta.name"/> ++ <h1 t-field="ta.partner_id.name"/> + <h2>Biography</h2> +- <div t-field="ta.biography"/> ++ <div t-field="ta.partner_id.biography"/> + </div> + </div> + <div class="oe_structure"/> diff --git a/doc/howto/howto_website/series b/doc/howto/howto_website/series index 18f3e6aba0e25f5bae1233a987d0593e6623e849..0cdae6542bf99d896069bc9466316c01555effe4 100644 --- a/doc/howto/howto_website/series +++ b/doc/howto/howto_website/series @@ -21,3 +21,4 @@ events-menu-rename disable-events-filters events-remove-breadcrumbs simplify-lectures-list +move-to-openerp-objects