This is really AMAZING !
With this StarUML generator extension, you can create the COMPLETE, RUNNING, ERROR FREE, and READY to install Odoo addon from UML diagram created on StarUML application.
StarUML is freely-evaluatable modeling software where you can generate Java, PHP, Python code directly from UML class diagram. Download it free from staruml.io!
With this StarUML extension generator script, you can create:
Python class files
Including all Char, Date and time, Integer, Float, Many2one, One2many, Many2many, Selection fields as defined in the UML diagram
XML menu and views
Tree, Form, Kanban, Calendar, Graph, and Menus
Action methods and internal methods as defined in the UML diagram
Qweb reports with all normal fields, related fields, and One2many fields in master-detail table
Model access CSV files is generated for guest and admin user
Watch our Youtube videos for demonstration
Sample addon generated from UML diagram created with StarUML. Create basic models and relationship and generate and install the add-on.
Create inheritance from existing Odoo models and relationship to the new models and generate and upgrade the add-on.
- Download StarUML from staruml.io and install it on your local computer if you have not one yet.
- Install this addon. Go to Settings - Odoo Generator menu and download the extension script.
- Extract the extension ZIP file onto the StarUML extensions path:
- for Mac OS: /Users/<user>/Library/Application Support/StarUML/extensions/user
- for Windows: C:\Users\<user>\AppData\Roaming\StarUML\extensions\user
- for Linux: ~/.config/StarUML/extensions/user
- Make sure that the staruml-odoo-pro folder is in the extensions path and the main.js file is in the folder.
- Restart StarUML.
- For detailed installation process of the StarUML extension, please check here: https://docs.staruml.io/user-guide/managing-extensions
Rules when diagramming the UML for Odoo Add-on on StarUML
- Click Tools > Odoo > Configure to set your addon setting
- Addon Name: is your addon folder name and act also as the namespace for your classes
- Dependecies: type your addon dependencies as comma separated string values, for example: "hr", "account", etc.
- Docstring: Yes or No to wether generate to documentation string on your class or not
- Installation Path: your python installation path (optional)
- Use Tab: whether you want to use Tab character instead of spaces on your python indentation
- Indent Spaces: number of indent spaces on your python code.
Odoo Object Name
- Odoo object name is automatically generated from "addonName" (namespace) and "className", eg "my_addon.my_object"
- On class inheritance, you may force you Odoo object name to be different from your UML class name by adding an attributed called _name on the class and set the name on _defaultValue field, eg "res.partner".
- This _name attribute is mandatory if you inherit your Odoo object from another Object
- If the object is inherted from other Odoo object, create an attribute called _inherit and _name
- The parent object name is set on defaultValue field, e.g "res.partner"
- Every attribute on UML class is converted into Odoo object field
- Set the Odoo field type on type field
- Example: Char will be converted to fields.Char(), Integer to fields.Integer(), and so on.
Odoo "help" attributes
The Documentation field will be converted to help= attribute on Odoo field
Create a UML association between two classes and set the multiplicity of each end to generate One2many, Many2one, or Many2many relation on Odoo Object.
It will be converted to field on each object with Odoo relation type: Many2one, One2many, or Many2many.
If multiplicity is one of `0..*`, `1..*`, `*`, then the field will be initialized with:
- `0..*` or `1..*` : fields.Many2one()
- `1` : fields.One2many()
- `*` : fields.Many2many()
Just create an attribute with type Selection and set the selection values on defaultValue field.
The generator generates Kanban template XML already. To display image on the kanban, just create an attribute with type Binary and set the name to image_small, then it will be displayed on the kanban.
The generator generates Graph view XML already, as long as you have at least one Many2one field on the model, then it will create the Graph XML view for you.
The generator generates Calendar view XML already, as long as you have at least one Date or Datetime field on the model, then it will create the Calendar XML view for you.
Just create the operation on the UML class diagram, it will be converted automatically to Odoo class methods where you are ready to define the logic or inherit them.
Qweb reports are automatically generated along with all relational fields as well as normal fields! So just inherit or modify them to adjust your requirements!
Download some sample diagrams to see how they are drawn in StarUML Diagram
Sample Diagram 1
Sample Diagram 2
Sample Diagram 3
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module
- The author can leave a single reply to each comment.
- This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
- If you want to start a discussion with the author or have a question related to your purchase, please use the support page.