Introduction
1 / 35
▶ Speaker Notes
Press N to toggle notes
← → 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
8
Q&A
2 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

Studio Panel Overview
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

Form View Builder
Add fields via 'Add' tab
↕️
Reorder by drag & drop
🎯
Conditional visibility

11 Field Types — 3 Clicks to Add

Add Field
1
Pick field type
2
Enter label
3
Click Save
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
Site Visit
11
12
13
Delivery

Start Date

date_order (auto-detected)

End Date

commitment_date (optional)

Event Label

name / display_name

Color By

user_id (many2one)

Quick Create

Enabled

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

Automation Builder
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

Custom Model Creator
✓ Views auto-created
✓ Menu auto-created
✓ Access rules auto-set

From idea to working Odoo model in under 30 seconds.

Access Rights Manager

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
ZIP
Single download
Odoo 19 ready
Any DB
Install anywhere

Select which models to include. Download ZIP. Install on any Odoo 19 instance.

QWeb Report Designer

Report Builder
📋
Simple Table
🧾
Invoice Style
📰
Two Column
🚚
Delivery Slip

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

💻 Studio JSON-RPC Endpoints
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)

21 AbstractModel classes
172 @route endpoints
ORM-only (zero raw SQL)
Full error handling + logging
with_context() where needed
@api.constrains validation

🖥️ Frontend (OWL 3)

Native Odoo OWL components
JSON-RPC communication
Zero external JS libraries
useState / useService hooks
main_components registry
makeDraggableHook for DnD

🔒 Security

auth='user' on all routes
group_system for admin ops
Regex input validation
CSRF via JSON-RPC protocol
studio. prefix namespace
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
100%
Pass rate
0
Errors

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

156
i18n strings
6
Screenshots
0
Ext. deps
v1.0
Release

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