From 83855cc726c08c6a2027ac3466d1352f00d83d71 Mon Sep 17 00:00:00 2001 From: Maxime Chambreuil Date: Fri, 12 Jun 2015 17:10:21 -0400 Subject: [PATCH] [FIX] Default license [IMP] Add OCA as an author [IMP] Add Bug Tracker section in description [IMP] Update description template [ADD] Initial version of prototype [IMP] Add wizard for API version and templates. Update translation file [ADD] Security template files [ADD] Filters for data and demo data --- module_prototyper/README.rst | 12 +- module_prototyper/__openerp__.py | 2 +- .../models/default_description.py | 12 +- module_prototyper/models/module_prototyper.py | 2 +- prototype/__init__.py | 25 ++ prototype/__openerp__.py | 67 +++++ prototype/i18n/fr.po | 272 ++++++++++++++++++ prototype/i18n/prototype.pot | 268 +++++++++++++++++ prototype/models/__init__.py | 25 ++ prototype/models/ir_model_fields.py | 30 ++ prototype/models/prototype.py | 69 +++++ prototype/security/ir.model.access.csv | 2 + prototype/static/description/icon.png | Bin 0 -> 14323 bytes prototype/templates/7.0/__init__.py | 22 ++ prototype/templates/7.0/__openerp__.py | 50 ++++ prototype/templates/7.0/data/model_name.xml | 8 + prototype/templates/7.0/demo/model_name.xml | 8 + prototype/templates/7.0/models/__init__.py | 24 ++ prototype/templates/7.0/models/model_name.py | 36 +++ .../7.0/security/ir.model.access.csv | 1 + .../templates/7.0/security/model_name.xml | 10 + .../templates/7.0/views/model_name_view.xml | 8 + prototype/templates/8.0/__init__.py | 22 ++ prototype/templates/8.0/__openerp__.py | 50 ++++ prototype/templates/8.0/data/model_name.xml | 8 + prototype/templates/8.0/demo/model_name.xml | 8 + prototype/templates/8.0/models/__init__.py | 24 ++ prototype/templates/8.0/models/model_name.py | 34 +++ .../8.0/security/ir.model.access.csv | 1 + .../templates/8.0/security/model_name.xml | 10 + prototype/templates/8.0/views/model_view.xml | 8 + prototype/views/ir_model_fields_view.xml | 30 ++ prototype/views/prototype_view.xml | 97 +++++++ prototype/wizard/__init__.py | 22 ++ prototype/wizard/prototype_module_export.py | 67 +++++ .../wizard/prototype_module_export_view.xml | 43 +++ 36 files changed, 1370 insertions(+), 7 deletions(-) create mode 100644 prototype/__init__.py create mode 100644 prototype/__openerp__.py create mode 100644 prototype/i18n/fr.po create mode 100644 prototype/i18n/prototype.pot create mode 100644 prototype/models/__init__.py create mode 100644 prototype/models/ir_model_fields.py create mode 100644 prototype/models/prototype.py create mode 100755 prototype/security/ir.model.access.csv create mode 100644 prototype/static/description/icon.png create mode 100644 prototype/templates/7.0/__init__.py create mode 100644 prototype/templates/7.0/__openerp__.py create mode 100644 prototype/templates/7.0/data/model_name.xml create mode 100644 prototype/templates/7.0/demo/model_name.xml create mode 100644 prototype/templates/7.0/models/__init__.py create mode 100644 prototype/templates/7.0/models/model_name.py create mode 100644 prototype/templates/7.0/security/ir.model.access.csv create mode 100644 prototype/templates/7.0/security/model_name.xml create mode 100644 prototype/templates/7.0/views/model_name_view.xml create mode 100644 prototype/templates/8.0/__init__.py create mode 100644 prototype/templates/8.0/__openerp__.py create mode 100644 prototype/templates/8.0/data/model_name.xml create mode 100644 prototype/templates/8.0/demo/model_name.xml create mode 100644 prototype/templates/8.0/models/__init__.py create mode 100644 prototype/templates/8.0/models/model_name.py create mode 100644 prototype/templates/8.0/security/ir.model.access.csv create mode 100644 prototype/templates/8.0/security/model_name.xml create mode 100644 prototype/templates/8.0/views/model_view.xml create mode 100644 prototype/views/ir_model_fields_view.xml create mode 100644 prototype/views/prototype_view.xml create mode 100644 prototype/wizard/__init__.py create mode 100644 prototype/wizard/prototype_module_export.py create mode 100644 prototype/wizard/prototype_module_export_view.xml diff --git a/module_prototyper/README.rst b/module_prototyper/README.rst index 8c80dc740..dad21b91c 100644 --- a/module_prototyper/README.rst +++ b/module_prototyper/README.rst @@ -42,8 +42,8 @@ You will get a zip file containing your module ready to be installed and complia conventions of the OCA. You can then provide the module to a developer who have to implement things like default values or onchange methods. -Known issues / Roadmap -====================== +Roadmap +======= * `#104`_ - Include controllers.py and templates.xml from scaffold. * Attach images to the prototype and export them to be used in the 'images' module manifest. @@ -52,7 +52,13 @@ Known issues / Roadmap .. _#104: https://github.com/OCA/server-tools/issues/104 -Please report any idea or issue to https://github.com/OCA/server-tools/issues. +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed feedback +`here `_. Credits ======= diff --git a/module_prototyper/__openerp__.py b/module_prototyper/__openerp__.py index 808d9b836..b9672122c 100644 --- a/module_prototyper/__openerp__.py +++ b/module_prototyper/__openerp__.py @@ -23,7 +23,7 @@ { 'name': 'Module Prototyper', 'version': '0.3', - 'author': 'Savoir-faire Linux', + 'author': 'Savoir-faire Linux, Odoo Community Association (OCA)', 'maintainer': 'Savoir-faire Linux', 'website': 'http://www.savoirfairelinux.com', 'license': 'AGPL-3', diff --git a/module_prototyper/models/default_description.py b/module_prototyper/models/default_description.py index 5263b7cd1..874a066d4 100644 --- a/module_prototyper/models/default_description.py +++ b/module_prototyper/models/default_description.py @@ -53,11 +53,19 @@ For further information, please visit: * https://www.odoo.com/forum/help-1 -Known issues / Roadmap -====================== +Roadmap +======= * ... +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed feedback +`here `_. + Credits ======= diff --git a/module_prototyper/models/module_prototyper.py b/module_prototyper/models/module_prototyper.py index 25816ca87..aa2fa0a9e 100644 --- a/module_prototyper/models/module_prototyper.py +++ b/module_prototyper/models/module_prototyper.py @@ -61,7 +61,7 @@ class ModulePrototyper(models.Model): ('Other proprietary', 'Other Proprietary') ], string='License', - default=licenses.AGPL3_L, + default=licenses.AGPL3, ) name = fields.Char( 'Technical Name', required=True, diff --git a/prototype/__init__.py b/prototype/__init__.py new file mode 100644 index 000000000..f01f7f122 --- /dev/null +++ b/prototype/__init__.py @@ -0,0 +1,25 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2010 - 2014 Savoir-faire Linux +# (). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from . import ( + models, + wizard +) diff --git a/prototype/__openerp__.py b/prototype/__openerp__.py new file mode 100644 index 000000000..264624e6c --- /dev/null +++ b/prototype/__openerp__.py @@ -0,0 +1,67 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2010 - 2014 Savoir-faire Linux +# (). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +{ + 'name': 'Prototype', + 'version': '0.1', + 'author': 'Savoir-faire Linux', + 'maintainer': 'Savoir-faire Linux', + 'website': 'http://www.savoirfairelinux.com', + 'license': 'AGPL-3', + 'category': 'Others', + 'summary': 'Prototype your module', + 'description': """ +This module allows the administrator to prototype new features and export +them as module. + +Usage +===== + +Go to Settings > Modules > Prototype, create a new prototype, fill in the +information and export your module. + +Contributors +============ + +* Maxime Chambreuil +* Savoir-faire Linux + +More informations +----------------- +* Module developped and tested with Odoo version 8.0 +* For questions, please contact our support services \ +(support@savoirfairelinux.com) +""", + 'depends': [ + 'base', + ], + 'external_dependencies': { + 'python': [], + }, + 'data': [ + 'wizard/prototype_module_export_view.xml', + 'views/prototype_view.xml', + 'views/ir_model_fields_view.xml', + 'security/ir.model.access.csv', + ], + 'installable': True, +} diff --git a/prototype/i18n/fr.po b/prototype/i18n/fr.po new file mode 100644 index 000000000..37c27a4f6 --- /dev/null +++ b/prototype/i18n/fr.po @@ -0,0 +1,272 @@ +# 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 \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,depends: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,shortdesc: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" diff --git a/prototype/i18n/prototype.pot b/prototype/i18n/prototype.pot new file mode 100644 index 000000000..027657e2c --- /dev/null +++ b/prototype/i18n/prototype.pot @@ -0,0 +1,268 @@ +# 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 \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,depends: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,shortdesc: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 "" diff --git a/prototype/models/__init__.py b/prototype/models/__init__.py new file mode 100644 index 000000000..8c9737d2d --- /dev/null +++ b/prototype/models/__init__.py @@ -0,0 +1,25 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2010 - 2014 Savoir-faire Linux +# (). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from . import ( + prototype, + ir_model_fields +) diff --git a/prototype/models/ir_model_fields.py b/prototype/models/ir_model_fields.py new file mode 100644 index 000000000..c70dc4a7c --- /dev/null +++ b/prototype/models/ir_model_fields.py @@ -0,0 +1,30 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2010 - 2014 Savoir-faire Linux +# (). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp.osv import fields, osv + + +class ir_model_fields(osv.osv): + _inherit = "ir.model.fields" + + _columns = { + 'notes': fields.text('Notes'), + } diff --git a/prototype/models/prototype.py b/prototype/models/prototype.py new file mode 100644 index 000000000..39a94fb84 --- /dev/null +++ b/prototype/models/prototype.py @@ -0,0 +1,69 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2010 - 2014 Savoir-faire Linux +# (). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp.osv import fields, osv + + +class prototype(osv.osv): + _name = "prototype" + _description = "Prototype" + + _columns = { + 'name': fields.char('Technical Name', required=True), + 'category_id': fields.many2one('ir.module.category', 'Category'), + 'shortdesc': fields.char('Module Name', required=True), + 'summary': fields.char('Summary', required=True), + 'description': fields.html('Description', required=True), + 'author': fields.char('Author', required=True), + 'maintainer': fields.char('Maintainer'), + 'website': fields.char('Website'), + 'icon_image': fields.binary('Icon'), + 'version': fields.char('Version', size=3), + 'auto_install': fields.boolean('Auto Install'), + # Relations + 'depends': fields.many2many('ir.module.module', 'prototype_module_rel', + 'prototype_id', 'module_id', + 'Dependencies'), + 'data': fields.many2many('ir.filters', 'prototype_data_rel', + 'prototype_id', 'filter_id', + 'Data filters', help="The records matching the filters will be added as data."), + 'demo': fields.many2many('ir.filters', 'prototype_demo_rel', + 'prototype_id', 'filter_id', + 'Demo filters', help="The records matching the filters will be added as demo data."), + 'fields': fields.many2many('ir.model.fields', 'prototype_fields_rel', + 'prototype_id', 'field_id', 'Fields'), + 'menu': fields.many2many('ir.ui.menu', 'prototype_menu_rel', + 'prototype_id', 'menu_id', 'Menu Items'), + 'views': fields.many2many('ir.ui.view', 'prototype_view_rel', + 'prototype_id', 'view_id', 'Views'), + 'groups': fields.many2many('res.groups', 'prototype_groups_rel', + 'prototype_id', 'group_id', 'Groups'), + 'rights': fields.many2many('ir.model.access', 'prototype_rights_rel', + 'prototype_id', 'right_id', + 'Access Rights'), + 'rules': fields.many2many('ir.rule', 'prototype_rule_rel', + 'prototype_id', 'rule_id', 'Record Rules'), + } + + _defaults = { + 'auto_install': False, + 'version': '0.1', + } diff --git a/prototype/security/ir.model.access.csv b/prototype/security/ir.model.access.csv new file mode 100755 index 000000000..0533abe94 --- /dev/null +++ b/prototype/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_prototype,base.group_system,1,1,1,1 diff --git a/prototype/static/description/icon.png b/prototype/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6a120f9fd6225e170be28c1f523d447820beb9d9 GIT binary patch literal 14323 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 HwG8_o``74T literal 0 HcmV?d00001 diff --git a/prototype/templates/7.0/__init__.py b/prototype/templates/7.0/__init__.py new file mode 100644 index 000000000..2a599284e --- /dev/null +++ b/prototype/templates/7.0/__init__.py @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Odoo, Open Source Management Solution +# This module copyright (C) $generation_date $author +# (<$website>). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from . import models diff --git a/prototype/templates/7.0/__openerp__.py b/prototype/templates/7.0/__openerp__.py new file mode 100644 index 000000000..b8fbb1760 --- /dev/null +++ b/prototype/templates/7.0/__openerp__.py @@ -0,0 +1,50 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Odoo, Open Source Management Solution +# This module copyright (C) $export_date $author +# (<$website>). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +{ + 'name': '$name', + 'version': '$version', + 'author': '$author', + 'maintainer': '$maintainer', + 'website': '$website', + 'license': 'AGPL-3', + 'category': '$category', + 'summary': '$summary', + 'description': """ +$description + +* Module exported by the prototype module for version 7.0. +* If you have any questions, please contact Savoir-faire Linux \ +(support@savoirfairelinux.com) +""", + 'depends': [ + $depends + ], + 'external_dependencies': { + 'python': [], + }, + 'data': [ + $data + ], + 'installable': True, + 'auto_install': $auto_install, +} diff --git a/prototype/templates/7.0/data/model_name.xml b/prototype/templates/7.0/data/model_name.xml new file mode 100644 index 000000000..baf4b950c --- /dev/null +++ b/prototype/templates/7.0/data/model_name.xml @@ -0,0 +1,8 @@ + + + + + $data + + + diff --git a/prototype/templates/7.0/demo/model_name.xml b/prototype/templates/7.0/demo/model_name.xml new file mode 100644 index 000000000..45605019c --- /dev/null +++ b/prototype/templates/7.0/demo/model_name.xml @@ -0,0 +1,8 @@ + + + + + $demo + + + diff --git a/prototype/templates/7.0/models/__init__.py b/prototype/templates/7.0/models/__init__.py new file mode 100644 index 000000000..8d436f907 --- /dev/null +++ b/prototype/templates/7.0/models/__init__.py @@ -0,0 +1,24 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Odoo, Open Source Management Solution +# This module copyright (C) $generation_date $author +# (<$website>). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from . import ( + $models.py +) diff --git a/prototype/templates/7.0/models/model_name.py b/prototype/templates/7.0/models/model_name.py new file mode 100644 index 000000000..e5d9d0cb8 --- /dev/null +++ b/prototype/templates/7.0/models/model_name.py @@ -0,0 +1,36 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Odoo, Open Source Management Solution +# This module copyright (C) $generation_date $author +# (<$website>). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp.osv import fields, osv + + +class $model_name(osv.osv): + _name = "$model_name" + _inherit = "$model_name" + _description = "$model_description" + + _columns = { + $model_fields + } + + _defaults = { + + } diff --git a/prototype/templates/7.0/security/ir.model.access.csv b/prototype/templates/7.0/security/ir.model.access.csv new file mode 100644 index 000000000..97dd8b917 --- /dev/null +++ b/prototype/templates/7.0/security/ir.model.access.csv @@ -0,0 +1 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink diff --git a/prototype/templates/7.0/security/model_name.xml b/prototype/templates/7.0/security/model_name.xml new file mode 100644 index 000000000..8cd0f5749 --- /dev/null +++ b/prototype/templates/7.0/security/model_name.xml @@ -0,0 +1,10 @@ + + + + + $groups + + $rules + + + diff --git a/prototype/templates/7.0/views/model_name_view.xml b/prototype/templates/7.0/views/model_name_view.xml new file mode 100644 index 000000000..45fa4957e --- /dev/null +++ b/prototype/templates/7.0/views/model_name_view.xml @@ -0,0 +1,8 @@ + + + + + $views + + + diff --git a/prototype/templates/8.0/__init__.py b/prototype/templates/8.0/__init__.py new file mode 100644 index 000000000..2a599284e --- /dev/null +++ b/prototype/templates/8.0/__init__.py @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Odoo, Open Source Management Solution +# This module copyright (C) $generation_date $author +# (<$website>). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from . import models diff --git a/prototype/templates/8.0/__openerp__.py b/prototype/templates/8.0/__openerp__.py new file mode 100644 index 000000000..e39d87e5e --- /dev/null +++ b/prototype/templates/8.0/__openerp__.py @@ -0,0 +1,50 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Odoo, Open Source Management Solution +# This module copyright (C) $export_date $author +# (<$website>). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +{ + 'name': '$name', + 'version': '$version', + 'author': '$author', + 'maintainer': '$maintainer', + 'website': '$website', + 'license': 'AGPL-3', + 'category': '$category', + 'summary': '$summary', + 'description': """ +$description + +* Module exported by the prototype module for version 8.0. +* If you have any questions, please contact Savoir-faire Linux \ +(support@savoirfairelinux.com) +""", + 'depends': [ + $depends + ], + 'external_dependencies': { + 'python': [], + }, + 'data': [ + $data + ], + 'installable': True, + 'auto_install': $auto_install, +} diff --git a/prototype/templates/8.0/data/model_name.xml b/prototype/templates/8.0/data/model_name.xml new file mode 100644 index 000000000..baf4b950c --- /dev/null +++ b/prototype/templates/8.0/data/model_name.xml @@ -0,0 +1,8 @@ + + + + + $data + + + diff --git a/prototype/templates/8.0/demo/model_name.xml b/prototype/templates/8.0/demo/model_name.xml new file mode 100644 index 000000000..45605019c --- /dev/null +++ b/prototype/templates/8.0/demo/model_name.xml @@ -0,0 +1,8 @@ + + + + + $demo + + + diff --git a/prototype/templates/8.0/models/__init__.py b/prototype/templates/8.0/models/__init__.py new file mode 100644 index 000000000..8d436f907 --- /dev/null +++ b/prototype/templates/8.0/models/__init__.py @@ -0,0 +1,24 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Odoo, Open Source Management Solution +# This module copyright (C) $generation_date $author +# (<$website>). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from . import ( + $models.py +) diff --git a/prototype/templates/8.0/models/model_name.py b/prototype/templates/8.0/models/model_name.py new file mode 100644 index 000000000..2c94e2f20 --- /dev/null +++ b/prototype/templates/8.0/models/model_name.py @@ -0,0 +1,34 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Odoo, Open Source Management Solution +# This module copyright (C) $generation_date $author +# (<$website>). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp.osv import fields, osv + + +class $model_name(osv.osv): + _name = "$model_name" + _inherit = "$model_name" + _description = "$model_description" + + $model_fields + + _defaults = { + + } diff --git a/prototype/templates/8.0/security/ir.model.access.csv b/prototype/templates/8.0/security/ir.model.access.csv new file mode 100644 index 000000000..97dd8b917 --- /dev/null +++ b/prototype/templates/8.0/security/ir.model.access.csv @@ -0,0 +1 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink diff --git a/prototype/templates/8.0/security/model_name.xml b/prototype/templates/8.0/security/model_name.xml new file mode 100644 index 000000000..8cd0f5749 --- /dev/null +++ b/prototype/templates/8.0/security/model_name.xml @@ -0,0 +1,10 @@ + + + + + $groups + + $rules + + + diff --git a/prototype/templates/8.0/views/model_view.xml b/prototype/templates/8.0/views/model_view.xml new file mode 100644 index 000000000..45fa4957e --- /dev/null +++ b/prototype/templates/8.0/views/model_view.xml @@ -0,0 +1,8 @@ + + + + + $views + + + diff --git a/prototype/views/ir_model_fields_view.xml b/prototype/views/ir_model_fields_view.xml new file mode 100644 index 000000000..e1563449c --- /dev/null +++ b/prototype/views/ir_model_fields_view.xml @@ -0,0 +1,30 @@ + + + + + + view_ir_model_fields_form + ir.model.fields + + + + + + + + view_ir_model_form + ir.model + + + + + + + + + + + diff --git a/prototype/views/prototype_view.xml b/prototype/views/prototype_view.xml new file mode 100644 index 000000000..3573c33fe --- /dev/null +++ b/prototype/views/prototype_view.xml @@ -0,0 +1,97 @@ + + + + + + prototype.tree + prototype + + + + + + + + + + + prototype.form + prototype + +
+ + + +
+

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + Prototype + prototype + form + tree,form + + + + + +
+
diff --git a/prototype/wizard/__init__.py b/prototype/wizard/__init__.py new file mode 100644 index 000000000..1bb4a444c --- /dev/null +++ b/prototype/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2010 - 2014 Savoir-faire Linux +# (). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from . import prototype_module_export diff --git a/prototype/wizard/prototype_module_export.py b/prototype/wizard/prototype_module_export.py new file mode 100644 index 000000000..e5abe5775 --- /dev/null +++ b/prototype/wizard/prototype_module_export.py @@ -0,0 +1,67 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2010 - 2014 Savoir-faire Linux +# (). +# +# This program is free software: you can redistribute it and/or modify +# 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. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp.osv import fields,osv +from openerp.tools.translate import _ + + +class prototype_module_export(osv.osv_memory): + _name = "prototype.module.export" + + _columns = { + 'name': fields.char('File Name', readonly=True), + 'api_version': fields.selection([('8.0','8.0'), + ('7.0', '7.0')], 'API version', + required=True), + 'data': fields.binary('File', readonly=True), + 'state': fields.selection([('choose', 'choose'), # choose version + ('get', 'get')]) # get module + } + _defaults = { + 'state': 'choose', + 'api_version': '8.0', + } + + def act_getfile(self, cr, uid, ids, context=None): + """ + Export a zip file containing the module based on the information + provided in the prototype, using the templates chosen in the wizard. + """ + this = self.browse(cr, uid, ids)[0] + + # TODO: Implement the export logic here + filename = 'new' + this.name = "%s.%s" % (filename, 'zip') + out = 'toto' + # /TODO + + self.write(cr, uid, ids, {'state': 'get', + 'data': out, + 'name':this.name}, context=context) + return { + 'type': 'ir.actions.act_window', + 'res_model': 'prototype.module.export', + 'view_mode': 'form', + 'view_type': 'form', + 'res_id': this.id, + 'views': [(False, 'form')], + 'target': 'new', + } diff --git a/prototype/wizard/prototype_module_export_view.xml b/prototype/wizard/prototype_module_export_view.xml new file mode 100644 index 000000000..4370e6114 --- /dev/null +++ b/prototype/wizard/prototype_module_export_view.xml @@ -0,0 +1,43 @@ + + + + + + Export Module + prototype.module.export + +
+ + + + + + + + + +
+

Export Complete

+

Here is the exported module:

+
+
+
+
+
+ +
+
+ + + Export Module + prototype.module.export + form + + new + + +
+