[WIZARD] +manual member identification number attribution
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 22 Jun 2016 08:44:21 +0000 (10:44 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 22 Jun 2016 09:16:58 +0000 (11:16 +0200)
__init__.py
__openerp__.py
i18n/cyclofficine_pantin.pot
i18n/fr.po
res_partner.py
view/bikecoop.xml
wizard/__init__.py [new file with mode: 0644]
wizard/attribute_member_ident.py [new file with mode: 0644]
wizard/attribute_member_ident_view.xml [new file with mode: 0644]

index 2cac66c..8bff973 100644 (file)
@@ -25,5 +25,6 @@
 ##############################################################################
 
 import res_partner
+import wizard
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index d9b8e72..b47dc6f 100644 (file)
@@ -56,6 +56,7 @@ It installs the profile for bike co-ops to manage some features like:
         'data/remembership.xml',
         'data/members.xml',
         'data/users.xml',
+        'wizard/attribute_member_ident_view.xml',
         'view/account.xml',
         'view/bikecoop.xml',
         'view/stock.xml',
index 893badc..9219dbf 100644 (file)
@@ -1,12 +1,13 @@
 # Translation of OpenERP Server.
 # This file contains the translation of the following modules:
+#      * cyclofficine_pantin
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: OpenERP Server 7.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-04 12:00+0000\n"
-"PO-Revision-Date: 2015-12-04 12:00+0000\n"
+"POT-Creation-Date: 2016-06-22 08:56+0000\n"
+"PO-Revision-Date: 2016-06-22 08:56+0000\n"
 "Last-Translator: <>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -14,3 +15,323 @@ msgstr ""
 "Content-Transfer-Encoding: \n"
 "Plural-Forms: \n"
 
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_23_product_template
+msgid "Outillage rue"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_30_product_template
+msgid "Équipement atelier"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: code:addons/cyclofficine_pantin/wizard/attribute_member_ident.py:54
+#, python-format
+msgid "Not possible"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_2
+msgid "PRIX LIBRE"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_8
+msgid "OUTILLAGE"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_24_product_template
+msgid "Fournitures de bureau"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_10
+msgid "SERVICES"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_17_product_template
+msgid "Formation pédagogie"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_22_product_template
+msgid "Outillage fixe"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_6
+msgid "COMMISSION Bourse aux Vélos"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_7_product_template
+msgid "Boite à dons fixe"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_25_product_template
+msgid "Électricité"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_19_product_template
+msgid "Graphisme / cmmunication"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: code:addons/cyclofficine_pantin/wizard/attribute_member_ident.py:54
+#, python-format
+msgid "This member identifier is greater than the previous next number"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: field:attribute_member_ident,member_ident:0
+msgid "Member identification number"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_34_product_template
+msgid "Assurance"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_20_product_template
+msgid "Conseil"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: help:attribute_member_ident,previous_member_ident:0
+msgid "This number is the one that is logical to attribute now."
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_33_product_template
+msgid "Charges locatives"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_11_product_template
+msgid "Bricorecyclo"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_10_product_template
+msgid "Atelier de rue 2h"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_1
+msgid "COTISATIONS"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_32_product_template
+msgid "Loyer"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_0
+msgid "Tous"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_6_product_template
+msgid "Consommables neufs rue"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: view:attribute_member_ident:0
+#: model:ir.actions.act_window,name:cyclofficine_pantin.attribute_member_ident_wizard_action
+#: model:ir.model,name:cyclofficine_pantin.model_attribute_member_ident
+#: view:res.partner:0
+msgid "Attribute member identification number"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_14_product_template
+msgid "Troc vélo"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_31_product_template
+msgid "Travaux"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_9_product_template
+msgid "Atelier de rue 4h"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_21_product_template
+msgid "Commission bourse "
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_9
+msgid "FOURNITURES DIVERSES"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_16_product_template
+msgid "Formation mécanique"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_3
+msgid "PREST'ACTIONS"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_2_product_template
+msgid "Cotisation prix libre"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_13_product_template
+msgid "Cyclofolies"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_18_product_template
+msgid "Démonstration"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_1_product_template
+msgid "Cotisation mini"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_35_product_template
+msgid "Mise à dispo salarié⋅e⋅s"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_7
+msgid "ATELIER"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_12_product_template
+msgid "Atelier remorques"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_11
+msgid "AUTRES CHARGES GESTION COURANTE"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_48_product_template
+msgid "Cotisations liées à la vie statutaire "
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_29_product_template
+msgid "Entretient (pq, éponges, produits…)"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_3_product_template
+msgid "Cotisation familiale "
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_28_product_template
+msgid "Matos sérigraphie"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_15_product_template
+msgid "Bourse aux vélos"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_37_product_template
+msgid "Services bancaires"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_39_product_template
+msgid "Déplacements"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: constraint:res.partner:0
+msgid "This member indentifier has not a good length."
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_5
+msgid "COMMUNICATION"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_38_product_template
+msgid "Mission"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_0_product_template
+msgid "Autre produit"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_27_product_template
+msgid "Petit équipement"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_4
+msgid "FORMATION"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_5_product_template
+msgid "Vélos"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_26_product_template
+msgid "Gaz (bonbonne)"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_8_product_template
+msgid "Boite à dons rue"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: view:attribute_member_ident:0
+msgid "Cancel"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:ir.model,name:cyclofficine_pantin.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: view:attribute_member_ident:0
+msgid "Attribute this number"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: field:attribute_member_ident,previous_member_ident:0
+msgid "Previous member identification number"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_36_product_template
+msgid "Telecom (internet, tel et timbres)"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: view:attribute_member_ident:0
+msgid "or"
+msgstr ""
+
index dd9e875..f255d51 100644 (file)
@@ -5,13 +5,336 @@ msgid ""
 msgstr ""
 "Project-Id-Version: OpenERP Server 7.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-04 13:02+0100\n"
-"PO-Revision-Date: 2015-12-04 13:02+0100\n"
+"POT-Creation-Date: 2016-06-22 10:56+0200\n"
+"PO-Revision-Date: 2016-06-22 10:56+0200\n"
+"Last-Translator: Ludovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>\n"
 "Language-Team: \n"
+"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 1.8.6\n"
-"Last-Translator: Ludovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>\n"
-"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.8.8\n"
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_23_product_template
+msgid "Outillage rue"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_30_product_template
+msgid "Équipement atelier"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: code:addons/cyclofficine_pantin/wizard/attribute_member_ident.py:54
+#, python-format
+msgid "Not possible"
+msgstr "Pas possible"
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_2
+msgid "PRIX LIBRE"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_8
+msgid "OUTILLAGE"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_24_product_template
+msgid "Fournitures de bureau"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_10
+msgid "SERVICES"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_17_product_template
+msgid "Formation pédagogie"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_22_product_template
+msgid "Outillage fixe"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_6
+msgid "COMMISSION Bourse aux Vélos"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_7_product_template
+msgid "Boite à dons fixe"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_25_product_template
+msgid "Électricité"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_19_product_template
+msgid "Graphisme / cmmunication"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: code:addons/cyclofficine_pantin/wizard/attribute_member_ident.py:54
+#, python-format
+msgid "This member identifier is greater than the previous next number"
+msgstr "Cet identifiant est plus grand que le numéro suivant prévu."
+
+#. module: cyclofficine_pantin
+#: field:attribute_member_ident,member_ident:0
+msgid "Member identification number"
+msgstr "Identifiant de l'adhérent·e"
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_34_product_template
+msgid "Assurance"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_20_product_template
+msgid "Conseil"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: help:attribute_member_ident,previous_member_ident:0
+msgid "This number is the one that is logical to attribute now."
+msgstr "Ce numéro est celui qu'il est logique d'attribuer maintenant."
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_33_product_template
+msgid "Charges locatives"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_11_product_template
+msgid "Bricorecyclo"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_10_product_template
+msgid "Atelier de rue 2h"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_1
+msgid "COTISATIONS"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_32_product_template
+msgid "Loyer"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_0
+msgid "Tous"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_6_product_template
+msgid "Consommables neufs rue"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: view:attribute_member_ident:0
+#: model:ir.actions.act_window,name:cyclofficine_pantin.attribute_member_ident_wizard_action
+#: model:ir.model,name:cyclofficine_pantin.model_attribute_member_ident
+#: view:res.partner:0
+msgid "Attribute member identification number"
+msgstr "Attribuer l'identifiant d'adhérent·e"
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_14_product_template
+msgid "Troc vélo"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_31_product_template
+msgid "Travaux"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_9_product_template
+msgid "Atelier de rue 4h"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_21_product_template
+msgid "Commission bourse "
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_9
+msgid "FOURNITURES DIVERSES"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_16_product_template
+msgid "Formation mécanique"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_3
+msgid "PREST'ACTIONS"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_2_product_template
+msgid "Cotisation prix libre"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_13_product_template
+msgid "Cyclofolies"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_18_product_template
+msgid "Démonstration"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_1_product_template
+msgid "Cotisation mini"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_35_product_template
+msgid "Mise à dispo salarié⋅e⋅s"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_7
+msgid "ATELIER"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_12_product_template
+msgid "Atelier remorques"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_11
+msgid "AUTRES CHARGES GESTION COURANTE"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_48_product_template
+msgid "Cotisations liées à la vie statutaire "
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_29_product_template
+msgid "Entretient (pq, éponges, produits…)"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_3_product_template
+msgid "Cotisation familiale "
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_28_product_template
+msgid "Matos sérigraphie"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_15_product_template
+msgid "Bourse aux vélos"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_37_product_template
+msgid "Services bancaires"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_39_product_template
+msgid "Déplacements"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: constraint:res.partner:0
+msgid "This member indentifier has not a good length."
+msgstr "Cet identifiant d'adhérent·e n'a pas la bonne taille."
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_5
+msgid "COMMUNICATION"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_38_product_template
+msgid "Mission"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_0_product_template
+msgid "Autre produit"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_27_product_template
+msgid "Petit équipement"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.category,name:cyclofficine_pantin.cyclofficine_pantin_product_category_4
+msgid "FORMATION"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_5_product_template
+msgid "Vélos"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_26_product_template
+msgid "Gaz (bonbonne)"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_8_product_template
+msgid "Boite à dons rue"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: view:attribute_member_ident:0
+msgid "Cancel"
+msgstr "Annuler"
+
+#. module: cyclofficine_pantin
+#: model:ir.model,name:cyclofficine_pantin.model_res_partner
+msgid "Partner"
+msgstr "Partenaire"
+
+#. module: cyclofficine_pantin
+#: view:attribute_member_ident:0
+msgid "Attribute this number"
+msgstr "Attribuer ce numéro"
+
+#. module: cyclofficine_pantin
+#: field:attribute_member_ident,previous_member_ident:0
+msgid "Previous member identification number"
+msgstr "Identifiant d'adhérent·e prévu"
+
+#. module: cyclofficine_pantin
+#: model:product.template,name:cyclofficine_pantin.cyclofficine_pantin_product_product_36_product_template
+msgid "Telecom (internet, tel et timbres)"
+msgstr ""
+
+#. module: cyclofficine_pantin
+#: view:attribute_member_ident:0
+msgid "or"
+msgstr "ou"
+
+#~ msgid "Point of Sale"
+#~ msgstr "Point de vente"
index f06e714..e221350 100644 (file)
@@ -33,4 +33,29 @@ class Partner(orm.Model):
 
     _order = 'member_ident,name asc'
 
+    def _check_member_ident_length(self, cr, uid, ids, context=None):
+        # Check if member ident length is equal to sequence padding.
+        sequences = self.pool.get('ir.sequence')
+        id_mb_seq = sequences.search(cr, uid,
+                                     [('name', '=', 'Member identifier')],
+                                     limit=1, context=context)
+        mb_sequences = sequences.browse(cr, uid, id_mb_seq, context=context)
+
+        partners = self.browse(cr, uid, ids, context=context)
+        for mb_seq in mb_sequences:
+            padding = mb_seq.padding
+
+        for partner in partners:
+            if partner.member_ident:
+                mb_ident_length = len(partner.member_ident)
+                if not mb_ident_length == padding:
+                    return False
+
+        return True
+
+    _constraints = [
+        (_check_member_ident_length,
+         'This member indentifier has not a good length.', ['member_ident']),
+    ]
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index f49dc6e..b366931 100644 (file)
                 <xpath expr="//notebook[@name='Volunteer activities']" position="replace"/>
             </field>
         </record>
+        <record id="view_bikecoop_l10n_fr_members_form" model="ir.ui.view">
+            <field name="name">res.partner.form</field>
+            <field name="model">res.partner</field>
+            <field name="inherit_id" ref="bikecoop_l10n_fr.view_bikecoop_l10n_fr_members_form"/>
+            <field name="arch" type="xml">
+                <xpath expr="//sheet/div[@class='oe_title']" position="after">
+                    <group>
+                        <button string="Attribute member identification number" type="action" name="%(attribute_member_ident_wizard_action)d" attrs="{'invisible': [('member_ident','!=', False)]}"/>
+                    </group>
+                </xpath>
+            </field>
+        </record>
         <record id="view_bikecoop_l10n_fr_associate_member_form" model="ir.ui.view">
             <field name="name">res.partner.form</field>
             <field name="model">res.partner</field>
             <field name="inherit_id" ref="bikecoop_l10n_fr.view_bikecoop_l10n_fr_associate_member_form"/>
             <field name="arch" type="xml">
+                <xpath expr="//sheet/div[@class='oe_title']" position="after">
+                    <group>
+                        <button string="Attribute member identification number" type="action" name="%(attribute_member_ident_wizard_action)d" attrs="{'invisible': [('member_ident','!=', False)]}"/>
+                    </group>
+                </xpath>
                 <field name="nationality_id" position="replace"/>
                 <field name="occupation_id" position="replace"/>
                 <xpath expr="//notebook[@name='Volunteer activities']" position="replace"/>
diff --git a/wizard/__init__.py b/wizard/__init__.py
new file mode 100644 (file)
index 0000000..faa13c4
--- /dev/null
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    cyclofficine_pantin module for OpenERP, Custom module for La Cyclofficine
+#    de Pantin
+
+#    Copyright (C) 2015-2016 cyclofficine_pantin
+#    (<http://cyclocoop.org/index.php/les-ateliers/pantin/>)
+#
+#    This file is a part of cyclofficine_pantin
+#
+#    cyclofficine_pantin is free software: you can redistribute it and/or
+#    modify it under the terms of the GNU General Public License as published
+#    by the Free Software Foundation, either version 3 of the License, or (at
+#    your option) any later version.
+#
+#    cyclofficine_pantin is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import attribute_member_ident
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/wizard/attribute_member_ident.py b/wizard/attribute_member_ident.py
new file mode 100644 (file)
index 0000000..7cf9331
--- /dev/null
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    cyclofficine_pantin module for OpenERP, Custom module for La Cyclofficine
+#    de Pantin
+
+#    Copyright (C) 2015-2016 cyclofficine_pantin
+#    (<http://cyclocoop.org/index.php/les-ateliers/pantin/>)
+#
+#    This file is a part of cyclofficine_pantin
+#
+#    cyclofficine_pantin is free software: you can redistribute it and/or
+#    modify it under the terms of the GNU General Public License as published
+#    by the Free Software Foundation, either version 3 of the License, or (at
+#    your option) any later version.
+#
+#    cyclofficine_pantin is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+from openerp.osv import osv
+from openerp.osv import orm
+from openerp.osv import fields
+from openerp.tools.translate import _
+
+
+class attribute_member_ident(orm.TransientModel):
+    _name = 'attribute_member_ident'
+    _description = 'Attribute member identification number'
+
+    def pad_this_member_ident(self, cr, uid, member_ident, context=None):
+        sequences = self.pool.get('ir.sequence')
+        id_mb_seq = sequences.search(
+            cr, uid, [('code', '=', 'member_ident')],
+            limit=1, context=context)
+        padding = sequences.read(cr, uid, id_mb_seq, ['padding'],
+                                 context)[0]['padding']
+        return str(member_ident).zfill(padding)
+
+    def attribute_member_ident(self, cr, uid, ids, context=None):
+        member_ident = int(self.browse(cr, uid, ids,
+                                       context=context)[0].member_ident)
+        partner_obj = self.pool.get('res.partner')
+        partner = partner_obj.browse(cr, uid, context['active_id'],
+                                     context=context)
+        previous_member_ident = int(self.get_previous_member_ident(cr, uid,
+                                                                   context))
+        if member_ident > previous_member_ident:
+            raise osv.except_osv(_('Not possible'), _('This member identifier is greater than the previous next number'))
+        elif member_ident == previous_member_ident:
+            number_next = self.pool.get('ir.sequence').get(cr, uid,
+                                                           'member_ident')
+            partner.write({'member_ident': number_next})
+        else:
+            member_ident = self.pad_this_member_ident(cr, uid, member_ident,
+                                                      context)
+            self.pad_this_member_ident(cr, uid, partner.write({'member_ident': member_ident}), context)
+        return {}
+
+    def get_previous_member_ident(self, cr, uid, context):
+        """Get previous member ident without increment sequence number next."""
+        sequences = self.pool.get('ir.sequence')
+        id_mb_seq = sequences.search(
+            cr, uid, [('code', '=', 'member_ident')],
+            limit=1, context=context)
+        mb_seq = sequences.read(cr, uid, id_mb_seq, ['number_next_actual'],
+                                context)
+        return self.pad_this_member_ident(cr, uid,
+                                          mb_seq[0]['number_next_actual'],
+                                          context)
+
+    _columns = {
+        'previous_member_ident': fields.char(
+            'Previous member identification number',
+            readonly=True,
+            size=64,
+            help='This number is the one that is logical to attribute now.'),
+        'member_ident': fields.char('Member identification number',
+                                    size=64, required=True),
+    }
+
+    _defaults = {
+        'previous_member_ident': lambda self, cr, uid, context:
+        self.get_previous_member_ident(cr, uid, context),
+        'member_ident': lambda self, cr, uid, context:
+        self.get_previous_member_ident(cr, uid, context),
+    }
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/wizard/attribute_member_ident_view.xml b/wizard/attribute_member_ident_view.xml
new file mode 100644 (file)
index 0000000..594a66e
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <record id="view_attribute_member_ident_form" model="ir.ui.view">
+            <field name="name">attribute_member_ident.form</field>
+            <field name="model">attribute_member_ident</field>
+            <field name="priority" eval="8"/>
+            <field name="arch" type="xml">
+            <form string="Attribute member identification number" col="4" version="7.0">
+                <group colspan="2">
+                    <field name="previous_member_ident"/>
+                    <field name="member_ident"/>
+                </group>
+                <footer>
+                    <button type="object" string="Attribute this number" name="attribute_member_ident" class="oe_highlight"/>
+                    or
+                    <button type="special" special="cancel" string="Cancel" icon="gtk-cancel"/>
+                </footer>
+            </form>
+            </field>
+        </record>
+        
+        <record model="ir.actions.act_window" id="attribute_member_ident_wizard_action">
+            <field name="name">Attribute member identification number</field>
+            <field name="res_model">attribute_member_ident</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">form</field>
+            <field name="context">{}</field>
+            <field name="target">new</field>
+        </record>
+    </data>
+</openerp>