← → navigate · Space advance · N notes · F fullscreen · Home/End first/last
DRKDS Studio
The Complete Visual
Customisation Suite
for Odoo 19 Community Edition
35+ Features
172 API Endpoints
98/98 Tests
LGPL-3 Free
30-Minute Deep Dive Demo
What We'll Cover Today
1
The Problem & Solution
3 min
2
Core UI Tour — The Panel
3 min
3
View Builders — Form, List, Kanban
5 min
4
Advanced Views — Pivot, Graph, Calendar, Gantt
4 min
5
Automation & Server Actions
5 min
6
Models, Security & Export
5 min
7
Reports, Templates & API Panel
3 min
The Reality of Odoo Community Today
🚧 Every Change Needs a Developer
✕Add a field → hire a developer
✕Edit a view → write XML by hand
✕Automate a workflow → write Python
✕Build a report → learn QWeb
✕New model → create a whole module
✕Deploy changes → manual file management
💰 Average Cost Per Change
Developer day rate
₹8,000–25,000
Typical turnaround
2–5 days
Iteration rounds
2–3 rounds
₹16,000–75,000
per customisation request
For a 10-person team making 2 changes/month: ₹3.8L/year
🎨
DRKDS Studio
One module. Every customisation tool. No code. No Enterprise.
🖊️
Build
8 view types with visual editors
⚙️
Automate
Rules, webhooks, cron, server actions
🔐
Secure
Access rights, record rules, groups
📦
Export
Clean, installable Odoo module ZIP
The Studio Panel — First Look
Model picker dropdown
Tab navigation (19 tabs)
Field list with drag handles
Save / Reset buttons
Opens from any screen. Attach to any model. Changes are instant.
19 Specialised Tools in One Panel
📋 Views & Fields
📄 Fields
➕ Add
⚙️ Props
📋 List
🎨 Kanban
🔍 Search
📊 Pivot
📈 Graph
📅 Cal
📆 Gantt
⚡ Logic & Automation
🤖 Auto
⚡ Srv
⏰ Cron
🌐 Wbhk
📧 Mail
📨 GW
🔔 Acty
💾 Data
🖨️ Rpt
🔢 Seq
🎯 Dflt
📋 Sel
🔖 Fltr
⬇️ DExp
🔒 Security & Info
🔑 Acc
🛡️ Rules
🔗 Rels
💻 API
🗂️ Menu
📦 Export
Works with ANY Odoo Model
Contact / Customerres.partner
Sales Ordersale.order
Employeehr.employee
Purchase Orderpurchase.order
Manufacturing Ordermrp.production
Vendor Bill / Invoiceaccount.move
Project Taskproject.task
Search by name or technical name. Studio works on all standard and custom models.
Form View Builder
➕
Add fields via 'Add' tab
↕️
Reorder by drag & drop
11 Field Types — 3 Clicks to Add
TextNumberDateCheckbox
DropdownMany2oneMonetaryRelated
HTMLBinaryDateTime
Technical name auto-generated from label. Appears on form immediately.
List View Builder
📋 Column Management
☰ Customer Name
visible
☰ Order Date
visible
☰ Internal Notes
hidden
☰ Total Amount
visible
🎨 Row Decoration Rules
Color-code rows based on field values
state == 'done' → Green row
state == 'draft' → Amber row
is_overdue == True → Red row
Switch to List mode in the panel. Manage exactly which columns appear and in what order.
Kanban View Builder
🎨 Card Fields
📌 Title field
name
Status badge
state
Assigned to
user_id
Priority stars
priority
🧱 Sample Kanban Card
Q1 Sales Campaign
In Progress
★★★
👤 Alice Johnson
Settings
Color by: stage_id
Quick create: ON
Default group: stage_id
Card tab shows which fields appear on each Kanban card. Toggle and drag to customise.
Search View Builder
🔍 Search records...
▼ Filters & Groups
Search Fields
Customer
Reference
Amount
Filters
Active Only
My Records
This Month
Group By
Salesperson
Month
What you configure
- Search fields (char, date, M2O...)
- Filter presets with domains
- Group-by field options
Supported field types
- Text, Integer, Float, Boolean
- Date, DateTime, Selection
- Many2one, Monetary
Define what users can search, filter, and group by — without touching XML.
Pivot View Builder
PIVOT TABLE PREVIEW
| Category |
Jan 2026 |
Feb 2026 |
Mar 2026 |
Total |
| Electronics | ₹2.4L | ₹2.8L | ₹3.1L | ₹8.3L |
| Furniture | ₹1.2L | ₹0.9L | ₹1.4L | ₹3.5L |
↕Row Fields
product_category
↔Column Fields
date_order (month)
🔢Measure Fields
amount_total (sum)
Build pivot tables for any model. Perfect for management dashboards.
Graph View Builder
Chart Type
Field Roles
X-axis (Group By)date_order
Y-axis (Measure)amount_total
StackedON
PREVIEW — Monthly Revenue
Nov
Dec
Jan
Feb
Mar
Choose chart type, set X-axis grouping and Y-axis measures. Stacked or unstacked.
Calendar View Builder
March 2026
Day
Week
Month
M
T
W
T
F
S
S
5
6
7
8
9
11
12
13
Start Date
date_order (auto-detected)
End Date
commitment_date (optional)
Event Label
name / display_name
Color By
user_id (many2one)
Auto-detects best date field. Day/Week/Month/Year modes configurable.
Gantt View Builder
GANTT VIEW
Day
Week
Month
Site Survey
Foundation Work
Electrical
Final Inspection
Powered by
Frappe Gantt v0.6.1
Bundled locally
View type
9th view type
Unique to Studio
CDN required?
No ✓
Works offline
Zoom levels
Day/Week/Month
Automation Builder — Full Inline
Rule list with toggles
Trigger badges
Domain filter
Action type selector
Build, manage, and test automation rules — all without leaving the Studio panel.
9 Trigger Types
➕
On Create
When a record is created
✏️
On Update
When specific fields change
🔄
Create & Update
Either creation or modification
🗑️
On Delete
Before a record is removed
⏰
Time Condition
N days before/after a date field
📋
Stage Change
When the pipeline stage changes
📅
Timed Condition
Based on date + domain
🖱️
UI Button Press
User clicks a specific button
🤚
Manual
Run from Action menu
Every trigger Odoo supports, exposed through a clean UI.
7 Action Types — All Inline
💻
Execute Code
Write Python in an inline editor
✍️
Write Field
Update a record field value
📧
Send Email
Pick from email templates
👥
Add Follower
Add users or partner groups
🔔
Next Activity
Schedule an activity on record
💬
Send SMS
Send SMS via template
➕
Create Record
Create a linked record
🔗
Chain Actions
Multiple actions per rule
No Python required for most use cases. Code action available for power users.
Server Actions + Outgoing Webhooks
⚡ Server Actions
- Appear in model's Action (⚙️) menu
- Bind to list view, form view, or both
- Execute Python code on selected records
- Toggle binding with one click
- Identified by "Studio: " prefix
EXAMPLE — Mark as Priority
for rec in records:
rec.priority = '1'
🌐 Outgoing Webhooks
- HTTP POST on Create / Update / Delete
- Choose payload fields to include
- Test button — fire immediately
- URL embedded in automation rule
- JSON payload, no auth setup
POST https://hooks.slack.com/...
{"record_id": 42, "name": "SALE/001"}
Connect Odoo to any external system — CRM, ERP, Slack, custom APIs.
Create New Models — One Step
✓ Views auto-created
✓ Menu auto-created
✓ Access rules auto-set
From idea to working Odoo model in under 30 seconds.
Access Rights Manager
Per-group RWCD badges
Toggle individual permissions
Add / delete studio rules
Native rules shown read-only
Manage ir.model.access rules with clickable RWCD permission badges per group.
Record Rules — Row-Level Security
🧩 Example Rule — Salesperson can only see own records
DOMAIN FILTER
[('user_id', '=', user.id)]
APPLIES TO
Sales / User
base.group_user
What you configure
- Domain expression (Python-like syntax)
- Which groups the rule applies to
- Global (all users) vs group-specific
- Active / inactive toggle
Common use cases
- Multi-company data isolation
- Salesperson sees only own leads
- Manager sees all, rep sees own
- Branch / territory restrictions
Limit what records each user group can see, edit, or delete — with domain filters.
Complete Security & Data Toolkit
🔢 Sequences
- Create prefix/suffix/padding sequences
- e.g. INV/2026/0001, SO-001
- Date variables: %(year)s, %(month)s
- Next number preview
INV/2026/0042
🎯 Default Values
- Set field defaults per scope
- Global / per-company / per-user
- Overrides at multiple levels
- Instant effect on new records
🔖 Saved Filters
- Pre-configured search+filter combos
- Share globally or per-user
- Domain validated before save
- "Studio: " identified, manageable
📋 Selection Editor
- Add/remove dropdown options
- Works on custom (manual) fields
- Checks record usage before delete
- No XML required
Manage every aspect of data behaviour without opening developer mode.
Export as a Deployable Module
📦 my_customisations.zip
├── 📄 __manifest__.py version, depends, data
├── 📄 __init__.py
├── 📁 models/
└── custom_models.py all model classes
├── 📁 security/
└── ir.model.access.csv
├── 📁 views/
├── custom_model_views.xml
└── view_customizations.xml
└── 📁 data/
└── menu_data.xml
Select which models to include. Download ZIP. Install on any Odoo 19 instance.
QWeb Report Designer
Pick fields, choose template, set PDF/HTML — report added to Print menu instantly.
Email Template Builder
TEMPLATE EDITOR
SUBJECT
Your Order {{object.name}} is Confirmed
BODY (Jinja2)
Dear {{object.partner_id.name}},
Thank you for your order
{{object.name}} totalling
{{object.amount_total}} {{object.currency_id.name}}.
Regards,
{{user.name}}
Jinja2 Variables
{{object.field}} — record field{{user.name}} — current user{{env.company}} — company
Integration
- Available in Automation → Send Email
- Per-model scope
- Send from any email address
Output
- HTML email body
- Attachments supported
- CC / BCC configurable
Create reusable email templates. Reference record fields with {{object.field_name}}.
Data Management Tools
⬇️ Data Export Templates
- Pre-configure field sets for Excel export
- ir.exports + ir.exports.line under the hood
- Available in List view → Export button
- Pick from any exportable field
⬆️ Import CSV / XLS
- 3-step wizard: Upload → Map → Result
- Drag-and-drop file zone
- Auto column-to-field mapping
- Built on Odoo's base_import module
🔀 Model Relation Browser
- Visual browser of all relationships
- Many2one / One2many / Many2many
- Shows related model name + field
- Useful for domain & webhook design
🔔 Activity Types
- Create custom activity types
- Model-specific or global scope
- Category: default / upload / phonecall
- Set default delay (days/weeks/months)
From data import to relationship mapping — all accessible from the panel.
Built-In API Documentation
POST/studio/field/listList fields
POST/studio/field/createAdd field
POST/studio/automation/listGet rules
POST/studio/webhook/createNew webhook
POST/studio/report/createNew report
+ 167 more endpoints...
PYTHON SNIPPET
import xmlrpc.client
url = "https://your.odoo.com"
uid = common.authenticate(
db, user, pwd, {})
fields = models.execute_kw(
db, uid, pwd,
'res.partner', 'search_read',
[[['is_company','=',True]]],
{'fields': ['name','email']})
CURL SNIPPET
curl -X POST https://your.odoo.com/web/dataset/call_kw
-H "Content-Type: application/json"
-d '{"method":"call","params":...}'
Every Studio endpoint documented inline — with working Python, JavaScript, and cURL examples.
Power Features
⚡ Batch Actions
- Bind server actions to list/form views
- Execute on multiple selected records
- One-click binding toggle per view type
- Results in Action (⚙️) menu instantly
EXAMPLE — Batch Approve
⚙️ Approve Selected
Bound ✓
🗂️ Menu Editor
- Drag-and-drop menu reordering
- Create custom menu items
- Link to any window action
- Set parent menu, icon, sequence
- Global Menu Editor overlay
EXAMPLE
☰ My Reports → Sales Summary
sequence: 20, parent: Reporting
Add power-user shortcuts to any model's interface.
Production-Grade Architecture
🐍 Backend (Python)
Full error handling + logging
with_context() where needed
@api.constrains validation
🖥️ Frontend (OWL 3)
Native Odoo OWL components
Zero external JS libraries
useState / useService hooks
makeDraggableHook for DnD
🔒 Security
auth='user' on all routes
group_system for admin ops
CSRF via JSON-RPC protocol
Non-studio records protected
98 / 98 Tests Passing
✓ TestFieldWizard (9 tests)
✓ TestStudioView (18 tests)
✓ TestStudioSequence (6 tests)
✓ TestStudioAutomation (8 tests)
✓ TestStudioReport (7 tests)
✓ TestStudioExport (4 tests)
✓ TestStudioAccess (4 tests)
✓ TestStudioEmailTemplate (5 tests)
✓ TestStudioWebhook (5 tests)
... 9 more test classes
98 passed · 0 failed · 0 errors
Test Infrastructure
- TransactionCase (isolated DB txn)
- Full ORM operations tested
- Controller routes mocked
- CI-ready — runs in ~2 minutes
Full TransactionCase coverage. Every major feature tested. CI-ready.
Global & Marketplace Ready
🌍
Internationalisation
GNU gettext .pot format with 156 translatable strings
Add any language: create .po file → install
📸
App Store Ready
6 professional screenshots + full index.html description page
Odoo App Store guidelines compliant
📜
LGPL-3 License
Use commercially, modify, distribute — fully open source
Compatible with Odoo Community license
Community Gets Enterprise Power
| Feature |
Plain Community |
🎨 DRKDS Studio |
Odoo Enterprise |
| Visual field builder | ✕ | ✓ | ✓ |
| 8 view type builders | ✕ | ✓ | ✓ |
| Automation / rules UI | ✕ | ✓ | ✓ |
| QWeb report designer | ✕ | ✓ | ✓ |
| Custom model creator | ✕ | ✓ | ✓ |
| Module export (ZIP) | ✕ | ✓ | ✕ |
| Outgoing webhook builder | ✕ | ✓ | ✕ |
| API documentation panel | ✕ | ✓ | ✕ |
| Gantt view builder | ✕ | ✓ | ✕ |
| Annual licence fee |
Free |
Free (LGPL-3) |
Paid |
🎨
Thank You
DRKDS Studio — Odoo 19 Community
Questions? Happy to do a live walkthrough of any feature.
Odoo 19
•
35+ Features
•
98/98 Tests
•
Zero Dependencies
•
i18n Ready