[ADD] move data from custom objects to standard

This commit is contained in:
Xavier Morel 2014-04-16 15:16:22 +02:00
parent ddf24b3ab6
commit b6f6e9d3a3
3 changed files with 325 additions and 0 deletions

View File

@ -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

View File

@ -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"/>

View File

@ -21,3 +21,4 @@ events-menu-rename
disable-events-filters
events-remove-breadcrumbs
simplify-lectures-list
move-to-openerp-objects