Merge lp:~savoirfairelinux-openerp/openerp-hr/7.0-experience into lp:openerp-hr

Status: Rejected
Rejected by: Sandy Carter (http://www.savoirfairelinux.com)
Proposed branch: lp:~savoirfairelinux-openerp/openerp-hr/7.0-experience
Merge into: lp:openerp-hr
Diff against target: 734 lines (+672/-0)
12 files modified
hr_experience/__init__.py (+26/-0)
hr_experience/__openerp__.py (+57/-0)
hr_experience/hr_academic.py (+53/-0)
hr_experience/hr_academic_view.xml (+55/-0)
hr_experience/hr_certification.py (+51/-0)
hr_experience/hr_certification_view.xml (+55/-0)
hr_experience/hr_experience.py (+56/-0)
hr_experience/hr_experience_view.xml (+24/-0)
hr_experience/hr_professional.py (+50/-0)
hr_experience/hr_professional_view.xml (+51/-0)
hr_experience/i18n/hr_experience.pot (+190/-0)
hr_experience/security/ir.model.access.csv (+4/-0)
To merge this branch: bzr merge lp:~savoirfairelinux-openerp/openerp-hr/7.0-experience
Reviewer Review Type Date Requested Status
Daniel Reis Needs Information
Maxime Chambreuil (http://www.savoirfairelinux.com) code review Needs Fixing
Review via email: mp+195315@code.launchpad.net

Description of the change

[IMP] fix the copyright and update to reflect the new fields and views

To post a comment you must log in.
Revision history for this message
Daniel Reis (dreis-pt) wrote :

To fix: you're missing the i18n .pot file.

On the design choices: I certainly wouldn't mix Experience, Academic and Certifications.

Experience is mostly informative.
Academic can have reporting implications, so I might need to have Academic mandatory, but leave Experience optional.
This tips me that they should be two different fields on the employee form.

About Certification, they are more like Skills than Experience.
In fact, they are Certified Skills, and would be better off as an enhancement on the skills modules.

Another thing that makes me uneasy: this works only Employees, what about Applicants? (I know, it's not an easy question, but I suspect that here is a smart answer for it)

review: Needs Information
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

I agree with the applicant point.

Concerning the rest, I based the analysis on LinkedIn and each of Experience, Academic and Certifications share the same type of fields.

By having the same model, it is easier to import data from LinkedIn afterwards.

Revision history for this message
Daniel Reis (dreis-pt) wrote :

I don't see that pushing the LinkedIn data for Experience to a table and Academic to another would be a problem. I would rather concentrate on choosing the data model that better fits the use cases in OpenERP.

From and end-user PoV, Experience, Academic and Certifications are different things.
And for an end-user, it's reasonable for Certifications to go alongside other skills: after all they are a just a special type of skill, that is independently certified.

I think a user expects to see a "Experience" field, and an "Academic" field.
Same for a resume report: you expect them to be in separate sections.

Also, the fields needed to describe "Academic" and "Experience" are quite different, so there's also no rationale there for having them on the same table.

Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

> I think a user expects to see a "Experience" field, and an "Academic" field.

We can make 3 different lists with different domains in the view and have the same table in the db.

> Same for a resume report: you expect them to be in separate sections.

They are in separate section in the report.

> Also, the fields needed to describe "Academic" and "Experience" are quite
> different, so there's also no rationale there for having them on the same
> table.

Well, in fact, they are not so different. They share a lot of common fields.

You can see this solution as the same used for Partner, Contact and Address...

Revision history for this message
Daniel Reis (dreis-pt) wrote :

> We can make 3 different lists with different domains in the view and have the same table in the db.

OK, that could work.
IMHO it's more difficult to implement than separate tables, but that's just an opinion.
Experience and Academic lines/forms should propose only the relevant fields for each.

And what about Certifications?
IMO they should be stored alongside other employee skills, so that they can be equally usable to relate to Job descriptions or training courses.

Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

Please add the 3 different lists with different domains in the view

review: Needs Fixing (code review)
Revision history for this message
Daniel Reis (dreis-pt) :
review: Abstain
Revision history for this message
El Hadji Dem (http://www.savoirfairelinux.com) (eh-dem) wrote :

Do you know how to add filter or domain for one2many field ??
I try this http://help.openerp.com/question/6602/how-filter-x2many/, but it doesn't work.

https://bugs.launchpad.net/openobject-server/+bug/371367

Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

Everything has been fixed. Resetting as 'Needs Review'.

Revision history for this message
Daniel Reis (dreis-pt) wrote :

Hi there. I noticed that this is not the implementation Maxime suggested.
We are creating three with basically the same data fields (as Maxime predicted).
From an OO design and database normalization standpoint, this doesn't look good
I'm sorry if changing my mind causes extra work, but I can see that Maxime was right.

If the one2many with domains is too difficult to implement (?), you could try subclasses:
- create a "hr.curriculum" base class with all the common fields
- make "hr.experience", "hr.academic", "hr.certification" inherit from "hr.curriculum"

review: Needs Information
Revision history for this message
Sandy Carter (http://www.savoirfairelinux.com) (sandy-carter) wrote :

Proposal moved to github

Unmerged revisions

72. By El Hadji Dem (http://www.savoirfairelinux.com)

[IMP] separate academic, professional and certfication experiences, pep8

71. By EL HADJI DEM <email address hidden>

[IMP] add hr_experience.pot file and delete fr.po

70. By EL HADJI DEM <email address hidden>

[IMP] don't need to instantiate a class in 7.0

69. By EL HADJI DEM <email address hidden>

[IMP] fix the copyright and update to reflect the new fields and views

68. By EL HADJI DEM <email address hidden>

[ADD] adds hr_experience module

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'hr_experience'
2=== added file 'hr_experience/__init__.py'
3--- hr_experience/__init__.py 1970-01-01 00:00:00 +0000
4+++ hr_experience/__init__.py 2013-12-18 18:14:50 +0000
5@@ -0,0 +1,26 @@
6+# -*- encoding: utf-8 -*-
7+###############################################################################
8+#
9+# OpenERP, Open Source Management Solution
10+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
11+#
12+# This program is free software: you can redistribute it and/or modify
13+# it under the terms of the GNU Affero General Public License as
14+# published by the Free Software Foundation, either version 3 of the
15+# License, or (at your option) any later version.
16+#
17+# This program is distributed in the hope that it will be useful,
18+# but WITHOUT ANY WARRANTY; without even the implied warranty of
19+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20+# GNU Affero General Public License for more details.
21+#
22+# You should have received a copy of the GNU Affero General Public License
23+# along with this program. If not, see <http://www.gnu.org/licenses/>.
24+#
25+###############################################################################
26+
27+import hr_academic
28+import hr_professional
29+import hr_certification
30+
31+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
32
33=== added file 'hr_experience/__openerp__.py'
34--- hr_experience/__openerp__.py 1970-01-01 00:00:00 +0000
35+++ hr_experience/__openerp__.py 2013-12-18 18:14:50 +0000
36@@ -0,0 +1,57 @@
37+# -*- encoding: utf-8 -*-
38+###############################################################################
39+#
40+# OpenERP, Open Source Management Solution
41+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
42+#
43+# This program is free software: you can redistribute it and/or modify
44+# it under the terms of the GNU Affero General Public License as
45+# published by the Free Software Foundation, either version 3 of the
46+# License, or (at your option) any later version.
47+#
48+# This program is distributed in the hope that it will be useful,
49+# but WITHOUT ANY WARRANTY; without even the implied warranty of
50+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
51+# GNU Affero General Public License for more details.
52+#
53+# You should have received a copy of the GNU Affero General Public License
54+# along with this program. If not, see <http://www.gnu.org/licenses/>.
55+#
56+###############################################################################
57+
58+{
59+ "name": "Experience Management",
60+ "version": "0.1",
61+ "author": "Savoir-faire Linux",
62+ "maintainer": 'Savoir-faire Linux',
63+ "website": "http://www.savoirfairelinux.com",
64+ "category": "Human Resources",
65+ "description": """
66+Experience Management
67+=====================
68+
69+This module allows you to manage your employee experiences:
70+ * Professional
71+ * Academic
72+ * Certification
73+
74+Contributors
75+------------
76+* El Hadji DEM (elhaji.dem@savoirfairelinux.com)
77+""",
78+
79+ "depends": ["hr", ],
80+ 'external_dependencies': {},
81+ 'data': [
82+ "security/ir.model.access.csv",
83+ "hr_experience_view.xml",
84+ "hr_academic_view.xml",
85+ "hr_professional_view.xml",
86+ "hr_certification_view.xml",
87+ ],
88+ "demo": [],
89+ "test": [],
90+ "installable": True,
91+ "active": False,
92+}
93+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
94
95=== added file 'hr_experience/hr_academic.py'
96--- hr_experience/hr_academic.py 1970-01-01 00:00:00 +0000
97+++ hr_experience/hr_academic.py 2013-12-18 18:14:50 +0000
98@@ -0,0 +1,53 @@
99+# -*- encoding: utf-8 -*-
100+###############################################################################
101+#
102+# OpenERP, Open Source Management Solution
103+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
104+#
105+# This program is free software: you can redistribute it and/or modify
106+# it under the terms of the GNU Affero General Public License as
107+# published by the Free Software Foundation, either version 3 of the
108+# License, or (at your option) any later version.
109+#
110+# This program is distributed in the hope that it will be useful,
111+# but WITHOUT ANY WARRANTY; without even the implied warranty of
112+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
113+# GNU Affero General Public License for more details.
114+#
115+# You should have received a copy of the GNU Affero General Public License
116+# along with this program. If not, see <http://www.gnu.org/licenses/>.
117+#
118+###############################################################################
119+
120+from openerp.osv import fields, orm
121+
122+
123+class hr_academic(orm.Model):
124+ _name = 'hr.academic'
125+ _columns = {
126+ 'name': fields.char('Name', size=64, required=True, translate=True),
127+ 'employee_id': fields.many2one('hr.employee', 'Employee', required=True),
128+ 'start_date': fields.date('Start date'),
129+ 'end_date': fields.date('End date'),
130+ 'description': fields.text('Description', translate=True),
131+ 'partner_id': fields.many2one('res.partner', 'Partner',
132+ help="Employer, School, University, Certification Authority"),
133+ 'location': fields.char('Location', size=64, translate=True),
134+ 'diploma': fields.char('Diploma', size=64, translate=True),
135+ 'study_field': fields.char('Field of study', size=64, translate=True),
136+ 'activities': fields.text('Activities and associations', translate=True),
137+ 'expire': fields.boolean('Expire'),
138+ }
139+
140+ _defaults = {
141+ 'expire': True,
142+ }
143+
144+
145+class hr_employee(orm.Model):
146+ _inherit = 'hr.employee'
147+ _columns = {
148+ 'academic_ids': fields.one2many('hr.academic', 'employee_id', 'Academic experiences'),
149+ }
150+
151+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
152
153=== added file 'hr_experience/hr_academic_view.xml'
154--- hr_experience/hr_academic_view.xml 1970-01-01 00:00:00 +0000
155+++ hr_experience/hr_academic_view.xml 2013-12-18 18:14:50 +0000
156@@ -0,0 +1,55 @@
157+<openerp>
158+ <data>
159+ <!-- academic tree-->
160+ <record model="ir.ui.view" id="view_academic_tree">
161+ <field name="name">hr.academic.tree</field>
162+ <field name="model">hr.academic</field>
163+ <field name="arch" type="xml">
164+ <tree string="Academic experiences">
165+ <field name="name"/>
166+ <field name="employee_id"/>
167+ <field name="partner_id"/>
168+ <field name="start_date"/>
169+ <field name="end_date"/>
170+ </tree>
171+ </field>
172+ </record>
173+ <!-- academic form-->
174+ <record model="ir.ui.view" id="view_academic_form">
175+ <field name="name">hr.academic.form</field>
176+ <field name="model">hr.academic</field>
177+ <field name="arch" type="xml">
178+ <form string="Academic experience">
179+ <field name="name"/>
180+ <field name="employee_id"/>
181+ <separator string="Dates" colspan="4"/>
182+ <field name="start_date"/>
183+ <field name="expire"/>
184+ <field name="end_date" attrs="{'invisible':[('expire', '=', False)]}"/>
185+ <separator string="Partner information" colspan="4"/>
186+ <field name="partner_id"/>
187+ <field name="location"/>
188+ <group colspan="4">
189+ <separator string="Academic information" colspan="4"/>
190+ <field name="diploma" />
191+ <field name="study_field"/>
192+ <field name="activities"/>
193+ </group>
194+ <separator string="Description" colspan="4"/>
195+ <field name="description" colspan="4" nolabel="1"/>
196+ </form>
197+ </field>
198+ </record>
199+ <!-- Menu -->
200+ <record model="ir.actions.act_window" id="open_view_academic_form">
201+ <field name="res_model">hr.academic</field>
202+ <field name="view_type">form</field>
203+ <field name="view_mode">tree,form</field>
204+ </record>
205+ <menuitem name="Academic Experiences"
206+ parent="hr.menu_hr_configuration"
207+ id="menu_open_view_academic_form"
208+ action="open_view_academic_form"/>
209+
210+ </data>
211+</openerp>
212
213=== added file 'hr_experience/hr_certification.py'
214--- hr_experience/hr_certification.py 1970-01-01 00:00:00 +0000
215+++ hr_experience/hr_certification.py 2013-12-18 18:14:50 +0000
216@@ -0,0 +1,51 @@
217+# -*- encoding: utf-8 -*-
218+###############################################################################
219+#
220+# OpenERP, Open Source Management Solution
221+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
222+#
223+# This program is free software: you can redistribute it and/or modify
224+# it under the terms of the GNU Affero General Public License as
225+# published by the Free Software Foundation, either version 3 of the
226+# License, or (at your option) any later version.
227+#
228+# This program is distributed in the hope that it will be useful,
229+# but WITHOUT ANY WARRANTY; without even the implied warranty of
230+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
231+# GNU Affero General Public License for more details.
232+#
233+# You should have received a copy of the GNU Affero General Public License
234+# along with this program. If not, see <http://www.gnu.org/licenses/>.
235+#
236+###############################################################################
237+
238+from openerp.osv import fields, orm
239+
240+
241+class hr_certification(orm.Model):
242+ _name = 'hr.certification'
243+ _columns = {
244+ 'name': fields.char('Name', size=64, required=True, translate=True),
245+ 'employee_id': fields.many2one('hr.employee', 'Employee', required=True),
246+ 'start_date': fields.date('Start date'),
247+ 'end_date': fields.date('End date'),
248+ 'description': fields.text('Description', translate=True),
249+ 'partner_id': fields.many2one('res.partner', 'Partner',
250+ help="Employer, School, University, Certification Authority"),
251+ 'location': fields.char('Location', size=64, translate=True),
252+ 'certification': fields.char('Certification Number', size=64),
253+ 'expire': fields.boolean('Expire'),
254+ }
255+
256+ _defaults = {
257+ 'expire': True,
258+ }
259+
260+
261+class hr_employee(orm.Model):
262+ _inherit = 'hr.employee'
263+ _columns = {
264+ 'certification_ids': fields.one2many('hr.certification', 'employee_id', 'Certifications'),
265+ }
266+
267+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
268
269=== added file 'hr_experience/hr_certification_view.xml'
270--- hr_experience/hr_certification_view.xml 1970-01-01 00:00:00 +0000
271+++ hr_experience/hr_certification_view.xml 2013-12-18 18:14:50 +0000
272@@ -0,0 +1,55 @@
273+<openerp>
274+ <data>
275+ <!-- certification tree -->
276+ <record model="ir.ui.view" id="view_certification_tree">
277+ <field name="name">hr.certification.tree</field>
278+ <field name="model">hr.certification</field>
279+ <field name="type">tree</field>
280+ <field name="arch" type="xml">
281+ <tree string="certifications">
282+ <field name="name"/>
283+ <field name="employee_id"/>
284+ <field name="partner_id"/>
285+ <field name="start_date"/>
286+ <field name="end_date"/>
287+ </tree>
288+ </field>
289+ </record>
290+ <!-- certification tree -->
291+ <record model="ir.ui.view" id="view_certification_form">
292+ <field name="name">hr.certification.form</field>
293+ <field name="model">hr.certification</field>
294+ <field name="type">form</field>
295+ <field name="arch" type="xml">
296+ <form string="certification">
297+ <field name="name"/>
298+ <field name="employee_id"/>
299+ <separator string="Dates" colspan="4"/>
300+ <field name="start_date"/>
301+ <field name="expire"/>
302+ <field name="end_date" attrs="{'invisible':[('expire', '=', False)]}"/>
303+ <separator string="Partner information" colspan="4"/>
304+ <field name="partner_id"/>
305+ <field name="location"/>
306+ <group colspan="4">
307+ <separator string="Certification information" colspan="4"/>
308+ <field name="certification"/>
309+ </group>
310+ <separator string="Description" colspan="4"/>
311+ <field name="description" colspan="4" nolabel="1"/>
312+ </form>
313+ </field>
314+ </record>
315+ <!-- Menu -->
316+ <record model="ir.actions.act_window" id="open_view_certification_form">
317+ <field name="res_model">hr.certification</field>
318+ <field name="view_type">form</field>
319+ <field name="view_mode">tree,form</field>
320+ </record>
321+ <menuitem name="Certifications"
322+ parent="hr.menu_hr_configuration"
323+ id="menu_open_view_certification_form"
324+ action="open_view_certification_form"/>
325+
326+ </data>
327+</openerp>
328
329=== added file 'hr_experience/hr_experience.py'
330--- hr_experience/hr_experience.py 1970-01-01 00:00:00 +0000
331+++ hr_experience/hr_experience.py 2013-12-18 18:14:50 +0000
332@@ -0,0 +1,56 @@
333+# -*- encoding: utf-8 -*-
334+###############################################################################
335+#
336+# OpenERP, Open Source Management Solution
337+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
338+#
339+# This program is free software: you can redistribute it and/or modify
340+# it under the terms of the GNU Affero General Public License as
341+# published by the Free Software Foundation, either version 3 of the
342+# License, or (at your option) any later version.
343+#
344+# This program is distributed in the hope that it will be useful,
345+# but WITHOUT ANY WARRANTY; without even the implied warranty of
346+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
347+# GNU Affero General Public License for more details.
348+#
349+# You should have received a copy of the GNU Affero General Public License
350+# along with this program. If not, see <http://www.gnu.org/licenses/>.
351+#
352+###############################################################################
353+from openerp.osv import fields, orm
354+
355+class hr_experience(orm.Model):
356+ _name = 'hr.experience'
357+ _columns = {
358+ 'name': fields.char('Name', size=64, required=True, translate=True),
359+ 'employee_id': fields.many2one('hr.employee', 'Employee', required=True),
360+ 'category': fields.selection((('professional', 'Professional'),
361+ ('academic', 'Academic'),
362+ ('certification', 'Certification')),
363+ 'Category', required=True),
364+ 'start_date': fields.date('Start date'),
365+ 'end_date': fields.date('End date'),
366+ 'description': fields.text('Description', translate=True),
367+ 'partner_id': fields.many2one('res.partner', 'Partner', help="Employer, School, University, Certification Authority"),
368+ 'location': fields.char('Location', size=64, translate=True),
369+ 'diploma': fields.char('Diploma', size=64, translate=True),
370+ 'study_field': fields.char('Field of study', size=64, translate=True),
371+ 'result': fields.char('Result', size=64, translate=True),
372+ 'activities': fields.text('Activities and associations', translate=True),
373+ 'certification': fields.char('Certification Number', size=64),
374+ 'expire': fields.boolean('Expire'),
375+ }
376+
377+ _defaults = {
378+ 'category': 'professional',
379+ 'expire': True,
380+ }
381+
382+class hr_employee(orm.Model):
383+ _inherit = 'hr.employee'
384+ _columns = {
385+ 'experience_ids': fields.one2many('hr.experience', 'employee_id', 'Experiences'),
386+ }
387+
388+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
389
390=== added file 'hr_experience/hr_experience_view.xml'
391--- hr_experience/hr_experience_view.xml 1970-01-01 00:00:00 +0000
392+++ hr_experience/hr_experience_view.xml 2013-12-18 18:14:50 +0000
393@@ -0,0 +1,24 @@
394+<openerp>
395+ <data>
396+ <!-- inheritEmployee -->
397+ <record model="ir.ui.view" id="view_employee_form_inherit">
398+ <field name="name">hr.experience.employee.form</field>
399+ <field name="model">hr.employee</field>
400+ <field name="inherit_id" ref="hr.view_employee_form"/>
401+ <field name="type">form</field>
402+ <field name="arch" type="xml">
403+ <notebook position="inside">
404+ <page string="Academic">
405+ <field name="academic_ids"/>
406+ </page>
407+ <page string="Professional">
408+ <field name="professional_ids"/>
409+ </page>
410+ <page string="Certification">
411+ <field name="certification_ids"/>
412+ </page>
413+ </notebook>
414+ </field>
415+ </record>
416+ </data>
417+</openerp>
418
419=== added file 'hr_experience/hr_professional.py'
420--- hr_experience/hr_professional.py 1970-01-01 00:00:00 +0000
421+++ hr_experience/hr_professional.py 2013-12-18 18:14:50 +0000
422@@ -0,0 +1,50 @@
423+# -*- encoding: utf-8 -*-
424+###############################################################################
425+#
426+# OpenERP, Open Source Management Solution
427+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
428+#
429+# This program is free software: you can redistribute it and/or modify
430+# it under the terms of the GNU Affero General Public License as
431+# published by the Free Software Foundation, either version 3 of the
432+# License, or (at your option) any later version.
433+#
434+# This program is distributed in the hope that it will be useful,
435+# but WITHOUT ANY WARRANTY; without even the implied warranty of
436+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
437+# GNU Affero General Public License for more details.
438+#
439+# You should have received a copy of the GNU Affero General Public License
440+# along with this program. If not, see <http://www.gnu.org/licenses/>.
441+#
442+###############################################################################
443+
444+from openerp.osv import fields, orm
445+
446+
447+class hr_professional(orm.Model):
448+ _name = 'hr.professional'
449+ _columns = {
450+ 'name': fields.char('Name', size=64, required=True, translate=True),
451+ 'employee_id': fields.many2one('hr.employee', 'Employee', required=True),
452+ 'start_date': fields.date('Start date'),
453+ 'end_date': fields.date('End date'),
454+ 'description': fields.text('Description', translate=True),
455+ 'partner_id': fields.many2one('res.partner', 'Partner',
456+ help="Employer, School, University, Certification Authority"),
457+ 'location': fields.char('Location', size=64, translate=True),
458+ 'expire': fields.boolean('Expire'),
459+ }
460+
461+ _defaults = {
462+ 'expire': True,
463+ }
464+
465+
466+class hr_employee(orm.Model):
467+ _inherit = 'hr.employee'
468+ _columns = {
469+ 'professional_ids': fields.one2many('hr.professional', 'employee_id', ' Professional Experiences'),
470+ }
471+
472+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
473
474=== added file 'hr_experience/hr_professional_view.xml'
475--- hr_experience/hr_professional_view.xml 1970-01-01 00:00:00 +0000
476+++ hr_experience/hr_professional_view.xml 2013-12-18 18:14:50 +0000
477@@ -0,0 +1,51 @@
478+<openerp>
479+ <data>
480+ <!-- professional tree -->
481+ <record model="ir.ui.view" id="view_professional_tree">
482+ <field name="name">hr.professional.tree</field>
483+ <field name="model">hr.professional</field>
484+ <field name="type">tree</field>
485+ <field name="arch" type="xml">
486+ <tree string="Professional Experiences">
487+ <field name="name"/>
488+ <field name="employee_id"/>
489+ <field name="partner_id"/>
490+ <field name="start_date"/>
491+ <field name="end_date"/>
492+ </tree>
493+ </field>
494+ </record>
495+ <!-- professional form -->
496+ <record model="ir.ui.view" id="view_professional_form">
497+ <field name="name">hr.professional.form</field>
498+ <field name="model">hr.professional</field>
499+ <field name="type">form</field>
500+ <field name="arch" type="xml">
501+ <form string="Professional Experience">
502+ <field name="name"/>
503+ <field name="employee_id"/>
504+ <separator string="Dates" colspan="4"/>
505+ <field name="start_date"/>
506+ <field name="expire"/>
507+ <field name="end_date" attrs="{'invisible':[('expire', '=', False)]}"/>
508+ <separator string="Partner information" colspan="4"/>
509+ <field name="partner_id"/>
510+ <field name="location"/>
511+ <separator string="Description" colspan="4"/>
512+ <field name="description" colspan="4" nolabel="1"/>
513+ </form>
514+ </field>
515+ </record>
516+ <!-- Menu -->
517+ <record model="ir.actions.act_window" id="open_view_professional_form">
518+ <field name="res_model">hr.professional</field>
519+ <field name="view_type">form</field>
520+ <field name="view_mode">tree,form</field>
521+ </record>
522+ <menuitem name="Professional Experiences"
523+ parent="hr.menu_hr_configuration"
524+ id="menu_open_view_professional_form"
525+ action="open_view_professional_form"/>
526+
527+ </data>
528+</openerp>
529
530=== added directory 'hr_experience/i18n'
531=== added file 'hr_experience/i18n/hr_experience.pot'
532--- hr_experience/i18n/hr_experience.pot 1970-01-01 00:00:00 +0000
533+++ hr_experience/i18n/hr_experience.pot 2013-12-18 18:14:50 +0000
534@@ -0,0 +1,190 @@
535+# Translation of OpenERP Server.
536+# This file contains the translation of the following modules:
537+# * hr_experience
538+#
539+msgid ""
540+msgstr ""
541+"Project-Id-Version: OpenERP Server 7.0\n"
542+"Report-Msgid-Bugs-To: \n"
543+"POT-Creation-Date: 2013-12-18 17:21+0000\n"
544+"PO-Revision-Date: 2013-12-18 12:22-0500\n"
545+"Last-Translator: \n"
546+"Language-Team: \n"
547+"MIME-Version: 1.0\n"
548+"Content-Type: text/plain; charset=UTF-8\n"
549+"Content-Transfer-Encoding: 8bit\n"
550+"Plural-Forms: \n"
551+"X-Generator: Poedit 1.5.4\n"
552+
553+#. module: hr_experience
554+#: view:hr.certification:0
555+msgid "certification"
556+msgstr ""
557+
558+#. module: hr_experience
559+#: field:hr.certification,certification:0
560+msgid "Certification Number"
561+msgstr ""
562+
563+#. module: hr_experience
564+#: help:hr.academic,partner_id:0 help:hr.certification,partner_id:0
565+#: help:hr.professional,partner_id:0
566+msgid "Employer, School, University, Certification Authority"
567+msgstr ""
568+
569+#. module: hr_experience
570+#: field:hr.academic,diploma:0
571+msgid "Diploma"
572+msgstr ""
573+
574+#. module: hr_experience
575+#: view:hr.academic:0 view:hr.certification:0 view:hr.professional:0
576+msgid "Partner information"
577+msgstr ""
578+
579+#. module: hr_experience
580+#: field:hr.academic,location:0 field:hr.certification,location:0
581+#: field:hr.professional,location:0
582+msgid "Location"
583+msgstr ""
584+
585+#. module: hr_experience
586+#: field:hr.academic,employee_id:0 field:hr.certification,employee_id:0
587+#: field:hr.professional,employee_id:0
588+#: model:ir.model,name:hr_experience.model_hr_employee
589+msgid "Employee"
590+msgstr ""
591+
592+#. module: hr_experience
593+#: field:hr.academic,start_date:0 field:hr.certification,start_date:0
594+#: field:hr.professional,start_date:0
595+msgid "Start date"
596+msgstr ""
597+
598+#. module: hr_experience
599+#: field:hr.academic,activities:0
600+msgid "Activities and associations"
601+msgstr ""
602+
603+#. module: hr_experience
604+#: view:hr.academic:0 field:hr.academic,description:0 view:hr.certification:0
605+#: field:hr.certification,description:0 view:hr.professional:0
606+#: field:hr.professional,description:0
607+msgid "Description"
608+msgstr ""
609+
610+#. module: hr_experience
611+#: field:hr.academic,study_field:0
612+msgid "Field of study"
613+msgstr ""
614+
615+#. module: hr_experience
616+#: model:ir.ui.menu,name:hr_experience.menu_open_view_academic_form
617+msgid "Academic Experiences"
618+msgstr ""
619+
620+#. module: hr_experience
621+#: view:hr.certification:0
622+msgid "Certification information"
623+msgstr ""
624+
625+#. module: hr_experience
626+#: field:hr.academic,expire:0 field:hr.certification,expire:0
627+#: field:hr.professional,expire:0
628+msgid "Expire"
629+msgstr ""
630+
631+#. module: hr_experience
632+#: view:hr.professional:0
633+msgid "Professional Experience"
634+msgstr ""
635+
636+#. module: hr_experience
637+#: view:hr.academic:0
638+msgid "Academic information"
639+msgstr ""
640+
641+#. module: hr_experience
642+#: view:hr.academic:0 view:hr.certification:0 view:hr.professional:0
643+msgid "Dates"
644+msgstr ""
645+
646+#. module: hr_experience
647+#: field:hr.employee,certification_ids:0
648+#: model:ir.ui.menu,name:hr_experience.menu_open_view_certification_form
649+msgid "Certifications"
650+msgstr ""
651+
652+#. module: hr_experience
653+#: field:hr.academic,name:0 field:hr.certification,name:0
654+#: field:hr.professional,name:0
655+msgid "Name"
656+msgstr ""
657+
658+#. module: hr_experience
659+#: view:hr.academic:0 field:hr.employee,academic_ids:0
660+msgid "Academic experiences"
661+msgstr ""
662+
663+#. module: hr_experience
664+#: field:hr.employee,professional_ids:0
665+msgid " Professional Experiences"
666+msgstr ""
667+
668+#. module: hr_experience
669+#: view:hr.employee:0
670+msgid "Academic"
671+msgstr ""
672+
673+#. module: hr_experience
674+#: view:hr.employee:0
675+msgid "Professional"
676+msgstr ""
677+
678+#. module: hr_experience
679+#: view:hr.academic:0
680+msgid "Academic experience"
681+msgstr ""
682+
683+#. module: hr_experience
684+#: model:ir.model,name:hr_experience.model_hr_professional
685+msgid "hr.professional"
686+msgstr ""
687+
688+#. module: hr_experience
689+#: field:hr.academic,end_date:0 field:hr.certification,end_date:0
690+#: field:hr.professional,end_date:0
691+msgid "End date"
692+msgstr ""
693+
694+#. module: hr_experience
695+#: model:ir.model,name:hr_experience.model_hr_academic
696+msgid "hr.academic"
697+msgstr ""
698+
699+#. module: hr_experience
700+#: view:hr.certification:0
701+msgid "certifications"
702+msgstr ""
703+
704+#. module: hr_experience
705+#: view:hr.employee:0
706+msgid "Certification"
707+msgstr ""
708+
709+#. module: hr_experience
710+#: model:ir.model,name:hr_experience.model_hr_certification
711+msgid "hr.certification"
712+msgstr ""
713+
714+#. module: hr_experience
715+#: field:hr.academic,partner_id:0 field:hr.certification,partner_id:0
716+#: field:hr.professional,partner_id:0
717+msgid "Partner"
718+msgstr ""
719+
720+#. module: hr_experience
721+#: view:hr.professional:0
722+#: model:ir.ui.menu,name:hr_experience.menu_open_view_professional_form
723+msgid "Professional Experiences"
724+msgstr ""
725
726=== added directory 'hr_experience/security'
727=== added file 'hr_experience/security/ir.model.access.csv'
728--- hr_experience/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
729+++ hr_experience/security/ir.model.access.csv 2013-12-18 18:14:50 +0000
730@@ -0,0 +1,4 @@
731+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
732+"access_hr_academic","hr.academic","model_hr_academic",base.group_hr_user,1,1,1,1
733+"access_hr_professional","hr.professional","model_hr_professional",base.group_hr_user,1,1,1,1
734+"access_hr_certification","hr.certification","model_hr_certification",base.group_hr_user,1,1,1,1