Browse Source

[IMP] prototype: added helper fields and placeholders on new fields.

[IMP] prototype: no more bug when no icon, commented no implemented page in the view.

[IMP] prototype: better management of special cases.

[IMP] prototype: prototype.py removed print statement and shadowing of "fields".

[IMP] prototype -> module_prototyper

[IMP] module_prototyper: gathered menuitems that is helpfull to create a prototype under the menu 'Module Prototypes'

[IMP] module_prototyper: more comment and docstrings.

[IMP] module_prototyper: translations.

[FIX] module_prototyper: pep8

[FIX] module_prototyper: fix typo in tests.

[IMP] update module_prototyper:

* pump up the version of the module to 0.3
* replace ir.ui.model by ir.ui.view in generated xml views
* improve pep8 compatibility of generation of models

[IMP] update module_prototyper: update of README with versions.
pull/107/head
Jordi Riera 10 years ago
committed by Maxime Chambreuil
parent
commit
d741319300
  1. 45
      module_prototyper/README.rst
  2. 0
      module_prototyper/__init__.py
  3. 9
      module_prototyper/__openerp__.py
  4. 338
      module_prototyper/i18n/fr.po
  5. 327
      module_prototyper/i18n/module_prototyper.pot
  6. 4
      module_prototyper/models/__init__.py
  7. 4
      module_prototyper/models/ir_model_fields.py
  8. 51
      module_prototyper/models/module_prototyper.py
  9. 2
      module_prototyper/security/ir.model.access.csv
  10. 0
      module_prototyper/static/description/icon.png
  11. 0
      module_prototyper/templates/8.0/__init__.py.template
  12. 5
      module_prototyper/templates/8.0/__openerp__.py.template
  13. 0
      module_prototyper/templates/8.0/data/model_name.xml.template
  14. 0
      module_prototyper/templates/8.0/demo/model_name.xml.template
  15. 4
      module_prototyper/templates/8.0/header.template
  16. 0
      module_prototyper/templates/8.0/models/__init__.py.template
  17. 9
      module_prototyper/templates/8.0/models/model_name.py.template
  18. 0
      module_prototyper/templates/8.0/security/ir.model.access.csv.template
  19. 0
      module_prototyper/templates/8.0/security/model_name.xml.template
  20. 0
      module_prototyper/templates/8.0/views/model_menus.xml.template
  21. 6
      module_prototyper/templates/8.0/views/model_views.xml.template
  22. 0
      module_prototyper/tests/__init__.py
  23. 6
      module_prototyper/tests/test_prototype.py
  24. 4
      module_prototyper/tests/test_prototype_module_export.py
  25. 35
      module_prototyper/views/ir_model_fields_view.xml
  26. 88
      module_prototyper/views/module_prototyper_view.xml
  27. 2
      module_prototyper/wizard/__init__.py
  28. 24
      module_prototyper/wizard/module_prototyper_module_export.py
  29. 4
      module_prototyper/wizard/module_prototyper_module_export_view.xml
  30. 2
      prototype/demo/prototype.prototype.csv
  31. 272
      prototype/i18n/fr.po
  32. 268
      prototype/i18n/prototype.pot
  33. 2
      prototype/security/ir.model.access.csv
  34. 30
      prototype/views/ir_model_fields_view.xml

45
prototype/README.rst → module_prototyper/README.rst

@ -77,3 +77,48 @@ This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
To contribute to this module, please visit http://odoo-community.org. To contribute to this module, please visit http://odoo-community.org.
Versions
========
v0.1
----
All the features are not implemented but the minimal is done.
With this version you can:
The set up of openerp.py is covered, description, maintainer, website, name, technical name...
Views and menus can be set through odoo and gathered in prototype. The files will be automatically generated and add to the data section of the openerp.py. Be aware some advanced feature as domain or context might still missing.
Dependencies can be set throught the Dependency page
Custom fields can be added. A file by model will be generated with all the fields of the model. The init.py files are updated accordingly. Be aware that some features are not implemented yet, as the domain, the context.
This version should be enought for:
set up the client module
create a new field in a view.
Features that you might expect in next version:
better generation of fields (many2many fields, domain, context)
Generation of data and demo data files.
Security files (rules, ir.model.access.csv)
openerp's description editing README.rst and index.html
module screenshots
v0.2
----
Renamed from prototype to module_prototyper as discussed in #108
menu in Settings that gather element used to create a prototype (menu views, views, fields)
v0.3
----
Replace ir.ui.model by ir.ui.view in generated xml views
Improve pep8 compatibility of generation of models
Known bugs
----------
icon file extension might be wrong. The extension is hard coded for now. It is planned add Document as dependency to handle it.

0
prototype/__init__.py → module_prototyper/__init__.py

9
prototype/__openerp__.py → module_prototyper/__openerp__.py

