Merge lp:~sylvain-legal/openerp-french-localization/7.0-l10n_fr_department into lp:openerp-french-localization/7.0

Proposed by Sylvain LE GAL (GRAP)
Status: Merged
Merged at revision: 3
Proposed branch: lp:~sylvain-legal/openerp-french-localization/7.0-l10n_fr_department
Merge into: lp:openerp-french-localization/7.0
Prerequisite: lp:~sylvain-legal/openerp-french-localization/7.0-l10n_fr_state
Diff against target: 1464 lines (+1391/-0)
12 files modified
l10n_fr_department/__init__.py (+23/-0)
l10n_fr_department/__openerp__.py (+64/-0)
l10n_fr_department/data/res_country_department_data.yml (+790/-0)
l10n_fr_department/i18n/fr.po (+148/-0)
l10n_fr_department/i18n/l10n_fr_department.pot (+92/-0)
l10n_fr_department/model/__init__.py (+24/-0)
l10n_fr_department/model/res_country_department.py (+49/-0)
l10n_fr_department/model/res_country_state.py (+34/-0)
l10n_fr_department/security/ir_model_access.yml (+42/-0)
l10n_fr_department/view/action.xml (+31/-0)
l10n_fr_department/view/menu.xml (+28/-0)
l10n_fr_department/view/view.xml (+66/-0)
To merge this branch: bzr merge lp:~sylvain-legal/openerp-french-localization/7.0-l10n_fr_department
Reviewer Review Type Date Requested Status
arthru code-reviewed, no test Approve
Review via email: mp+212916@code.launchpad.net

Commit message

[ADD] New module 'l10n_fr_department' to populate a new model res_country_department (Division of states in France)

Description of the change

[ADD] New module 'l10n_fr_department' to populate a new model res_country_department (Division of states in France)

To post a comment you must log in.
Revision history for this message
Alexis de Lattre (alexis-via) wrote :

Here are my remarks :
1) Maybe it would be a good idea to add an sql_constraint to check the unicity of the "code" field
2) Declare the reverse one2many link from states to departements (just declare it, don't add it in the view ; at least, for those who may want to use it, they don't have to declare the link themselves).
3) Add a search view on the departments, that would add the possibility to make a direct search on the "code" field
4) In __openerp__.py, I would add a 'summary' key, and remove the unused keys
5) make it pep-8 valid ? :-)
6) I wonder if it is best to give write access to the group "Technical Features" as you do, or the group "Administration > Settings". At least, you didn't choose to give write access to the group "Partner Manager", which is a mistake made by OpenERP S.A. in the base module for res.country ! But I guess that "Technical Features" is fine...
7) In the files, you say "See __openerp__.py file for Copyright and Licence Informations." First, the copyright is always stated per file, so as to have a more accurate approch of who has copyright on what. THen, the idea of having the block of text with the standard AGPL text may be a bit "heavy", but that's what is recommanded by the FSF, that's why almost everybody do it that way. If you don't want to display the block in all the files, you should at least put it in the __openerp__.py file.

I suppose that the DOMs are not in your list because you consider that they are attached to another res.country (RE for Reunion Island for example), don't you ? By the way, I have always thought that DOMs should not have their own res.country, because they are not a country...

3. By Sylvain LE GAL (GRAP)

[REF] change csv file to yml file
[REF] pep8 compliance
[REF] adding licence information on all files.
[ADD] Sql constraint on res_country_department.code field.

4. By Sylvain LE GAL (GRAP)

[REF] change constraint name + add translation.
[ADD] complete Search view for res_country_department model.

5. By Sylvain LE GAL (GRAP)

[ADD] one2many relation in res_country_state to res_country_department;

Revision history for this message
Sylvain LE GAL (GRAP) (sylvain-legal) wrote :

Hi Alexis,

Thanks for your complete review.
Point 1, 2, 3, 4, 5, 6, 7 : done. Great ideas. About group, I changed 'base.group_system' group.

About DOM remarks : Yes, there is no special DOM in my list (as in my MP about 'states). This is OpenERP SA choice that populate res_country database with DOM. We have to accept it. Otherwise, there will be DOM in both res_country and res_country_department models that is not understandable for end users.

Revision history for this message
Alexis de Lattre (alexis-via) wrote :

OK, thanks for this update.

We forgot to talk about the main topic of this MP : should we add a fields.function "department_id" on res.partner (type=many2one) ? I think we should do that, because a lot of users would expect to have such a field on their partners after the installation of the module, to be able to make statistics per department.

This field would need to be stored with invalidation functions (to be able to compute statistics). I think that we should not display this field in the form view of res.partner, to keep the form view of partners as simple as possible.

Otherwise, I have a few more remarks :

10) view/action.xml : I would remove "<field name="type">ir.actions.act_window</field>" because it is not needed (the info is already in model="ir.actions.act_window"). That was needed in old version of OpenERP, but not in recent versions.
11) I would rename "country_state_id" to "state_id", to have the same name as the many2one field on res.partner
12) in view/menu.xml, I would remove "groups="base.group_no_one" because we already have the required ACLs on res.country.department, so we don't need to add a groups= on the menuitem (I find that quite annoying, because it gives more work to integrators that need to modify the access control).
I would also remove the trailing spaces in that file.

6. By Sylvain LE GAL (GRAP)

[FIX] removing duplicated groups restrictions.

7. By Sylvain LE GAL (GRAP)

[REF] remove useless 'type' definition in action.xml file.
[REF] removing blank lines.

8. By Sylvain LE GAL (GRAP)

[REF] renaming 'country_state_id' into 'state_id'.

Revision history for this message
Sylvain LE GAL (GRAP) (sylvain-legal) wrote :

Hi Alexis,

Thanks again for your comments.
Remarks : 10, 11, 12, (13) : Done.

About the field on res.partner, as I said, I don't need it but I can see the interest for other people. (I did another module that links products to departments, to realize origin statistics).
As this field is a computed field, we can easily approve this MP and wait improvements from community in a second time.

Regards.

Revision history for this message
arthru (arthru) wrote :

Approve in this state.

The field on res.partner would be great, but it can wait another merge proposal/contributor.

review: Approve (code-reviewed, no test)
9. By Sylvain LE GAL (GRAP)

[FIX] Remove country prefix in department code;

Revision history for this message
Sylvain LE GAL (GRAP) (sylvain-legal) wrote :

Done.

Revision history for this message
Sylvain LE GAL (GRAP) (sylvain-legal) wrote :
Revision history for this message
Sylvain LE GAL (GRAP) (sylvain-legal) wrote :

Hi Alexis,

I saw that you approved and merged fr_state module into french-localization.
Thanks a lot for your review.
What about this module ? Just a lake of time or there are still something wrong in my MP ?

