Availability |
Odoo Online
Odoo.sh
On Premise
|
Lines of code | 1094 |
Technical Name |
terminal |
License | AGPL-3 |
Versions | 12.0 11.0 |
Terminal
Manage Odoo with commands.
Features
- Interactive Terminal
- View models
- Manage records (Create, Read, Update, Delete)
- Manage modules (Install, Upgrade, Uninstall)
- Use alias
- Call model methods
- Launch actions
- Customizable
- And more…
Table of contents
Screenshot
Usage
- Press CTRL + 1
- Debug Menu Entry
EXAMPLE COMMANDS
- Create Record: `create res.partner "{'name': 'The One'}"`
- Search Record: `search res.partner name "[['id', '>', 5]]"`
- Create Alias: `alias myalias "print Hello, $1!"`
- Call Alias: `myalias Me`
- Install Module: `install mymodule`
PUBLIC METHODS (Javascript)
- `print(str)` Print a message
- `eprint(str)` Print a escaped message
- `clean()` Clean terminal
- `cleanInput()` Clean input
- `registerCommand(str, cmdDef)` Register new command
- `executeCommand(str)` Execute a command
- `do_show()` Show terminal
- `do_hide()` Hide terminal
- `do_toggle()` Toggle visibility
DEFINE NEW COMMANDS (Javascript)
Commands works with promises
Command definition:
{ definition: 'string', callback: function, detail: 'string', syntaxis: 'string', args: 'string', }
- definition: Quick definition.
- callback: Callback function.
- detail: Command explained.
- syntaxis: Command Parameters (For Humans) * <> Required * [] Optional
- args: Command Paramerters Types * ‘s’ String * ‘i’ Integer * ‘?’ Indicates that next parameter is optional
Basic Example:
odoo.define('terminal.MyFuncs', function(require) { 'use strict'; var Terminal = require('terminal.Terminal').terminal; Terminal.include({ init: function() { this._super.apply(this, arguments); this.registerCommand('mycommand', { definition: 'This is my command', function: this._myFunc, detail: 'My command explained...', syntaxis: '<STRING: ParamA> <INT: ParamB> [STRING: ParamC]', args: 'si?s', }); }, _myFunc: function(params) { var pA = params[0]; var pB = params[1]; var pC = params[2] || "DefaultValue"; var self = this; var defer = $.Deferred(function(d){ self.print("Hello, World!"); self.eprint("ParamA (String): " + pA); self.eprint("ParamB (Int): " + pB); self.eprint("ParamC (Optional String): " + pC); if (Number(pA) === pB) { d.resolve(); } else { d.reject("Oops! error"); } }); return $.when(defer); }, }); });
Credits
Authors
- Alexandre Díaz <dev@redneboa.es>
Please log in to comment on this module