@ -21,8 +21,8 @@
############################################################################## ##############################################################################
{ {
'name': 'Prototype',
'version': '0.1',
'name': 'Module Prototyper',
'version': '0.3',
'author': 'Savoir-faire Linux', 'author': 'Savoir-faire Linux',
'maintainer': 'Savoir-faire Linux', 'maintainer': 'Savoir-faire Linux',
'website': 'http://www.savoirfairelinux.com', 'website': 'http://www.savoirfairelinux.com',
@ -30,15 +30,14 @@
'category': 'Others', 'category': 'Others',
'summary': 'Prototype your module', 'summary': 'Prototype your module',
'depends': [ 'depends': [
'base',
'admin_technical_features', 'admin_technical_features',
], ],
'external_dependencies': { 'external_dependencies': {
'python': [], 'python': [],
}, },
'data': [ 'data': [
'wizard/prototype_module_export_view.xml',
'views/prototype_view.xml',
'wizard/module_prototyper_module_export_view.xml',
'views/module_prototyper_view.xml',
'views/ir_model_fields_view.xml', 'views/ir_model_fields_view.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
], ],

338
module_prototyper/i18n/fr.po

@ -0,0 +1,338 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * module_prototyper
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-02 17:07+0000\n"
"PO-Revision-Date: 2015-01-02 12:18-0500\n"
"Last-Translator: Jordi Riera <jordi.riera@savoirfairelinux.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"X-Generator: Poedit 1.5.4\n"
#. module: module_prototyper
#: selection:module_prototyper.module.export,api_version:0
msgid "8.0"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper.module.export,api_version:0
msgid "API version"
msgstr "Version de l'API"
#. module: module_prototyper
#: field:module_prototyper,right_ids:0
msgid "Access Rights"
msgstr "Liste des contrôles d'accès"
#. module: module_prototyper
#: field:module_prototyper,application:0
msgid "Application"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,author:0
msgid "Author"
msgstr "Auteur"
#. module: module_prototyper
#: field:module_prototyper,auto_install:0
msgid "Auto Install"
msgstr "Installation automatique"
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Cancel"
msgstr "Annuler"
#. module: module_prototyper
#: field:module_prototyper,category_id:0
msgid "Category"
msgstr "Catégorie"
#. module: module_prototyper
#: help:module_prototyper,application:0
msgid "Check if the module is an Odoo application."
msgstr "Cocher si le module est une application Odoo."
#. module: module_prototyper
#: help:module_prototyper,auto_install:0
msgid "Check if the module should be install by default."
msgstr "Cocher si le module devrait être installé par défaut."
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Close"
msgstr "Fermer"
#. module: module_prototyper
#: field:module_prototyper,create_uid:0
#: field:module_prototyper.module.export,create_uid:0
msgid "Created by"
msgstr "Créé par"
#. module: module_prototyper
#: field:module_prototyper,create_date:0
#: field:module_prototyper.module.export,create_date:0
msgid "Created on"
msgstr "Créé le"
#. module: module_prototyper
#: field:module_prototyper,data_ids:0
msgid "Data filters"
msgstr "Filtres pour les données"
#. module: module_prototyper
#: field:module_prototyper,demo_ids:0
msgid "Demo filters"
msgstr "Filtres pour les données de démo"
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
#: field:module_prototyper,dependency_ids:0
msgid "Dependencies"
msgstr "Dépendances"
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
#: field:module_prototyper,description:0
msgid "Description"
msgstr "Descriptions"
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Export"
msgstr "Exporter"
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Export Complete"
msgstr "Export terminé"
#. module: module_prototyper
#: model:ir.actions.act_window,name:module_prototyper.button_module_export_action
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Export Module"
msgstr "Exporter le module"
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Export Settings"
msgstr "Configuration de l'export"
#. module: module_prototyper
#: model:ir.model,name:module_prototyper.model_ir_model_fields
#: model:ir.ui.menu,name:module_prototyper.ir_model_model_fields
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
#: field:module_prototyper,field_ids:0
msgid "Fields"
msgstr "Champs"
#. module: module_prototyper
#: field:module_prototyper.module.export,data:0
msgid "File"
msgstr "Fichier"
#. module: module_prototyper
#: field:module_prototyper.module.export,name:0
msgid "File Name"
msgstr "Nom du fichier"
#. module: module_prototyper
#: field:module_prototyper,group_ids:0
msgid "Groups"
msgstr "Groupes"
#. module: module_prototyper
#: field:ir.model.fields,helper:0
msgid "Helper"
msgstr "Texte d'aider"
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Here is the exported module:"
msgstr "Voici le module exporté :"
#. module: module_prototyper
#: field:module_prototyper,id:0 field:module_prototyper.module.export,id:0
msgid "ID"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,icon_image:0
msgid "Icon"
msgstr "Icône"
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
msgid "Interface"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,write_uid:0
#: field:module_prototyper.module.export,write_uid:0
msgid "Last Updated by"
msgstr "Mis à jour par"
#. module: module_prototyper
#: field:module_prototyper,write_date:0
#: field:module_prototyper.module.export,write_date:0
msgid "Last Updated on"
msgstr "Mis à jour le"
#. module: module_prototyper
#: field:module_prototyper,licence:0
msgid "Licence"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,maintainer:0
msgid "Maintainer"
msgstr "Mainteneur"
#. module: module_prototyper
#: model:ir.ui.menu,name:module_prototyper.menu_grant_menu_access
#: field:module_prototyper,menu_ids:0
msgid "Menu Items"
msgstr "Éléments du menu"
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
msgid "Module"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,human_name:0
msgid "Module Name"
msgstr "Nom du module"
#. module: module_prototyper
#: model:ir.model,name:module_prototyper.model_module_prototyper
msgid "Module Prototyper"
msgstr ""
#. module: module_prototyper
#: model:ir.ui.menu,name:module_prototyper.menu_module_prototyper
msgid "Module Prototypers"
msgstr ""
#. module: module_prototyper
#: view:ir.model:module_prototyper.view_ir_model_form
msgid "Notes"
msgstr ""
#. module: module_prototyper
#: field:ir.model.fields,notes:0
msgid "Notes to developers."
msgstr "Notes aux développeurs."
#. module: module_prototyper
#: view:ir.model.fields:module_prototyper.view_ir_model_fields_form
msgid ""
"Notes to help developers to understand the work or advanced features that "
"should be added, ie: onchange, etc."
msgstr ""
"Notes pour aider les développeurs à comprendre le travail effectué ou les "
"ajouts à faire. Exemple: onchanges, etc."
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_tree_view
msgid "Prototype"
msgstr ""
#. module: module_prototyper
#: model:ir.actions.act_window,name:module_prototyper.open_module_prototyper_list
#: model:ir.ui.menu,name:module_prototyper.menu_open_module_prototyper
msgid "Prototypes"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,rule_ids:0
msgid "Record Rules"
msgstr "Règles sur les enregistrements"
#. module: module_prototyper
#: field:module_prototyper.module.export,state:0
msgid "State"
msgstr "État"
#. module: module_prototyper
#: field:module_prototyper,summary:0
msgid "Summary"
msgstr "Résumé"
#. module: module_prototyper
#: field:module_prototyper,name:0
msgid "Technical Name"
msgstr "Nom technique"
#. module: module_prototyper
#: view:ir.model.fields:module_prototyper.view_ir_model_fields_form
msgid "Text that will be set as the helper of the field..."
msgstr "Texte qui sera placé en tant que texte d'aide du champs."
#. module: module_prototyper
#: help:module_prototyper,human_name:0
msgid ""
"The Module Name will be used as the displayed name of the exported module."
msgstr "Le nom du module sera affiché en tant que nom du module exporté."
#. module: module_prototyper
#: help:module_prototyper,icon_image:0
msgid ""
"The icon set up here will be used as the icon for the exported module also"
msgstr "L'icône sera utilisé comme icône du module exporté."
#. module: module_prototyper
#: help:module_prototyper,data_ids:0
msgid "The records matching the filters will be added as data."
msgstr ""
"Les enregistrements correspondant aux critères des filtres seront exportées "
"dans le module comme données."
#. module: module_prototyper
#: help:module_prototyper,demo_ids:0
msgid "The records matching the filters will be added as demo data."
msgstr ""
"Les enregistrements correspondant aux critères des filtres seront exportées "
"dans le module comme données de démo."
#. module: module_prototyper
#: help:module_prototyper,name:0
msgid ""
"The technical name will be used to define the name of the exported module, "
"the name of the model."
msgstr "Le nom technique sera utilisé comme nom du module exporté."
#. module: module_prototyper
#: field:module_prototyper,version:0
msgid "Version"
msgstr ""
#. module: module_prototyper
#: model:ir.ui.menu,name:module_prototyper.menu_action_ui_view
#: field:module_prototyper,view_ids:0
msgid "Views"
msgstr "Vues"
#. module: module_prototyper
#: field:module_prototyper,website:0
msgid "Website"
msgstr "Site web"
#. module: module_prototyper
#: selection:module_prototyper.module.export,state:0
msgid "choose"
msgstr "choisir"
#. module: module_prototyper
#: selection:module_prototyper.module.export,state:0
msgid "get"
msgstr "récupérer"

327
module_prototyper/i18n/module_prototyper.pot

@ -0,0 +1,327 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * module_prototyper
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-01-02 17:07+0000\n"
"PO-Revision-Date: 2015-01-02 17:07+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: module_prototyper
#: selection:module_prototyper.module.export,api_version:0
msgid "8.0"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper.module.export,api_version:0
msgid "API version"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,right_ids:0
msgid "Access Rights"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,application:0
msgid "Application"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,author:0
msgid "Author"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,auto_install:0
msgid "Auto Install"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Cancel"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,category_id:0
msgid "Category"
msgstr ""
#. module: module_prototyper
#: help:module_prototyper,application:0
msgid "Check if the module is an Odoo application."
msgstr ""
#. module: module_prototyper
#: help:module_prototyper,auto_install:0
msgid "Check if the module should be install by default."
msgstr ""
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Close"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,create_uid:0
#: field:module_prototyper.module.export,create_uid:0
msgid "Created by"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,create_date:0
#: field:module_prototyper.module.export,create_date:0
msgid "Created on"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,data_ids:0
msgid "Data filters"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,demo_ids:0
msgid "Demo filters"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
#: field:module_prototyper,dependency_ids:0
msgid "Dependencies"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
#: field:module_prototyper,description:0
msgid "Description"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Export"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Export Complete"
msgstr ""
#. module: module_prototyper
#: model:ir.actions.act_window,name:module_prototyper.button_module_export_action
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Export Module"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Export Settings"
msgstr ""
#. module: module_prototyper
#: model:ir.model,name:module_prototyper.model_ir_model_fields
#: model:ir.ui.menu,name:module_prototyper.ir_model_model_fields
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
#: field:module_prototyper,field_ids:0
msgid "Fields"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper.module.export,data:0
msgid "File"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper.module.export,name:0
msgid "File Name"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,group_ids:0
msgid "Groups"
msgstr ""
#. module: module_prototyper
#: field:ir.model.fields,helper:0
msgid "Helper"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper.module.export:module_prototyper.view_module_export_wizard
msgid "Here is the exported module:"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,id:0
#: field:module_prototyper.module.export,id:0
msgid "ID"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,icon_image:0
msgid "Icon"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
msgid "Interface"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,write_uid:0
#: field:module_prototyper.module.export,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,write_date:0
#: field:module_prototyper.module.export,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,licence:0
msgid "Licence"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,maintainer:0
msgid "Maintainer"
msgstr ""
#. module: module_prototyper
#: model:ir.ui.menu,name:module_prototyper.menu_grant_menu_access
#: field:module_prototyper,menu_ids:0
msgid "Menu Items"
msgstr ""
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_form_view
msgid "Module"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,human_name:0
msgid "Module Name"
msgstr ""
#. module: module_prototyper
#: model:ir.model,name:module_prototyper.model_module_prototyper
msgid "Module Prototyper"
msgstr ""
#. module: module_prototyper
#: model:ir.ui.menu,name:module_prototyper.menu_module_prototyper
msgid "Module Prototypers"
msgstr ""
#. module: module_prototyper
#: view:ir.model:module_prototyper.view_ir_model_form
msgid "Notes"
msgstr ""
#. module: module_prototyper
#: field:ir.model.fields,notes:0
msgid "Notes to developers."
msgstr ""
#. module: module_prototyper
#: view:ir.model.fields:module_prototyper.view_ir_model_fields_form
msgid "Notes to help developers to understand the work or advanced features that should be added, ie: onchange, etc."
msgstr ""
#. module: module_prototyper
#: view:module_prototyper:module_prototyper.module_prototyper_base_tree_view
msgid "Prototype"
msgstr ""
#. module: module_prototyper
#: model:ir.actions.act_window,name:module_prototyper.open_module_prototyper_list
#: model:ir.ui.menu,name:module_prototyper.menu_open_module_prototyper
msgid "Prototypes"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,rule_ids:0
msgid "Record Rules"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper.module.export,state:0
msgid "State"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,summary:0
msgid "Summary"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,name:0
msgid "Technical Name"
msgstr ""
#. module: module_prototyper
#: view:ir.model.fields:module_prototyper.view_ir_model_fields_form
msgid "Text that will be set as the helper of the field..."
msgstr ""
#. module: module_prototyper
#: help:module_prototyper,human_name:0
msgid "The Module Name will be used as the displayed name of the exported module."
msgstr ""
#. module: module_prototyper
#: help:module_prototyper,icon_image:0
msgid "The icon set up here will be used as the icon for the exported module also"
msgstr ""
#. module: module_prototyper
#: help:module_prototyper,data_ids:0
msgid "The records matching the filters will be added as data."
msgstr ""
#. module: module_prototyper
#: help:module_prototyper,demo_ids:0
msgid "The records matching the filters will be added as demo data."
msgstr ""
#. module: module_prototyper
#: help:module_prototyper,name:0
msgid "The technical name will be used to define the name of the exported module, the name of the model."
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,version:0
msgid "Version"
msgstr ""
#. module: module_prototyper
#: model:ir.ui.menu,name:module_prototyper.menu_action_ui_view
#: field:module_prototyper,view_ids:0
msgid "Views"
msgstr ""
#. module: module_prototyper
#: field:module_prototyper,website:0
msgid "Website"
msgstr ""
#. module: module_prototyper
#: selection:module_prototyper.module.export,state:0
msgid "choose"
msgstr ""
#. module: module_prototyper
#: selection:module_prototyper.module.export,state:0
msgid "get"
msgstr ""

4
prototype/models/__init__.py → module_prototyper/models/__init__.py

@ -20,6 +20,6 @@
# #
############################################################################## ##############################################################################
from . import ( from . import (
prototype,
ir_model_fields
module_prototyper,
ir_model_fields,
) )

4
prototype/models/ir_model_fields.py → module_prototyper/models/ir_model_fields.py

@ -23,6 +23,8 @@ from openerp import fields, models
class ir_model_fields(models.Model): class ir_model_fields(models.Model):
"""Addition of text fields to fields."""
_inherit = "ir.model.fields" _inherit = "ir.model.fields"
notes = fields.Text('Notes')
notes = fields.Text('Notes to developers.')
helper = fields.Text('Helper')

51
prototype/models/prototype.py → module_prototyper/models/module_prototyper.py

@ -30,10 +30,18 @@ from jinja2 import Environment, FileSystemLoader
from openerp import models, api, fields from openerp import models, api, fields
class Prototype(models.Model):
_name = "prototype"
_description = "Prototype"
class ModulePrototyper(models.Model):
"""Module Prototyper gathers different information from all over the
database to build a prototype of module.
We are calling it a prototype as it will most likely need to be reviewed
by a developer to fix glitch that would sneak it during the generation of
files but also to add not supported features.
"""
_name = "module_prototyper"
_description = "Module Prototyper"
# In prevision of odoo might support other licences than AGPL in
# (near) future.
licence = fields.Char( licence = fields.Char(
'Licence', 'Licence',
default='AGPL-3', default='AGPL-3',
@ -72,48 +80,48 @@ class Prototype(models.Model):
) )
# Relations # Relations
dependency_ids = fields.Many2many( dependency_ids = fields.Many2many(
'ir.module.module', 'prototype_module_rel',
'prototype_id', 'module_id',
'ir.module.module', 'module_prototyper_module_rel',
'module_prototyper_id', 'module_id',
'Dependencies' 'Dependencies'
) )
data_ids = fields.Many2many( data_ids = fields.Many2many(
'ir.filters', 'ir.filters',
'prototype_data_rel', 'prototype_data_rel',
'prototype_id', 'filter_id',
'module_prototyper_id', 'filter_id',
'Data filters', 'Data filters',
help="The records matching the filters will be added as data." help="The records matching the filters will be added as data."
) )
demo_ids = fields.Many2many( demo_ids = fields.Many2many(
'ir.filters', 'ir.filters',
'prototype_demo_rel', 'prototype_demo_rel',
'prototype_id', 'filter_id',
'module_prototyper_id', 'filter_id',
'Demo filters', 'Demo filters',
help="The records matching the filters will be added as demo data." help="The records matching the filters will be added as demo data."
) )
field_ids = fields.Many2many( field_ids = fields.Many2many(
'ir.model.fields', 'prototype_fields_rel', 'ir.model.fields', 'prototype_fields_rel',
'prototype_id', 'field_id', 'Fields'
'module_prototyper_id', 'field_id', 'Fields'
) )
menu_ids = fields.Many2many( menu_ids = fields.Many2many(
'ir.ui.menu', 'prototype_menu_rel', 'ir.ui.menu', 'prototype_menu_rel',
'prototype_id', 'menu_id', 'Menu Items'
'module_prototyper_id', 'menu_id', 'Menu Items'
) )
view_ids = fields.Many2many( view_ids = fields.Many2many(
'ir.ui.view', 'prototype_view_rel', 'ir.ui.view', 'prototype_view_rel',
'prototype_id', 'view_id', 'Views'
'module_prototyper_id', 'view_id', 'Views'
) )
group_ids = fields.Many2many( group_ids = fields.Many2many(
'res.groups', 'prototype_groups_rel', 'res.groups', 'prototype_groups_rel',
'prototype_id', 'group_id', 'Groups'
'module_prototyper_id', 'group_id', 'Groups'
) )
right_ids = fields.Many2many( right_ids = fields.Many2many(
'ir.model.access', 'prototype_rights_rel', 'ir.model.access', 'prototype_rights_rel',
'prototype_id', 'right_id',
'module_prototyper_id', 'right_id',
'Access Rights' 'Access Rights'
) )
rule_ids = fields.Many2many( rule_ids = fields.Many2many(
'ir.rule', 'prototype_rule_rel', 'ir.rule', 'prototype_rule_rel',
'prototype_id', 'rule_id', 'Record Rules'
'module_prototyper_id', 'rule_id', 'Record Rules'
) )
__data_files = [] __data_files = []
@ -176,12 +184,23 @@ class Prototype(models.Model):
# must be the last as the other generations might add information # must be the last as the other generations might add information
# to put in the __openerp__: additional dependencies, views files, etc. # to put in the __openerp__: additional dependencies, views files, etc.
file_details.append(self.generate_module_openerp_file_details()) file_details.append(self.generate_module_openerp_file_details())
file_details.append(self.save_icon())
if self.icon_image:
file_details.append(self.save_icon())
return file_details return file_details
@api.model @api.model
def save_icon(self): def save_icon(self):
"""Save the icon of the prototype as a image.
The image is used afterwards as the icon of the exported module.
:return: FileDetails instance
"""
# TODO: The image is not always a jpg.
# 2 ways to do it:
# * find a way to detect image type from the data
# * add document as a dependency.
# The second options seems to be better, as Document is a base module.
return self.File_details( return self.File_details(
os.path.join('static', 'description', 'icon.jpg'), os.path.join('static', 'description', 'icon.jpg'),
base64.b64decode(self.icon_image) base64.b64decode(self.icon_image)
@ -234,8 +253,8 @@ class Prototype(models.Model):
# }) # })
files.append(self.generate_models_init_details(relations.keys())) files.append(self.generate_models_init_details(relations.keys()))
for model, fields in relations.iteritems():
files.append(self.generate_model_details(model, fields))
for model, custom_fields in relations.iteritems():
files.append(self.generate_model_details(model, custom_fields))
return files return files

2
module_prototyper/security/ir.model.access.csv

@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_prototype_admin,prototype_system,model_module_prototyper,base.group_system,1,1,1,1

0
prototype/static/description/icon.png → module_prototyper/static/description/icon.png

Before

Width: 500  |  Height: 500  |  Size: 14 KiB

After

Width: 500  |  Height: 500  |  Size: 14 KiB

0
prototype/templates/8.0/__init__.py.template → module_prototyper/templates/8.0/__init__.py.template

5
prototype/templates/8.0/__openerp__.py.template → module_prototyper/templates/8.0/__openerp__.py.template

@ -3,7 +3,6 @@
{ {
'name': '{{ prototype.name }}', 'name': '{{ prototype.name }}',
'version': '{{ prototype.version }}', 'version': '{{ prototype.version }}',
'author': '{{ prototype.author }}', 'author': '{{ prototype.author }}',
'maintainer': '{{ prototype.maintainer }}', 'maintainer': '{{ prototype.maintainer }}',
'website': '{{ prototype.website }}', 'website': '{{ prototype.website }}',
@ -17,8 +16,8 @@
'description': """ 'description': """
{{ prototype.description }} {{ prototype.description }}
* Module exported by the prototype module for version 8.0.
* If you have any questions, please contact Savoir-faire Linux \
* Module exported by the Module Prototyper module for version 8.0.
* If you have any questions, please contact Savoir-faire Linux
(support@savoirfairelinux.com) (support@savoirfairelinux.com)
""", """,

0
prototype/templates/8.0/data/model_name.xml.template → module_prototyper/templates/8.0/data/model_name.xml.template

0
prototype/templates/8.0/demo/model_name.xml.template → module_prototyper/templates/8.0/demo/model_name.xml.template

4
prototype/templates/8.0/header.template → module_prototyper/templates/8.0/header.template

@ -2,8 +2,8 @@
############################################################################## ##############################################################################
# #
# Odoo, Open Source Management Solution # Odoo, Open Source Management Solution
# This module copyright (C) {{ export_year }} {{ author }}
# ({{ website }}).
# This module copyright (C) {{ export_year }} {% if author %}{{ author }}{% endif %}
# {% if website %}({{ website }}).{% endif %}
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as

0
prototype/templates/8.0/models/__init__.py.template → module_prototyper/templates/8.0/models/__init__.py.template

9
prototype/templates/8.0/models/model_name.py.template → module_prototyper/templates/8.0/models/model_name.py.template

@ -6,16 +6,17 @@ from openerp.tools.translate import _
class {{ name }}(models.Model): class {{ name }}(models.Model):
_inherit = "{{ inherit }}" _inherit = "{{ inherit }}"
{% if description %}_description = "{{ description }}"{% endif %}
{% if description -%}_description = "{{ description }}"{% endif %}
{% for field in fields -%} {% for field in fields -%}
{% if field.notes -%}# {{ field.notes }}{% endif %}
{{ field.name }} = fields.{{ field.ttype|capitalize }}( {{ field.name }} = fields.{{ field.ttype|capitalize }}(
string=_("{{ field.field_description }}"), string=_("{{ field.field_description }}"),
required={{ field.required }}, required={{ field.required }},
translate={{ field.translate }}, translate={{ field.translate }},
readonly={{ field.readonly }}, readonly={{ field.readonly }},
help=_('{{ field.notes }}'),
)
{% endfor %}
{% if field.size -%}size={{ field.size }},{% endif %}
{% if field.helper -%}help=_("{{ field.helper }}"),{% endif %}
){% endfor %}
{% endblock %} {% endblock %}

0
prototype/templates/8.0/security/ir.model.access.csv.template → module_prototyper/templates/8.0/security/ir.model.access.csv.template

0
prototype/templates/8.0/security/model_name.xml.template → module_prototyper/templates/8.0/security/model_name.xml.template

0
prototype/templates/8.0/views/model_menus.xml.template → module_prototyper/templates/8.0/views/model_menus.xml.template

6
prototype/templates/8.0/views/model_views.xml.template → module_prototyper/templates/8.0/views/model_views.xml.template

@ -3,8 +3,8 @@
<data> <data>
<!-- TODO: put here a reminder on what to do at the first edition --> <!-- TODO: put here a reminder on what to do at the first edition -->
{% for view in views %}
<record id="{{ view.name|replace('.', '_')}}_view" model="ir.ui.model">
{% for view in views -%}
<record id="{{ view.name|replace('.', '_')}}_view" model="ir.ui.view">
<field name="name">{{ view.name }}.view</field> <field name="name">{{ view.name }}.view</field>
<field name="model">{{ view.model }}</field> <field name="model">{{ view.model }}</field>
<field name="view_type">{{ view.type }}</field> <field name="view_type">{{ view.type }}</field>
@ -15,7 +15,7 @@
Be careful, custom field have a x_ prefix that has to be Be careful, custom field have a x_ prefix that has to be
removed removed
#} #}
{{ view.arch|replace('<?xml version="1.0"?>', '')|replace('"x_', '"') }}
{{ view.arch|replace('"', "'")|replace("<?xml version='1.0'?>", "")|replace("'x_", "'")|replace("> </field>", "/>") }}
</field> </field>
</record> </record>
{% endfor %} {% endfor %}

0
prototype/tests/__init__.py → module_prototyper/tests/__init__.py

6
prototype/tests/test_prototype.py → module_prototyper/tests/test_prototype.py

@ -22,10 +22,10 @@ from jinja2.exceptions import TemplateNotFound
from openerp.tests import common from openerp.tests import common
class test_prototype(common.TransactionCase):
class TestModulePrototyper(common.TransactionCase):
def setUp(self): def setUp(self):
super(test_prototype, self).setUp()
self.main_model = self.env['prototype']
super(TestModulePrototyper, self).setUp()
self.main_model = self.env['module_prototyper']
self.module_category_model = self.env['ir.module.category'] self.module_category_model = self.env['ir.module.category']
self.module_module_model = self.env['ir.module.module'] self.module_module_model = self.env['ir.module.module']

4
prototype/tests/test_prototype_module_export.py → module_prototyper/tests/test_prototype_module_export.py

@ -27,8 +27,8 @@ import StringIO
class test_prototype_module_export(common.TransactionCase): class test_prototype_module_export(common.TransactionCase):
def setUp(self): def setUp(self):
super(test_prototype_module_export, self).setUp() super(test_prototype_module_export, self).setUp()
self.main_model = self.env['prototype.module.export']
self.prototype_model = self.env['prototype']
self.main_model = self.env['module_prototyper.module.export']
self.prototype_model = self.env['module_prototyper']
self.module_category_model = self.env[ self.module_category_model = self.env[
'ir.module.category' 'ir.module.category'
] ]

35
module_prototyper/views/ir_model_fields_view.xml

@ -0,0 +1,35 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="view_ir_model_fields_form" model="ir.ui.view">
<field name="name">view_ir_model_fields_form</field>
<field name="model">ir.model.fields</field>
<field name="inherit_id" ref="base.view_model_fields_form"/>
<field name="arch" type="xml">
<field name="groups" position="before">
<label for="helper"/>
<field name="helper"
placeholder="Text that will be set as the helper of the field..."/>
<label for="notes"/>
<field name="notes"
placeholder="Notes to help developers to understand the work or advanced features that should be added, ie: onchange, etc."/>
</field>
</field>
</record>
<record id="view_ir_model_form" model="ir.ui.view">
<field name="name">view_ir_model_form</field>
<field name="model">ir.model</field>
<field name="inherit_id" ref="base.view_model_form"/>
<field name="arch" type="xml">
<xpath expr="//page/field/form/separator[@string='Groups']"
position="before">
<separator string="Notes"/>
<field name="notes"/>
</xpath>
</field>
</record>
</data>
</openerp>

88
prototype/views/prototype_view.xml → module_prototyper/views/module_prototyper_view.xml

@ -2,9 +2,9 @@
<openerp> <openerp>
<data> <data>
<record id="view_prototype_tree" model="ir.ui.view">
<field name="name">prototype.tree</field>
<field name="model">prototype</field>
<record id="module_prototyper_base_tree_view" model="ir.ui.view">
<field name="name">Base tree View for module prototypes</field>
<field name="model">module_prototyper</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Prototype"> <tree string="Prototype">
<field name="human_name"/> <field name="human_name"/>
@ -14,9 +14,9 @@
</field> </field>
</record> </record>
<record id="view_prototype_form" model="ir.ui.view">
<field name="name">prototype.form</field>
<field name="model">prototype</field>
<record id="module_prototyper_base_form_view" model="ir.ui.view">
<field name="name">Base form view for module prototypes</field>
<field name="model">module_prototyper</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Module"> <form string="Module">
<link rel="stylesheet" <link rel="stylesheet"
@ -55,49 +55,77 @@
<page string="Dependencies"> <page string="Dependencies">
<field name="dependency_ids"/> <field name="dependency_ids"/>
</page> </page>
<page string="Data &amp; Demo">
<label for="data_ids"/>
<field name="data_ids"/>
<label for="demo_ids"/>
<field name="demo_ids"/>
</page>
<!--Not implemented yet-->
<!--<page string="Data &amp; Demo">-->
<!--<label for="data_ids"/>-->
<!--<field name="data_ids"/>-->
<!--<label for="demo_ids"/>-->
<!--<field name="demo_ids"/>-->
<!--</page>-->
<page string="Fields"> <page string="Fields">
<label for="field_ids"/> <label for="field_ids"/>
<field name="field_ids"/> <field name="field_ids"/>
</page> </page>
<page string="Interface"> <page string="Interface">
<label for="menu_ids"/>
<field name="menu_ids"/>
<label for="view_ids"/> <label for="view_ids"/>
<field name="view_ids"/> <field name="view_ids"/>
<label for="menu_ids"/>
<field name="menu_ids"/>
</page> </page>
<page string="Security">
<label for="group_ids"/>
<field name="group_ids"/>
<label for="right_ids"/>
<field name="right_ids"/>
<label for="rule_ids"/>
<field name="rule_ids"/>
</page>
<!--Not implemented yet-->
<!--<page string="Security">-->
<!--<label for="group_ids"/>-->
<!--<field name="group_ids"/>-->
<!--<label for="right_ids"/>-->
<!--<field name="right_ids"/>-->
<!--<label for="rule_ids"/>-->
<!--<field name="rule_ids"/>-->
<!--</page>-->
</notebook> </notebook>
</sheet> </sheet>
</form> </form>
</field> </field>
</record> </record>
<record id="open_prototype_list" model="ir.actions.act_window">
<field name="name">Prototype</field>
<field name="res_model">prototype</field>
<record id="open_module_prototyper_list" model="ir.actions.act_window">
<field name="name">Prototypes</field>
<field name="res_model">module_prototyper</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="view_id" ref="view_prototype_tree"/>
<field name="view_id" ref="module_prototyper_base_tree_view"/>
</record> </record>
<menuitem id="menu_open_prototype"
action="open_prototype_list"
parent="base.menu_management"
sequence="30"
<!--Here a menu is created to help user to have all what he needs-->
<!--under his mouse with ease-->
<menuitem id="menu_module_prototyper"
name="Module Prototypes"
parent="base.menu_administration"
sequence="1"/>
<menuitem id="menu_open_module_prototyper"
action="open_module_prototyper_list"
parent="menu_module_prototyper"
sequence="1"
groups="base.group_system"/> groups="base.group_system"/>
<menuitem action="base.action_ui_view"
id="menu_action_ui_view"
parent="menu_module_prototyper"
sequence="2"
groups="base.group_system"/>
<menuitem action="base.grant_menu_access"
id="menu_grant_menu_access"
parent="menu_module_prototyper"
sequence="3"
groups="base.group_system"/>
<menuitem action="base.action_model_fields"
id="ir_model_model_fields"
parent="menu_module_prototyper"
sequence="4"
groups="base.group_system"/>
</data> </data>
</openerp> </openerp>

2
prototype/wizard/__init__.py → module_prototyper/wizard/__init__.py

@ -19,4 +19,4 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
############################################################################## ##############################################################################
from . import prototype_module_export
from . import module_prototyper_module_export

24
prototype/wizard/prototype_module_export.py → module_prototyper/wizard/module_prototyper_module_export.py

@ -7,8 +7,8 @@
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -26,8 +26,8 @@ from collections import namedtuple
from openerp import fields, models, api from openerp import fields, models, api
class prototype_module_export(models.TransientModel):
_name = "prototype.module.export"
class PrototypeModuleExport(models.TransientModel):
_name = "module_prototyper.module.export"
name = fields.Char('File Name', readonly=True) name = fields.Char('File Name', readonly=True)
# It is implemented in order to manage previous and next versions # It is implemented in order to manage previous and next versions
@ -63,10 +63,10 @@ class prototype_module_export(models.TransientModel):
active_model = self._context.get('active_model') active_model = self._context.get('active_model')
# checking if the wizard was called by a prototype. # checking if the wizard was called by a prototype.
assert active_model == 'prototype', \
'{} has to be called from a "prototype" , not a "{}"'.format(
self, active_model
)
msg = '{} has to be called from a "module_prototyper" , not a "{}"'
assert active_model == 'module_prototyper', msg.format(
self, active_model
)
# getting the prototype of the wizard # getting the prototype of the wizard
prototype = self.env[active_model].browse( prototype = self.env[active_model].browse(
@ -94,7 +94,7 @@ class prototype_module_export(models.TransientModel):
return { return {
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
'res_model': 'prototype.module.export',
'res_model': 'module_prototyper.module.export',
'view_mode': 'form', 'view_mode': 'form',
'view_type': 'form', 'view_type': 'form',
'res_id': wizard.id, 'res_id': wizard.id,
@ -105,17 +105,17 @@ class prototype_module_export(models.TransientModel):
@staticmethod @staticmethod
def zip_files(file_details): def zip_files(file_details):
"""Takes a set of file and zips them. """Takes a set of file and zips them.
:param file_details: tuple (filename, filecontent)
:param file_details: tuple (filename, file_content)
:return: tuple (zip_file, stringIO) :return: tuple (zip_file, stringIO)
""" """
zip_details = namedtuple('Zip_details', ['zip_file', 'stringIO']) zip_details = namedtuple('Zip_details', ['zip_file', 'stringIO'])
out = StringIO.StringIO() out = StringIO.StringIO()
with zipfile.ZipFile(out, 'w') as target: with zipfile.ZipFile(out, 'w') as target:
for filename, filecontent in file_details:
for filename, file_content in file_details:
info = zipfile.ZipInfo(filename) info = zipfile.ZipInfo(filename)
info.compress_type = zipfile.ZIP_DEFLATED info.compress_type = zipfile.ZIP_DEFLATED
info.external_attr = 2175008768 # specifies mode 0644 info.external_attr = 2175008768 # specifies mode 0644
target.writestr(info, filecontent)
target.writestr(info, file_content)
return zip_details(zip_file=target, stringIO=out) return zip_details(zip_file=target, stringIO=out)

4
prototype/wizard/prototype_module_export_view.xml → module_prototyper/wizard/module_prototyper_module_export_view.xml

@ -4,7 +4,7 @@
<record id="view_module_export_wizard" model="ir.ui.view"> <record id="view_module_export_wizard" model="ir.ui.view">
<field name="name">Export Module</field> <field name="name">Export Module</field>
<field name="model">prototype.module.export</field>
<field name="model">module_prototyper.module.export</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Export Module"> <form string="Export Module">
<field name="name" invisible="1"/> <field name="name" invisible="1"/>
@ -33,7 +33,7 @@
<record id="button_module_export_action" model="ir.actions.act_window"> <record id="button_module_export_action" model="ir.actions.act_window">
<field name="name">Export Module</field> <field name="name">Export Module</field>
<field name="res_model">prototype.module.export</field>
<field name="res_model">module_prototyper.module.export</field>
<field name="view_type">form</field> <field name="view_type">form</field>
<field name="view_id" ref="view_module_export_wizard"/> <field name="view_id" ref="view_module_export_wizard"/>
<field name="target">new</field> <field name="target">new</field>

2
prototype/demo/prototype.prototype.csv
File diff suppressed because it is too large
View File

272
prototype/i18n/fr.po

@ -1,272 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * prototype
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-08 17:58+0000\n"
"PO-Revision-Date: 2014-10-08 14:02-0500\n"
"Last-Translator: Maxime Chambreuil <maxime.chambreuil@savoirfairelinux.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"X-Generator: Poedit 1.5.4\n"
#. module: prototype
#: selection:prototype.module.export,api_version:0
msgid "7.0"
msgstr ""
#. module: prototype
#: selection:prototype.module.export,api_version:0
msgid "8.0"
msgstr ""
#. module: prototype
#: field:prototype.module.export,api_version:0
msgid "API version"
msgstr "Version de l'API"
#. module: prototype
#: field:prototype,rights:0
msgid "Access Rights"
msgstr "Liste des contrôles d'accès"
#. module: prototype
#: field:prototype,author:0
msgid "Author"
msgstr "Auteur"
#. module: prototype
#: field:prototype,auto_install:0
msgid "Auto Install"
msgstr "Installation automatique"
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Cancel"
msgstr "Annuler"
#. module: prototype
#: field:prototype,category_id:0
msgid "Category"
msgstr "Catégorie"
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Close"
msgstr "Fermer"
#. module: prototype
#: field:prototype,create_uid:0 field:prototype.module.export,create_uid:0
msgid "Created by"
msgstr "Créé par"
#. module: prototype
#: field:prototype,create_date:0 field:prototype.module.export,create_date:0
msgid "Created on"
msgstr "Créé le"
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Data & Demo"
msgstr "Données et démo"
#. module: prototype
#: field:prototype,data:0
msgid "Data filters"
msgstr "Filtres pour les données"
#. module: prototype
#: field:prototype,demo:0
msgid "Demo filters"
msgstr "Filtres pour les données de démo"
#. module: prototype
#: view:prototype:prototype.view_prototype_form field:prototype,dependencies:0
msgid "Dependencies"
msgstr "Dépendances"
#. module: prototype
#: view:prototype:prototype.view_prototype_form field:prototype,description:0
msgid "Description"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Export"
msgstr "Exporter"
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Export Complete"
msgstr "Export terminé"
#. module: prototype
#: model:ir.actions.act_window,name:prototype.button_module_export_action
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Export Module"
msgstr "Exporter le module"
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Export Settings"
msgstr "Configuration de l'export"
#. module: prototype
#: model:ir.model,name:prototype.model_ir_model_fields
#: field:prototype,fields:0
msgid "Fields"
msgstr "Champs"
#. module: prototype
#: field:prototype.module.export,data:0
msgid "File"
msgstr "Fichier"
#. module: prototype
#: field:prototype.module.export,name:0
msgid "File Name"
msgstr "Nom du fichier"
#. module: prototype
#: field:prototype,groups:0
msgid "Groups"
msgstr "Groupes"
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Here is the exported module:"
msgstr "Voici le module exporté :"
#. module: prototype
#: field:prototype,id:0 field:prototype.module.export,id:0
msgid "ID"
msgstr ""
#. module: prototype
#: field:prototype,icon_image:0
msgid "Icon"
msgstr "Icône"
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Interface"
msgstr ""
#. module: prototype
#: field:prototype,write_uid:0 field:prototype.module.export,write_uid:0
msgid "Last Updated by"
msgstr "Mis à jour par"
#. module: prototype
#: field:prototype,write_date:0 field:prototype.module.export,write_date:0
msgid "Last Updated on"
msgstr "Mis à jour le"
#. module: prototype
#: field:prototype,maintainer:0
msgid "Maintainer"
msgstr "Mainteneur"
#. module: prototype
#: field:prototype,menu:0
msgid "Menu Items"
msgstr "Éléments du menu"
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Models"
msgstr "Modèles"
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Module"
msgstr ""
#. module: prototype
#: field:prototype,human_name:0
msgid "Module Name"
msgstr "Nom du module"
#. module: prototype
#: view:ir.model:prototype.view_ir_model_form field:ir.model.fields,notes:0
msgid "Notes"
msgstr ""
#. module: prototype
#: model:ir.actions.act_window,name:prototype.open_prototype_list
#: model:ir.model,name:prototype.model_prototype
#: model:ir.ui.menu,name:prototype.menu_open_prototype
#: view:prototype:prototype.view_prototype_tree
msgid "Prototype"
msgstr ""
#. module: prototype
#: field:prototype,rules:0
msgid "Record Rules"
msgstr "Règles sur les enregistrements"
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Security"
msgstr "Sécurité"
#. module: prototype
#: field:prototype,summary:0
msgid "Summary"
msgstr "Résumé"
#. module: prototype
#: field:prototype,name:0
msgid "Technical Name"
msgstr "Nom technique"
#. module: prototype
#: help:prototype,data:0
msgid "The records matching the filters will be added as data."
msgstr ""
"Les enregistrements correspondant aux critères des filtres seront exportées "
"dans le module comme données."
#. module: prototype
#: help:prototype,demo:0
msgid "The records matching the filters will be added as demo data."
msgstr ""
"Les enregistrements correspondant aux critères des filtres seront exportées "
"dans le module comme données de démo."
#. module: prototype
#: field:prototype,version:0
msgid "Version"
msgstr ""
#. module: prototype
#: field:prototype,views:0
msgid "Views"
msgstr "Vues"
#. module: prototype
#: field:prototype,website:0
msgid "Website"
msgstr "Site web"
#. module: prototype
#: selection:prototype.module.export,state:0
msgid "choose"
msgstr "choisir"
#. module: prototype
#: selection:prototype.module.export,state:0
msgid "get"
msgstr "récupérer"
#. module: prototype
#: field:prototype.module.export,state:0
msgid "unknown"
msgstr "inconnu"

268
prototype/i18n/prototype.pot

@ -1,268 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * prototype
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-08 17:58+0000\n"
"PO-Revision-Date: 2014-10-08 14:00-0500\n"
"Last-Translator: Maxime Chambreuil <maxime.chambreuil@savoirfairelinux.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"X-Generator: Poedit 1.5.4\n"
#. module: prototype
#: selection:prototype.module.export,api_version:0
msgid "7.0"
msgstr ""
#. module: prototype
#: selection:prototype.module.export,api_version:0
msgid "8.0"
msgstr ""
#. module: prototype
#: field:prototype.module.export,api_version:0
msgid "API version"
msgstr ""
#. module: prototype
#: field:prototype,rights:0
msgid "Access Rights"
msgstr ""
#. module: prototype
#: field:prototype,author:0
msgid "Author"
msgstr ""
#. module: prototype
#: field:prototype,auto_install:0
msgid "Auto Install"
msgstr ""
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Cancel"
msgstr ""
#. module: prototype
#: field:prototype,category_id:0
msgid "Category"
msgstr ""
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Close"
msgstr ""
#. module: prototype
#: field:prototype,create_uid:0 field:prototype.module.export,create_uid:0
msgid "Created by"
msgstr ""
#. module: prototype
#: field:prototype,create_date:0 field:prototype.module.export,create_date:0
msgid "Created on"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Data & Demo"
msgstr ""
#. module: prototype
#: field:prototype,data:0
msgid "Data filters"
msgstr ""
#. module: prototype
#: field:prototype,demo:0
msgid "Demo filters"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form field:prototype,dependencies:0
msgid "Dependencies"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form field:prototype,description:0
msgid "Description"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Export"
msgstr ""
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Export Complete"
msgstr ""
#. module: prototype
#: model:ir.actions.act_window,name:prototype.button_module_export_action
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Export Module"
msgstr ""
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Export Settings"
msgstr ""
#. module: prototype
#: model:ir.model,name:prototype.model_ir_model_fields
#: field:prototype,fields:0
msgid "Fields"
msgstr ""
#. module: prototype
#: field:prototype.module.export,data:0
msgid "File"
msgstr ""
#. module: prototype
#: field:prototype.module.export,name:0
msgid "File Name"
msgstr ""
#. module: prototype
#: field:prototype,groups:0
msgid "Groups"
msgstr ""
#. module: prototype
#: view:prototype.module.export:prototype.view_module_export_wizard
msgid "Here is the exported module:"
msgstr ""
#. module: prototype
#: field:prototype,id:0 field:prototype.module.export,id:0
msgid "ID"
msgstr ""
#. module: prototype
#: field:prototype,icon_image:0
msgid "Icon"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Interface"
msgstr ""
#. module: prototype
#: field:prototype,write_uid:0 field:prototype.module.export,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: prototype
#: field:prototype,write_date:0 field:prototype.module.export,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: prototype
#: field:prototype,maintainer:0
msgid "Maintainer"
msgstr ""
#. module: prototype
#: field:prototype,menu:0
msgid "Menu Items"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Models"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Module"
msgstr ""
#. module: prototype
#: field:prototype,human_name:0
msgid "Module Name"
msgstr ""
#. module: prototype
#: view:ir.model:prototype.view_ir_model_form field:ir.model.fields,notes:0
msgid "Notes"
msgstr ""
#. module: prototype
#: model:ir.actions.act_window,name:prototype.open_prototype_list
#: model:ir.model,name:prototype.model_prototype
#: model:ir.ui.menu,name:prototype.menu_open_prototype
#: view:prototype:prototype.view_prototype_tree
msgid "Prototype"
msgstr ""
#. module: prototype
#: field:prototype,rules:0
msgid "Record Rules"
msgstr ""
#. module: prototype
#: view:prototype:prototype.view_prototype_form
msgid "Security"
msgstr ""
#. module: prototype
#: field:prototype,summary:0
msgid "Summary"
msgstr ""
#. module: prototype
#: field:prototype,name:0
msgid "Technical Name"
msgstr ""
#. module: prototype
#: help:prototype,data:0
msgid "The records matching the filters will be added as data."
msgstr ""
#. module: prototype
#: help:prototype,demo:0
msgid "The records matching the filters will be added as demo data."
msgstr ""
#. module: prototype
#: field:prototype,version:0
msgid "Version"
msgstr ""
#. module: prototype
#: field:prototype,views:0
msgid "Views"
msgstr ""
#. module: prototype
#: field:prototype,website:0
msgid "Website"
msgstr ""
#. module: prototype
#: selection:prototype.module.export,state:0
msgid "choose"
msgstr ""
#. module: prototype
#: selection:prototype.module.export,state:0
msgid "get"
msgstr ""
#. module: prototype
#: field:prototype.module.export,state:0
msgid "unknown"
msgstr ""

2
prototype/security/ir.model.access.csv

@ -1,2 +0,0 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_prototype_admin,prototype_system,model_prototype,base.group_system,1,1,1,1

30
prototype/views/ir_model_fields_view.xml

@ -1,30 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="view_ir_model_fields_form" model="ir.ui.view">
<field name="name">view_ir_model_fields_form</field>
<field name="model">ir.model.fields</field>
<field name="inherit_id" ref="base.view_model_fields_form"/>
<field name="arch" type="xml">
<field name="groups" position="before">
<label for="notes"/>
<field name="notes"/>
</field>
</field>
</record>
<record id="view_ir_model_form" model="ir.ui.view">
<field name="name">view_ir_model_form</field>
<field name="model">ir.model</field>
<field name="inherit_id" ref="base.view_model_form"/>
<field name="arch" type="xml">
<xpath expr="//page/field/form/separator[@string='Groups']" position="before">
<separator string="Notes"/>
<field name="notes"/>
</xpath>
</field>
</record>
</data>
</openerp>
Loading…
Cancel
Save