Regards.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'l10n_fr_department'
2=== added file 'l10n_fr_department/__init__.py'
3--- l10n_fr_department/__init__.py 1970-01-01 00:00:00 +0000
4+++ l10n_fr_department/__init__.py 2014-04-14 18:35:47 +0000
5@@ -0,0 +1,23 @@
6+# -*- encoding: utf-8 -*-
7+##############################################################################
8+#
9+# l10n FR Departments module for OpenERP
10+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
11+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
12+#
13+# This program is free software: you can redistribute it and/or modify
14+# it under the terms of the GNU Affero General Public License as
15+# published by the Free Software Foundation, either version 3 of the
16+# License, or (at your option) any later version.
17+#
18+# This program is distributed in the hope that it will be useful,
19+# but WITHOUT ANY WARRANTY; without even the implied warranty of
20+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21+# GNU Affero General Public License for more details.
22+#
23+# You should have received a copy of the GNU Affero General Public License
24+# along with this program. If not, see <http://www.gnu.org/licenses/>.
25+#
26+##############################################################################
27+
28+from . import model
29
30=== added file 'l10n_fr_department/__openerp__.py'
31--- l10n_fr_department/__openerp__.py 1970-01-01 00:00:00 +0000
32+++ l10n_fr_department/__openerp__.py 2014-04-14 18:35:47 +0000
33@@ -0,0 +1,64 @@
34+# -*- encoding: utf-8 -*-
35+##############################################################################
36+#
37+# l10n FR Departments module for OpenERP
38+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
39+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
40+#
41+# This program is free software: you can redistribute it and/or modify
42+# it under the terms of the GNU Affero General Public License as
43+# published by the Free Software Foundation, either version 3 of the
44+# License, or (at your option) any later version.
45+#
46+# This program is distributed in the hope that it will be useful,
47+# but WITHOUT ANY WARRANTY; without even the implied warranty of
48+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49+# GNU Affero General Public License for more details.
50+#
51+# You should have received a copy of the GNU Affero General Public License
52+# along with this program. If not, see <http://www.gnu.org/licenses/>.
53+#
54+##############################################################################
55+
56+{
57+ 'name': 'French Departments (Départements)',
58+ 'summary': 'Populate Database with French Departments (Départements)',
59+ 'version': '0.1',
60+ 'category': 'base',
61+ 'description': """
62+Populate Database with French Departments (Départements)
63+========================================================
64+
65+Feature:
66+--------
67+ * Create a new model res_country_department, sub division of the """
68+ """res_country_state;
69+ * Populate the table res_country_department with the french departments;
70+
71+Technical informations:
72+-----------------------
73+ * Use 3166-2:FR codifications (more detail"""
74+ """http://fr.wikipedia.org/wiki/ISO_3166-2:FR);
75+
76+Copyright, Authors and Licence:
77+-------------------------------
78+ * Copyright: 2013, Groupement Régional Alimentaire de Proximité;
79+ * Author: Sylvain LE GAL (https://twitter.com/legalsylvain);
80+ * Licence: AGPL-3 (http://www.gnu.org/licenses/);""",
81+ 'author': 'GRAP',
82+ 'website': 'http://www.grap.coop',
83+ 'license': 'AGPL-3',
84+ 'depends': [
85+ 'l10n_fr_state',
86+ ],
87+ 'data': [
88+ 'security/ir_model_access.yml',
89+ 'data/res_country_department_data.yml',
90+ 'view/view.xml',
91+ 'view/action.xml',
92+ 'view/menu.xml',
93+ ],
94+ 'images': [
95+ 'static/src/img/screenshots/1.png'
96+ ],
97+}
98
99=== added directory 'l10n_fr_department/data'
100=== added file 'l10n_fr_department/data/res_country_department_data.yml'
101--- l10n_fr_department/data/res_country_department_data.yml 1970-01-01 00:00:00 +0000
102+++ l10n_fr_department/data/res_country_department_data.yml 2014-04-14 18:35:47 +0000
103@@ -0,0 +1,790 @@
104+# -*- encoding: utf-8 -*-
105+##############################################################################
106+#
107+# l10n FR Departments module for OpenERP
108+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
109+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
110+#
111+# This program is free software: you can redistribute it and/or modify
112+# it under the terms of the GNU Affero General Public License as
113+# published by the Free Software Foundation, either version 3 of the
114+# License, or (at your option) any later version.
115+#
116+# This program is distributed in the hope that it will be useful,
117+# but WITHOUT ANY WARRANTY; without even the implied warranty of
118+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
119+# GNU Affero General Public License for more details.
120+#
121+# You should have received a copy of the GNU Affero General Public License
122+# along with this program. If not, see <http://www.gnu.org/licenses/>.
123+#
124+##############################################################################
125+
126+-
127+ Creating a res.country.department record
128+-
129+ !record {model: res.country.department, id: res_country_department_ain}:
130+ code: '01'
131+ state_id: l10n_fr_state.res_country_state_rhonealpes
132+ name: Ain
133+
134+-
135+ Creating a res.country.department record
136+-
137+ !record {model: res.country.department, id: res_country_department_aisne}:
138+ code: '02'
139+ state_id: l10n_fr_state.res_country_state_picardie
140+ name: Aisne
141+
142+-
143+ Creating a res.country.department record
144+-
145+ !record {model: res.country.department, id: res_country_department_allier}:
146+ code: '03'
147+ state_id: l10n_fr_state.res_country_state_auvergne
148+ name: Allier
149+
150+-
151+ Creating a res.country.department record
152+-
153+ !record {model: res.country.department, id: res_country_department_alpesdehauteprovence}:
154+ code: '04'
155+ state_id: l10n_fr_state.res_country_state_provencealpescotedazur
156+ name: Alpes-de-Haute-Provence
157+
158+-
159+ Creating a res.country.department record
160+-
161+ !record {model: res.country.department, id: res_country_department_hautesalpes}:
162+ code: '05'
163+ state_id: l10n_fr_state.res_country_state_provencealpescotedazur
164+ name: Hautes-Alpes
165+
166+-
167+ Creating a res.country.department record
168+-
169+ !record {model: res.country.department, id: res_country_department_alpesmaritimes}:
170+ code: '06'
171+ state_id: l10n_fr_state.res_country_state_provencealpescotedazur
172+ name: Alpes-Maritimes
173+
174+-
175+ Creating a res.country.department record
176+-
177+ !record {model: res.country.department, id: res_country_department_ardeche}:
178+ code: '07'
179+ state_id: l10n_fr_state.res_country_state_rhonealpes
180+ name: Ardèche
181+
182+-
183+ Creating a res.country.department record
184+-
185+ !record {model: res.country.department, id: res_country_department_ardennes}:
186+ code: '08'
187+ state_id: l10n_fr_state.res_country_state_champagneardenne
188+ name: Ardennes
189+
190+-
191+ Creating a res.country.department record
192+-
193+ !record {model: res.country.department, id: res_country_department_ariege}:
194+ code: '09'
195+ state_id: l10n_fr_state.res_country_state_midipyrenees
196+ name: Ariège
197+
198+-
199+ Creating a res.country.department record
200+-
201+ !record {model: res.country.department, id: res_country_department_aube}:
202+ code: 10
203+ state_id: l10n_fr_state.res_country_state_champagneardenne
204+ name: Aube
205+
206+-
207+ Creating a res.country.department record
208+-
209+ !record {model: res.country.department, id: res_country_department_aude}:
210+ code: 11
211+ state_id: l10n_fr_state.res_country_state_languedocroussillon
212+ name: Aude
213+
214+-
215+ Creating a res.country.department record
216+-
217+ !record {model: res.country.department, id: res_country_department_aveyron}:
218+ code: 12
219+ state_id: l10n_fr_state.res_country_state_midipyrenees
220+ name: Aveyron
221+
222+-
223+ Creating a res.country.department record
224+-
225+ !record {model: res.country.department, id: res_country_department_bouchesdurhone}:
226+ code: 13
227+ state_id: l10n_fr_state.res_country_state_provencealpescotedazur
228+ name: Bouches-du-Rhône
229+
230+-
231+ Creating a res.country.department record
232+-
233+ !record {model: res.country.department, id: res_country_department_calvados}:
234+ code: 14
235+ state_id: l10n_fr_state.res_country_state_bassenormandie
236+ name: Calvados
237+
238+-
239+ Creating a res.country.department record
240+-
241+ !record {model: res.country.department, id: res_country_department_cantal}:
242+ code: 15
243+ state_id: l10n_fr_state.res_country_state_auvergne
244+ name: Cantal
245+
246+-
247+ Creating a res.country.department record
248+-
249+ !record {model: res.country.department, id: res_country_department_charente}:
250+ code: 16
251+ state_id: l10n_fr_state.res_country_state_poitoucharentes
252+ name: Charente
253+
254+-
255+ Creating a res.country.department record
256+-
257+ !record {model: res.country.department, id: res_country_department_charentemaritime}:
258+ code: 17
259+ state_id: l10n_fr_state.res_country_state_poitoucharentes
260+ name: Charente-Maritime
261+
262+-
263+ Creating a res.country.department record
264+-
265+ !record {model: res.country.department, id: res_country_department_cher}:
266+ code: 18
267+ state_id: l10n_fr_state.res_country_state_centre
268+ name: Cher
269+
270+-
271+ Creating a res.country.department record
272+-
273+ !record {model: res.country.department, id: res_country_department_corrze}:
274+ code: 19
275+ state_id: l10n_fr_state.res_country_state_limousin
276+ name: u'Corr\xe8ze'
277+
278+
279+-
280+ Creating a res.country.department record
281+-
282+ !record {model: res.country.department, id: res_country_department_corsedusud}:
283+ code: 2A
284+ state_id: l10n_fr_state.res_country_state_corse
285+ name: Corse-du-Sud
286+
287+-
288+ Creating a res.country.department record
289+-
290+ !record {model: res.country.department, id: res_country_department_hautecorse}:
291+ code: 2B
292+ state_id: l10n_fr_state.res_country_state_corse
293+ name: Haute-Corse
294+
295+-
296+ Creating a res.country.department record
297+-
298+ !record {model: res.country.department, id: res_country_department_cotedor}:
299+ code: 21
300+ state_id: l10n_fr_state.res_country_state_bourgogne
301+ name: Côte-d'Or
302+
303+-
304+ Creating a res.country.department record
305+-
306+ !record {model: res.country.department, id: res_country_department_cotesdarmor}:
307+ code: 22
308+ state_id: l10n_fr_state.res_country_state_bretagne
309+ name: Côtes-d'Armor
310+
311+-
312+ Creating a res.country.department record
313+-
314+ !record {model: res.country.department, id: res_country_department_creuse}:
315+ code: 23
316+ state_id: l10n_fr_state.res_country_state_limousin
317+ name: Creuse
318+
319+-
320+ Creating a res.country.department record
321+-
322+ !record {model: res.country.department, id: res_country_department_dordogne}:
323+ code: 24
324+ state_id: l10n_fr_state.res_country_state_aquitaine
325+ name: Dordogne
326+
327+-
328+ Creating a res.country.department record
329+-
330+ !record {model: res.country.department, id: res_country_department_doubs}:
331+ code: 25
332+ state_id: l10n_fr_state.res_country_state_franchecomte
333+ name: Doubs
334+
335+-
336+ Creating a res.country.department record
337+-
338+ !record {model: res.country.department, id: res_country_department_drome}:
339+ code: 26
340+ state_id: l10n_fr_state.res_country_state_rhonealpes
341+ name: Drôme
342+
343+-
344+ Creating a res.country.department record
345+-
346+ !record {model: res.country.department, id: res_country_department_eure}:
347+ code: 27
348+ state_id: l10n_fr_state.res_country_state_hautenormandie
349+ name: Eure
350+
351+-
352+ Creating a res.country.department record
353+-
354+ !record {model: res.country.department, id: res_country_department_eureetloir}:
355+ code: 28
356+ state_id: l10n_fr_state.res_country_state_centre
357+ name: Eure-et-Loir
358+
359+-
360+ Creating a res.country.department record
361+-
362+ !record {model: res.country.department, id: res_country_department_finistere}:
363+ code: 29
364+ state_id: l10n_fr_state.res_country_state_bretagne
365+ name: Finistère
366+
367+-
368+ Creating a res.country.department record
369+-
370+ !record {model: res.country.department, id: res_country_department_gard}:
371+ code: 30
372+ state_id: l10n_fr_state.res_country_state_languedocroussillon
373+ name: Gard
374+
375+-
376+ Creating a res.country.department record
377+-
378+ !record {model: res.country.department, id: res_country_department_hautegaronne}:
379+ code: 31
380+ state_id: l10n_fr_state.res_country_state_midipyrenees
381+ name: Haute-Garonne
382+
383+-
384+ Creating a res.country.department record
385+-
386+ !record {model: res.country.department, id: res_country_department_gers}:
387+ code: 32
388+ state_id: l10n_fr_state.res_country_state_midipyrenees
389+ name: Gers
390+
391+-
392+ Creating a res.country.department record
393+-
394+ !record {model: res.country.department, id: res_country_department_gironde}:
395+ code: 33
396+ state_id: l10n_fr_state.res_country_state_aquitaine
397+ name: Gironde
398+
399+-
400+ Creating a res.country.department record
401+-
402+ !record {model: res.country.department, id: res_country_department_herault}:
403+ code: 34
404+ state_id: l10n_fr_state.res_country_state_languedocroussillon
405+ name: Hérault
406+
407+-
408+ Creating a res.country.department record
409+-
410+ !record {model: res.country.department, id: res_country_department_illeetvilaine}:
411+ code: 35
412+ state_id: l10n_fr_state.res_country_state_bretagne
413+ name: Ille-et-Vilaine
414+
415+-
416+ Creating a res.country.department record
417+-
418+ !record {model: res.country.department, id: res_country_department_indre}:
419+ code: 36
420+ state_id: l10n_fr_state.res_country_state_centre
421+ name: Indre
422+
423+-
424+ Creating a res.country.department record
425+-
426+ !record {model: res.country.department, id: res_country_department_indreetloire}:
427+ code: 37
428+ state_id: l10n_fr_state.res_country_state_centre
429+ name: Indre-et-Loire
430+
431+-
432+ Creating a res.country.department record
433+-
434+ !record {model: res.country.department, id: res_country_department_isere}:
435+ code: 38
436+ state_id: l10n_fr_state.res_country_state_rhonealpes
437+ name: Isère
438+
439+-
440+ Creating a res.country.department record
441+-
442+ !record {model: res.country.department, id: res_country_department_jura}:
443+ code: 39
444+ state_id: l10n_fr_state.res_country_state_franchecomte
445+ name: Jura
446+
447+-
448+ Creating a res.country.department record
449+-
450+ !record {model: res.country.department, id: res_country_department_landes}:
451+ code: 40
452+ state_id: l10n_fr_state.res_country_state_aquitaine
453+ name: Landes
454+
455+-
456+ Creating a res.country.department record
457+-
458+ !record {model: res.country.department, id: res_country_department_loiretcher}:
459+ code: 41
460+ state_id: l10n_fr_state.res_country_state_centre
461+ name: Loir-et-Cher
462+
463+-
464+ Creating a res.country.department record
465+-
466+ !record {model: res.country.department, id: res_country_department_loire}:
467+ code: 42
468+ state_id: l10n_fr_state.res_country_state_rhonealpes
469+ name: Loire
470+
471+-
472+ Creating a res.country.department record
473+-
474+ !record {model: res.country.department, id: res_country_department_hauteloire}:
475+ code: 43
476+ state_id: l10n_fr_state.res_country_state_auvergne
477+ name: Haute-Loire
478+
479+-
480+ Creating a res.country.department record
481+-
482+ !record {model: res.country.department, id: res_country_department_loireatlantique}:
483+ code: 44
484+ state_id: l10n_fr_state.res_country_state_paysdelaloire
485+ name: Loire-Atlantique
486+
487+-
488+ Creating a res.country.department record
489+-
490+ !record {model: res.country.department, id: res_country_department_loiret}:
491+ code: 45
492+ state_id: l10n_fr_state.res_country_state_centre
493+ name: Loiret
494+
495+-
496+ Creating a res.country.department record
497+-
498+ !record {model: res.country.department, id: res_country_department_lot}:
499+ code: 46
500+ state_id: l10n_fr_state.res_country_state_midipyrenees
501+ name: Lot
502+
503+-
504+ Creating a res.country.department record
505+-
506+ !record {model: res.country.department, id: res_country_department_lotetgaronne}:
507+ code: 47
508+ state_id: l10n_fr_state.res_country_state_aquitaine
509+ name: Lot-et-Garonne
510+
511+-
512+ Creating a res.country.department record
513+-
514+ !record {model: res.country.department, id: res_country_department_lozere}:
515+ code: 48
516+ state_id: l10n_fr_state.res_country_state_languedocroussillon
517+ name: Lozère
518+
519+-
520+ Creating a res.country.department record
521+-
522+ !record {model: res.country.department, id: res_country_department_maineetloire}:
523+ code: 49
524+ state_id: l10n_fr_state.res_country_state_paysdelaloire
525+ name: Maine-et-Loire
526+
527+-
528+ Creating a res.country.department record
529+-
530+ !record {model: res.country.department, id: res_country_department_manche}:
531+ code: 50
532+ state_id: l10n_fr_state.res_country_state_bassenormandie
533+ name: Manche
534+
535+-
536+ Creating a res.country.department record
537+-
538+ !record {model: res.country.department, id: res_country_department_marne}:
539+ code: 51
540+ state_id: l10n_fr_state.res_country_state_champagneardenne
541+ name: Marne
542+
543+-
544+ Creating a res.country.department record
545+-
546+ !record {model: res.country.department, id: res_country_department_hautemarne}:
547+ code: 52
548+ state_id: l10n_fr_state.res_country_state_champagneardenne
549+ name: Haute-Marne
550+
551+-
552+ Creating a res.country.department record
553+-
554+ !record {model: res.country.department, id: res_country_department_mayenne}:
555+ code: 53
556+ state_id: l10n_fr_state.res_country_state_paysdelaloire
557+ name: Mayenne
558+
559+-
560+ Creating a res.country.department record
561+-
562+ !record {model: res.country.department, id: res_country_department_meurtheetmoselle}:
563+ code: 54
564+ state_id: l10n_fr_state.res_country_state_lorraine
565+ name: Meurthe-et-Moselle
566+
567+-
568+ Creating a res.country.department record
569+-
570+ !record {model: res.country.department, id: res_country_department_meuse}:
571+ code: 55
572+ state_id: l10n_fr_state.res_country_state_lorraine
573+ name: Meuse
574+
575+-
576+ Creating a res.country.department record
577+-
578+ !record {model: res.country.department, id: res_country_department_morbihan}:
579+ code: 56
580+ state_id: l10n_fr_state.res_country_state_bretagne
581+ name: Morbihan
582+
583+-
584+ Creating a res.country.department record
585+-
586+ !record {model: res.country.department, id: res_country_department_moselle}:
587+ code: 57
588+ state_id: l10n_fr_state.res_country_state_lorraine
589+ name: Moselle
590+
591+-
592+ Creating a res.country.department record
593+-
594+ !record {model: res.country.department, id: res_country_department_nievre}:
595+ code: 58
596+ state_id: l10n_fr_state.res_country_state_bourgogne
597+ name: Nièvre
598+
599+-
600+ Creating a res.country.department record
601+-
602+ !record {model: res.country.department, id: res_country_department_nord}:
603+ code: 59
604+ state_id: l10n_fr_state.res_country_state_nordpasdecalais
605+ name: Nord
606+
607+-
608+ Creating a res.country.department record
609+-
610+ !record {model: res.country.department, id: res_country_department_oise}:
611+ code: 60
612+ state_id: l10n_fr_state.res_country_state_picardie
613+ name: Oise
614+
615+-
616+ Creating a res.country.department record
617+-
618+ !record {model: res.country.department, id: res_country_department_orne}:
619+ code: 61
620+ state_id: l10n_fr_state.res_country_state_bassenormandie
621+ name: Orne
622+
623+-
624+ Creating a res.country.department record
625+-
626+ !record {model: res.country.department, id: res_country_department_pasdecalais}:
627+ code: 62
628+ state_id: l10n_fr_state.res_country_state_nordpasdecalais
629+ name: Pas-de-Calais
630+
631+-
632+ Creating a res.country.department record
633+-
634+ !record {model: res.country.department, id: res_country_department_puydedome}:
635+ code: 63
636+ state_id: l10n_fr_state.res_country_state_auvergne
637+ name: Puy-de-Dôme
638+
639+-
640+ Creating a res.country.department record
641+-
642+ !record {model: res.country.department, id: res_country_department_pyreneesatlantiques}:
643+ code: 64
644+ state_id: l10n_fr_state.res_country_state_aquitaine
645+ name: Pyrénées-Atlantiques
646+
647+-
648+ Creating a res.country.department record
649+-
650+ !record {model: res.country.department, id: res_country_department_hautespyrenees}:
651+ code: 65
652+ state_id: l10n_fr_state.res_country_state_midipyrenees
653+ name: Hautes-Pyrénées
654+
655+-
656+ Creating a res.country.department record
657+-
658+ !record {model: res.country.department, id: res_country_department_pyreneesorientales}:
659+ code: 66
660+ state_id: l10n_fr_state.res_country_state_languedocroussillon
661+ name: Pyrénées-Orientales
662+
663+-
664+ Creating a res.country.department record
665+-
666+ !record {model: res.country.department, id: res_country_department_basrhin}:
667+ code: 67
668+ state_id: l10n_fr_state.res_country_state_alsace
669+ name: Bas-Rhin
670+
671+-
672+ Creating a res.country.department record
673+-
674+ !record {model: res.country.department, id: res_country_department_hautrhin}:
675+ code: 68
676+ state_id: l10n_fr_state.res_country_state_alsace
677+ name: Haut-Rhin
678+
679+-
680+ Creating a res.country.department record
681+-
682+ !record {model: res.country.department, id: res_country_department_rhone}:
683+ code: 69
684+ state_id: l10n_fr_state.res_country_state_rhonealpes
685+ name: Rhône
686+
687+-
688+ Creating a res.country.department record
689+-
690+ !record {model: res.country.department, id: res_country_department_hautesaone}:
691+ code: 70
692+ state_id: l10n_fr_state.res_country_state_franchecomte
693+ name: Haute-Saône
694+
695+-
696+ Creating a res.country.department record
697+-
698+ !record {model: res.country.department, id: res_country_department_saoneetloire}:
699+ code: 71
700+ state_id: l10n_fr_state.res_country_state_bourgogne
701+ name: Saône-et-Loire
702+
703+-
704+ Creating a res.country.department record
705+-
706+ !record {model: res.country.department, id: res_country_department_sarthe}:
707+ code: 72
708+ state_id: l10n_fr_state.res_country_state_paysdelaloire
709+ name: Sarthe
710+
711+-
712+ Creating a res.country.department record
713+-
714+ !record {model: res.country.department, id: res_country_department_savoie}:
715+ code: 73
716+ state_id: l10n_fr_state.res_country_state_rhonealpes
717+ name: Savoie
718+
719+-
720+ Creating a res.country.department record
721+-
722+ !record {model: res.country.department, id: res_country_department_hautesavoie}:
723+ code: 74
724+ state_id: l10n_fr_state.res_country_state_rhonealpes
725+ name: Haute-Savoie
726+
727+-
728+ Creating a res.country.department record
729+-
730+ !record {model: res.country.department, id: res_country_department_paris}:
731+ code: 75
732+ state_id: l10n_fr_state.res_country_state_iledefrance
733+ name: Paris
734+
735+-
736+ Creating a res.country.department record
737+-
738+ !record {model: res.country.department, id: res_country_department_seinemaritime}:
739+ code: 76
740+ state_id: l10n_fr_state.res_country_state_hautenormandie
741+ name: Seine-Maritime
742+
743+-
744+ Creating a res.country.department record
745+-
746+ !record {model: res.country.department, id: res_country_department_seineetmarne}:
747+ code: 77
748+ state_id: l10n_fr_state.res_country_state_iledefrance
749+ name: Seine-et-Marne
750+
751+-
752+ Creating a res.country.department record
753+-
754+ !record {model: res.country.department, id: res_country_department_yvelines}:
755+ code: 78
756+ state_id: l10n_fr_state.res_country_state_iledefrance
757+ name: Yvelines
758+
759+-
760+ Creating a res.country.department record
761+-
762+ !record {model: res.country.department, id: res_country_department_deuxsevres}:
763+ code: 79
764+ state_id: l10n_fr_state.res_country_state_poitoucharentes
765+ name: Deux-Sèvres
766+
767+-
768+ Creating a res.country.department record
769+-
770+ !record {model: res.country.department, id: res_country_department_somme}:
771+ code: 80
772+ state_id: l10n_fr_state.res_country_state_picardie
773+ name: Somme
774+
775+-
776+ Creating a res.country.department record
777+-
778+ !record {model: res.country.department, id: res_country_department_tarn}:
779+ code: 81
780+ state_id: l10n_fr_state.res_country_state_midipyrenees
781+ name: Tarn
782+
783+-
784+ Creating a res.country.department record
785+-
786+ !record {model: res.country.department, id: res_country_department_tarnetgaronne}:
787+ code: 82
788+ state_id: l10n_fr_state.res_country_state_midipyrenees
789+ name: Tarn-et-Garonne
790+
791+-
792+ Creating a res.country.department record
793+-
794+ !record {model: res.country.department, id: res_country_department_var}:
795+ code: 83
796+ state_id: l10n_fr_state.res_country_state_provencealpescotedazur
797+ name: Var
798+
799+-
800+ Creating a res.country.department record
801+-
802+ !record {model: res.country.department, id: res_country_department_vaucluse}:
803+ code: 84
804+ state_id: l10n_fr_state.res_country_state_provencealpescotedazur
805+ name: Vaucluse
806+
807+-
808+ Creating a res.country.department record
809+-
810+ !record {model: res.country.department, id: res_country_department_vendee}:
811+ code: 85
812+ state_id: l10n_fr_state.res_country_state_paysdelaloire
813+ name: Vendée
814+
815+-
816+ Creating a res.country.department record
817+-
818+ !record {model: res.country.department, id: res_country_department_vienne}:
819+ code: 86
820+ state_id: l10n_fr_state.res_country_state_poitoucharentes
821+ name: Vienne
822+
823+-
824+ Creating a res.country.department record
825+-
826+ !record {model: res.country.department, id: res_country_department_hautevienne}:
827+ code: 87
828+ state_id: l10n_fr_state.res_country_state_limousin
829+ name: Haute-Vienne
830+
831+-
832+ Creating a res.country.department record
833+-
834+ !record {model: res.country.department, id: res_country_department_vosges}:
835+ code: 88
836+ state_id: l10n_fr_state.res_country_state_lorraine
837+ name: Vosges
838+
839+-
840+ Creating a res.country.department record
841+-
842+ !record {model: res.country.department, id: res_country_department_yonne}:
843+ code: 89
844+ state_id: l10n_fr_state.res_country_state_bourgogne
845+ name: Yonne
846+
847+-
848+ Creating a res.country.department record
849+-
850+ !record {model: res.country.department, id: res_country_department_territoiredebelfort}:
851+ code: 90
852+ state_id: l10n_fr_state.res_country_state_franchecomte
853+ name: Territoire de Belfort
854+
855+-
856+ Creating a res.country.department record
857+-
858+ !record {model: res.country.department, id: res_country_department_essonne}:
859+ code: 91
860+ state_id: l10n_fr_state.res_country_state_iledefrance
861+ name: Essonne
862+
863+-
864+ Creating a res.country.department record
865+-
866+ !record {model: res.country.department, id: res_country_department_hautsdeseine}:
867+ code: 92
868+ state_id: l10n_fr_state.res_country_state_iledefrance
869+ name: Hauts-de-Seine
870+
871+-
872+ Creating a res.country.department record
873+-
874+ !record {model: res.country.department, id: res_country_department_seinesaintdenis}:
875+ code: 93
876+ state_id: l10n_fr_state.res_country_state_iledefrance
877+ name: Seine-Saint-Denis
878+
879+-
880+ Creating a res.country.department record
881+-
882+ !record {model: res.country.department, id: res_country_department_valdemarne}:
883+ code: 94
884+ state_id: l10n_fr_state.res_country_state_iledefrance
885+ name: Val-de-Marne
886+
887+-
888+ Creating a res.country.department record
889+-
890+ !record {model: res.country.department, id: res_country_department_valdoise}:
891+ code: 95
892+ state_id: l10n_fr_state.res_country_state_iledefrance
893+ name: Val-d'Oise
894
895=== added directory 'l10n_fr_department/i18n'
896=== added file 'l10n_fr_department/i18n/fr.po'
897--- l10n_fr_department/i18n/fr.po 1970-01-01 00:00:00 +0000
898+++ l10n_fr_department/i18n/fr.po 2014-04-14 18:35:47 +0000
899@@ -0,0 +1,148 @@
900+##############################################################################
901+#
902+# l10n FR Departments module for OpenERP
903+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
904+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
905+#
906+# This program is free software: you can redistribute it and/or modify
907+# it under the terms of the GNU Affero General Public License as
908+# published by the Free Software Foundation, either version 3 of the
909+# License, or (at your option) any later version.
910+#
911+# This program is distributed in the hope that it will be useful,
912+# but WITHOUT ANY WARRANTY; without even the implied warranty of
913+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
914+# GNU Affero General Public License for more details.
915+#
916+# You should have received a copy of the GNU Affero General Public License
917+# along with this program. If not, see <http://www.gnu.org/licenses/>.
918+#
919+##############################################################################
920+# Translation of OpenERP Server.
921+# This file contains the translation of the following modules:
922+# * l10n_fr_department
923+# * base
924+#
925+
926+msgid ""
927+msgstr ""
928+"Project-Id-Version: OpenERP Server 7.0\n"
929+"Report-Msgid-Bugs-To: \n"
930+"POT-Creation-Date: 2014-03-26 17:43+0000\n"
931+"PO-Revision-Date: 2014-03-26 17:43+0000\n"
932+"Last-Translator: <>\n"
933+"Language-Team: \n"
934+"MIME-Version: 1.0\n"
935+"Content-Type: text/plain; charset=UTF-8\n"
936+"Content-Transfer-Encoding: \n"
937+"Plural-Forms: \n"
938+
939+#. module: l10n_fr_department
940+#: field:res.country.department,country_id:0
941+msgid "Country"
942+msgstr "Pays"
943+
944+#. module: l10n_fr_department
945+#: help:res.country.department,country_id:0
946+msgid "Country of the related state"
947+msgstr "Pays associé à la région"
948+
949+#. module: l10n_fr_department
950+#: field:res.country.department,code:0
951+msgid "Departement Code"
952+msgstr "Code du département"
953+
954+#. module: l10n_fr_department
955+#: code:_description:0
956+#: model:ir.model,name:l10n_fr_department.model_res_country_department
957+#, python-format
958+msgid "Department"
959+msgstr "Département"
960+
961+#. module: l10n_fr_department
962+#: field:res.country.department,name:0
963+msgid "Department Name"
964+msgstr "Nom du département"
965+
966+#. module: l10n_fr_department
967+#: model:ir.actions.act_window,name:l10n_fr_department.action_view_country_department_tree
968+#: model:ir.ui.menu,name:l10n_fr_department.menu_res_country_department
969+msgid "Departments"
970+msgstr "Départements"
971+
972+#. module: l10n_fr_department
973+#: model:ir.actions.act_window,help:l10n_fr_department.action_view_country_department_tree
974+msgid "Display and manage the list of all departments."
975+msgstr "Afficher et gérer la liste de tous les départements."
976+
977+#. module: l10n_fr_department
978+#: view:res.country.department:0
979+#: field:res.country.department,state_id:0
980+msgid "State"
981+msgstr "Région"
982+
983+#. module: l10n_fr_department
984+#: help:res.country.department,state_id:0
985+msgid "State related of the current department"
986+msgstr "Région associée au département courrant"
987+
988+#. module: l10n_fr_department
989+#: help:res.country.department,code:0
990+msgid "The department code in max. five chars. (ISO 3166-2 Codification)"
991+msgstr "Le code du département sur cinq caractères. (Norme ISO 3166-2)"
992+
993+#. module: l10n_fr_department
994+#: code:addons/l10n_fr_department/model/res_country_department.py:48
995+#: sql_constraint:res.country.department:0
996+#, python-format
997+msgid "You cannot have two departments with the same code!"
998+msgstr "Vous ne pouvez pas avoir deux départements avec le même code !"
999+
1000+#. module: base
1001+#: model:ir.module.module,shortdesc:base.module_l10n_fr_department
1002+msgid "French Departments (Département)"
1003+msgstr "Départements Français"
1004+
1005+#. module: base
1006+#: model:ir.module.module,summary:base.module_l10n_fr_department
1007+msgid "Populate Database with French Departments (Départements)"
1008+msgstr "Remplit la base de données avec les départments françaises"
1009+
1010+#. module: base
1011+#: model:ir.module.module,description:base.module_l10n_fr_department
1012+msgid "\n"
1013+"Populate Database with French Departments (Départements)\n"
1014+"========================================================\n"
1015+"\n"
1016+"Feature:\n"
1017+"--------\n"
1018+" * Create a new model res_country_department, sub division of the res_country_state;\n"
1019+" * Populate the table res_country_department with the french departments;\n"
1020+"\n"
1021+"Technical informations:\n"
1022+"-----------------------\n"
1023+" * Use 3166-2:FR codifications (more detailhttp://fr.wikipedia.org/wiki/ISO_3166-2:FR);\n"
1024+"\n"
1025+"Copyright, Authors and Licence:\n"
1026+"-------------------------------\n"
1027+" * Copyright: 2013, Groupement Régional Alimentaire de Proximité;\n"
1028+" * Author: Sylvain LE GAL (https://twitter.com/legalsylvain);\n"
1029+" * Licence: AGPL-3 (http://www.gnu.org/licenses/);"
1030+msgstr "\n"
1031+"Ajoute les départements français en base de données\n"
1032+"===================================================\n"
1033+"\n"
1034+"Caractéristiques:\n"
1035+"-----------------\n"
1036+" * Crée un nouveau modèle 'res_country_department', sous-division du modèle des régions 'res_country_state' ;\n"
1037+" * Remplit la table 'res_country_department' avec les départements français ;\n"
1038+"\n"
1039+"Informations techniques :\n"
1040+"-------------------------\n"
1041+" * Utilise la codification 3166-2:FR (plus de détail sur http://fr.wikipedia.org/wiki/ISO_3166-2:FR) ;\n"
1042+"\n"
1043+"Copyright, Auteurs et Licence:\n"
1044+"------------------------------\n"
1045+" * Copyright : 2013, Groupement Régional Alimentaire de Proximité ;\n"
1046+" * Auteur : Sylvain LE GAL (https://twitter.com/legalsylvain) ;\n"
1047+" * Licence : AGPL-3 (http://www.gnu.org/licenses/) ;"
1048
1049=== added file 'l10n_fr_department/i18n/l10n_fr_department.pot'
1050--- l10n_fr_department/i18n/l10n_fr_department.pot 1970-01-01 00:00:00 +0000
1051+++ l10n_fr_department/i18n/l10n_fr_department.pot 2014-04-14 18:35:47 +0000
1052@@ -0,0 +1,92 @@
1053+##############################################################################
1054+#
1055+# l10n FR Departments module for OpenERP
1056+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
1057+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
1058+#
1059+# This program is free software: you can redistribute it and/or modify
1060+# it under the terms of the GNU Affero General Public License as
1061+# published by the Free Software Foundation, either version 3 of the
1062+# License, or (at your option) any later version.
1063+#
1064+# This program is distributed in the hope that it will be useful,
1065+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1066+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1067+# GNU Affero General Public License for more details.
1068+#
1069+# You should have received a copy of the GNU Affero General Public License
1070+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1071+#
1072+##############################################################################
1073+# Translation of OpenERP Server.
1074+# This file contains the translation of the following modules:
1075+# * l10n_fr_department
1076+#
1077+
1078+msgid ""
1079+msgstr ""
1080+"Project-Id-Version: OpenERP Server 7.0\n"
1081+"Report-Msgid-Bugs-To: \n"
1082+"POT-Creation-Date: 2014-03-26 17:46+0000\n"
1083+"PO-Revision-Date: 2014-03-26 17:46+0000\n"
1084+"Last-Translator: <>\n"
1085+"Language-Team: \n"
1086+"MIME-Version: 1.0\n"
1087+"Content-Type: text/plain; charset=UTF-8\n"
1088+"Content-Transfer-Encoding: \n"
1089+"Plural-Forms: \n"
1090+
1091+#. module: l10n_fr_department
1092+#: field:res.country.department,country_id:0
1093+msgid "Country"
1094+msgstr ""
1095+
1096+#. module: l10n_fr_department
1097+#: help:res.country.department,country_id:0
1098+msgid "Country of the related state"
1099+msgstr ""
1100+
1101+#. module: l10n_fr_department
1102+#: field:res.country.department,code:0
1103+msgid "Departement Code"
1104+msgstr ""
1105+
1106+#. module: l10n_fr_department
1107+#: code:_description:0
1108+#: model:ir.model,name:l10n_fr_department.model_res_country_department
1109+#, python-format
1110+msgid "Department"
1111+msgstr ""
1112+
1113+#. module: l10n_fr_department
1114+#: field:res.country.department,name:0
1115+msgid "Department Name"
1116+msgstr ""
1117+
1118+#. module: l10n_fr_department
1119+#: model:ir.actions.act_window,name:l10n_fr_department.action_view_country_department_tree
1120+#: model:ir.ui.menu,name:l10n_fr_department.menu_res_country_department
1121+msgid "Departments"
1122+msgstr ""
1123+
1124+#. module: l10n_fr_department
1125+#: model:ir.actions.act_window,help:l10n_fr_department.action_view_country_department_tree
1126+msgid "Display and manage the list of all departments."
1127+msgstr ""
1128+
1129+#. module: l10n_fr_department
1130+#: view:res.country.department:0
1131+#: field:res.country.department,state_id:0
1132+msgid "State"
1133+msgstr ""
1134+
1135+#. module: l10n_fr_department
1136+#: help:res.country.department,state_id:0
1137+msgid "State related of the current department"
1138+msgstr ""
1139+
1140+#. module: l10n_fr_department
1141+#: help:res.country.department,code:0
1142+msgid "The department code in max. five chars. (ISO 3166-2 Codification)"
1143+msgstr ""
1144+
1145
1146=== added directory 'l10n_fr_department/model'
1147=== added file 'l10n_fr_department/model/__init__.py'
1148--- l10n_fr_department/model/__init__.py 1970-01-01 00:00:00 +0000
1149+++ l10n_fr_department/model/__init__.py 2014-04-14 18:35:47 +0000
1150@@ -0,0 +1,24 @@
1151+# -*- encoding: utf-8 -*-
1152+##############################################################################
1153+#
1154+# l10n FR Departments module for OpenERP
1155+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
1156+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
1157+#
1158+# This program is free software: you can redistribute it and/or modify
1159+# it under the terms of the GNU Affero General Public License as
1160+# published by the Free Software Foundation, either version 3 of the
1161+# License, or (at your option) any later version.
1162+#
1163+# This program is distributed in the hope that it will be useful,
1164+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1165+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1166+# GNU Affero General Public License for more details.
1167+#
1168+# You should have received a copy of the GNU Affero General Public License
1169+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1170+#
1171+##############################################################################
1172+
1173+from . import res_country_state
1174+from . import res_country_department
1175
1176=== added file 'l10n_fr_department/model/res_country_department.py'
1177--- l10n_fr_department/model/res_country_department.py 1970-01-01 00:00:00 +0000
1178+++ l10n_fr_department/model/res_country_department.py 2014-04-14 18:35:47 +0000
1179@@ -0,0 +1,49 @@
1180+# -*- encoding: utf-8 -*-
1181+##############################################################################
1182+#
1183+# l10n FR Departments module for OpenERP
1184+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
1185+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
1186+#
1187+# This program is free software: you can redistribute it and/or modify
1188+# it under the terms of the GNU Affero General Public License as
1189+# published by the Free Software Foundation, either version 3 of the
1190+# License, or (at your option) any later version.
1191+#
1192+# This program is distributed in the hope that it will be useful,
1193+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1194+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1195+# GNU Affero General Public License for more details.
1196+#
1197+# You should have received a copy of the GNU Affero General Public License
1198+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1199+#
1200+##############################################################################
1201+
1202+from openerp.osv import fields
1203+from openerp.osv.orm import Model
1204+from openerp.tools.translate import _
1205+
1206+class res_country_department(Model):
1207+ _description = "Department"
1208+ _name = 'res.country.department'
1209+
1210+ _columns = {
1211+ 'state_id': fields.many2one(
1212+ 'res.country.state', 'State', required=True,
1213+ help='State related of the current department',),
1214+ 'country_id': fields.related(
1215+ 'state_id', 'country_id', type='many2one',
1216+ relation='res.country', string='Country',
1217+ help='Country of the related state',),
1218+ 'name': fields.char('Department Name', size=128, required=True,),
1219+ 'code': fields.char(
1220+ 'Departement Code', size=2, required=True,
1221+ help="""The department code in two chars."""
1222+ """(ISO 3166-2 Codification)""",),
1223+ }
1224+
1225+ _sql_constraints = [
1226+ ('code_uniq', 'unique (code)',
1227+ _("""You cannot have two departments with the same code!""")),
1228+ ]
1229
1230=== added file 'l10n_fr_department/model/res_country_state.py'
1231--- l10n_fr_department/model/res_country_state.py 1970-01-01 00:00:00 +0000
1232+++ l10n_fr_department/model/res_country_state.py 2014-04-14 18:35:47 +0000
1233@@ -0,0 +1,34 @@
1234+# -*- encoding: utf-8 -*-
1235+##############################################################################
1236+#
1237+# l10n FR Departments module for OpenERP
1238+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
1239+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
1240+#
1241+# This program is free software: you can redistribute it and/or modify
1242+# it under the terms of the GNU Affero General Public License as
1243+# published by the Free Software Foundation, either version 3 of the
1244+# License, or (at your option) any later version.
1245+#
1246+# This program is distributed in the hope that it will be useful,
1247+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1248+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1249+# GNU Affero General Public License for more details.
1250+#
1251+# You should have received a copy of the GNU Affero General Public License
1252+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1253+#
1254+##############################################################################
1255+
1256+from openerp.osv import fields
1257+from openerp.osv.orm import Model
1258+
1259+
1260+class res_country_state(Model):
1261+ _inherit = 'res.country.state'
1262+
1263+ _columns = {
1264+ 'department_ids': fields.one2many(
1265+ 'res.country.department','state_id', 'Departments',
1266+ help='Departments related to this state',),
1267+ }
1268
1269=== added directory 'l10n_fr_department/security'
1270=== added file 'l10n_fr_department/security/ir_model_access.yml'
1271--- l10n_fr_department/security/ir_model_access.yml 1970-01-01 00:00:00 +0000
1272+++ l10n_fr_department/security/ir_model_access.yml 2014-04-14 18:35:47 +0000
1273@@ -0,0 +1,42 @@
1274+##############################################################################
1275+#
1276+# l10n FR Departments module for OpenERP
1277+# Copyright (C) 2013-2014 GRAP (http://www.grap.coop)
1278+# @author Sylvain LE GAL (https://twitter.com/legalsylvain)
1279+#
1280+# This program is free software: you can redistribute it and/or modify
1281+# it under the terms of the GNU Affero General Public License as
1282+# published by the Free Software Foundation, either version 3 of the
1283+# License, or (at your option) any later version.
1284+#
1285+# This program is distributed in the hope that it will be useful,
1286+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1287+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1288+# GNU Affero General Public License for more details.
1289+#
1290+# You should have received a copy of the GNU Affero General Public License
1291+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1292+#
1293+##############################################################################
1294+-
1295+ Creating a ir.model.access record
1296+-
1297+ !record {model: ir.model.access, id: access_res_country_department_all}:
1298+ name: res.country.department all
1299+ model_id: model_res_country_department
1300+ perm_read: 1
1301+ perm_write: 0
1302+ perm_create: 0
1303+ perm_unlink: 0
1304+
1305+-
1306+ Creating a ir.model.access record
1307+-
1308+ !record {model: ir.model.access, id: access_res_country_department_manager}:
1309+ name: res.country.department manager
1310+ model_id: model_res_country_department
1311+ group_id: base.group_system
1312+ perm_read: 1
1313+ perm_write: 1
1314+ perm_create: 1
1315+ perm_unlink: 1
1316
1317=== added directory 'l10n_fr_department/static'
1318=== added directory 'l10n_fr_department/static/src'
1319=== added directory 'l10n_fr_department/static/src/img'
1320=== added file 'l10n_fr_department/static/src/img/icon.png'
1321Binary files l10n_fr_department/static/src/img/icon.png 1970-01-01 00:00:00 +0000 and l10n_fr_department/static/src/img/icon.png 2014-04-14 18:35:47 +0000 differ
1322=== added directory 'l10n_fr_department/static/src/img/screenshots'
1323=== added file 'l10n_fr_department/static/src/img/screenshots/1.png'
1324Binary files l10n_fr_department/static/src/img/screenshots/1.png 1970-01-01 00:00:00 +0000 and l10n_fr_department/static/src/img/screenshots/1.png 2014-04-14 18:35:47 +0000 differ
1325=== added directory 'l10n_fr_department/view'
1326=== added file 'l10n_fr_department/view/action.xml'
1327--- l10n_fr_department/view/action.xml 1970-01-01 00:00:00 +0000
1328+++ l10n_fr_department/view/action.xml 2014-04-14 18:35:47 +0000
1329@@ -0,0 +1,31 @@
1330+<?xml version="1.0" encoding="utf-8"?>
1331+<!-- ********************************************************************** -->
1332+<!--l10n FR Departments module for OpenERP -->
1333+<!--Copyright (C) 2013-2014 GRAP (http://www.grap.coop) -->
1334+<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
1335+
1336+<!--This program is free software: you can redistribute it and/or modify -->
1337+<!--it under the terms of the GNU Affero General Public License as -->
1338+<!--published by the Free Software Foundation, either version 3 of the -->
1339+<!--License, or (at your option) any later version. -->
1340+
1341+<!--This program is distributed in the hope that it will be useful, -->
1342+<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
1343+<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
1344+<!--GNU Affero General Public License for more details. -->
1345+
1346+<!--You should have received a copy of the GNU Affero General Public License-->
1347+<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
1348+<!-- ********************************************************************** -->
1349+
1350+<openerp>
1351+ <data>
1352+ <record id="action_view_country_department_tree" model="ir.actions.act_window">
1353+ <field name="name">Departments</field>
1354+ <field name="res_model">res.country.department</field>
1355+ <field name="view_type">form</field>
1356+ <field name="view_mode">tree,form</field>
1357+ <field name="help">Display and manage the list of all departments.</field>
1358+ </record>
1359+ </data>
1360+</openerp>
1361
1362=== added file 'l10n_fr_department/view/menu.xml'
1363--- l10n_fr_department/view/menu.xml 1970-01-01 00:00:00 +0000
1364+++ l10n_fr_department/view/menu.xml 2014-04-14 18:35:47 +0000
1365@@ -0,0 +1,28 @@
1366+<?xml version="1.0" encoding="utf-8"?>
1367+<!-- ********************************************************************** -->
1368+<!--l10n FR Departments module for OpenERP -->
1369+<!--Copyright (C) 2013-2014 GRAP (http://www.grap.coop) -->
1370+<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
1371+
1372+<!--This program is free software: you can redistribute it and/or modify -->
1373+<!--it under the terms of the GNU Affero General Public License as -->
1374+<!--published by the Free Software Foundation, either version 3 of the -->
1375+<!--License, or (at your option) any later version. -->
1376+
1377+<!--This program is distributed in the hope that it will be useful, -->
1378+<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
1379+<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
1380+<!--GNU Affero General Public License for more details. -->
1381+
1382+<!--You should have received a copy of the GNU Affero General Public License-->
1383+<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
1384+<!-- ********************************************************************** -->
1385+
1386+<openerp>
1387+ <data>
1388+ <menuitem id="menu_res_country_department"
1389+ parent="base.menu_localisation"
1390+ action="action_view_country_department_tree"
1391+ sequence="2"/>
1392+ </data>
1393+</openerp>
1394
1395=== added file 'l10n_fr_department/view/view.xml'
1396--- l10n_fr_department/view/view.xml 1970-01-01 00:00:00 +0000
1397+++ l10n_fr_department/view/view.xml 2014-04-14 18:35:47 +0000
1398@@ -0,0 +1,66 @@
1399+<?xml version="1.0" encoding="utf-8"?>
1400+<!-- ********************************************************************** -->
1401+<!--l10n FR Departments module for OpenERP -->
1402+<!--Copyright (C) 2013-2014 GRAP (http://www.grap.coop) -->
1403+<!--@author Sylvain LE GAL (https://twitter.com/legalsylvain) -->
1404+
1405+<!--This program is free software: you can redistribute it and/or modify -->
1406+<!--it under the terms of the GNU Affero General Public License as -->
1407+<!--published by the Free Software Foundation, either version 3 of the -->
1408+<!--License, or (at your option) any later version. -->
1409+
1410+<!--This program is distributed in the hope that it will be useful, -->
1411+<!--but WITHOUT ANY WARRANTY; without even the implied warranty of -->
1412+<!--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
1413+<!--GNU Affero General Public License for more details. -->
1414+
1415+<!--You should have received a copy of the GNU Affero General Public License-->
1416+<!--along with this program. If not, see <http://www.gnu.org/licenses/>. -->
1417+<!-- ********************************************************************** -->
1418+
1419+<openerp>
1420+ <data>
1421+
1422+ <record id="view_country_department_search" model="ir.ui.view">
1423+ <field name="name">res.country.department.search</field>
1424+ <field name="model">res.country.department</field>
1425+ <field name="arch" type="xml">
1426+ <search string="Departments">
1427+ <field name="name"/>
1428+ <field name="code"/>
1429+ <field name="state_id"/>
1430+ <field name="country_id"/>
1431+ </search>
1432+ </field>
1433+ </record>
1434+
1435+ <record id="view_country_department_tree" model="ir.ui.view">
1436+ <field name="name">res.country.department.tree</field>
1437+ <field name="model">res.country.department</field>
1438+ <field name="arch" type="xml">
1439+ <tree string="Departments">
1440+ <field name="name"/>
1441+ <field name="code"/>
1442+ <field name="state_id"/>
1443+ <field name="country_id"/>
1444+ </tree>
1445+ </field>
1446+ </record>
1447+
1448+ <record id="view_country_department_form" model="ir.ui.view">
1449+ <field name="name">res.country.department.form</field>
1450+ <field name="model">res.country.department</field>
1451+ <field name="arch" type="xml">
1452+ <form string="Departments" version="7.0">
1453+ <group>
1454+ <field name="name"/>
1455+ <field name="code"/>
1456+ <field name="state_id"/>
1457+ <field name="country_id" readonly="1"/>
1458+ </group>
1459+ </form>
1460+ </field>
1461+ </record>
1462+
1463+ </data>
1464+</openerp>

Subscribers

People subscribed via source and target branches