odoo_view_builder_flutter 1.0.0+1
odoo_view_builder_flutter: ^1.0.0+1 copied to clipboard
A professional visual editor for building Odoo XML views via Drag & Drop. Supports Form, Tree and Kanban views with real-time XML preview and export.
odoo_view_builder_flutter #
A professional visual drag-and-drop editor for generating Odoo XML views โ Form, Tree, and Kanban โ built with Flutter and running on every platform.
โจ Features #
| Category | What you get |
|---|---|
| ๐จ Visual Editor | Drag fields from a typed palette onto a live canvas; organise into groups and notebook pages |
| ๐ณ All View Types | Form ยท Tree (List) ยท Kanban โ each with a dedicated editor |
| ๐ Live XML Preview | Syntax-highlighted XML updates in real time as you build |
| โ Validation | Field name rules, XML structure checks, Odoo 14โ18 compatibility warnings |
| ๐ค Multi-Platform Export | Download file ยท Copy to clipboard ยท Native share sheet ยท Web blob download |
| ๐ฅ Import XML | Parse existing Odoo XML back into the visual editor |
| ๐ Template Library | 10 built-in templates for common models (partner, sale order, product โฆ) |
| ๐ Odoo API Connect | Fetch live field definitions directly from a running Odoo instance |
| โฉ Undo / Redo | 50-step history across all edit actions |
| ๐พ Local Persistence | Views auto-saved to SQLite; settings in SharedPreferences |
| ๐ Analytics | Firebase-ready analytics service (works without Firebase too) |
| ๐ Crash Reporting | Crashlytics-ready crash reporter with local log fallback |
๐ธ Screenshots #
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โฌ
Back Custom Partner Form (res.partner) </> Export โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโค
โ FIELD TYPES โ CANVAS โ PROPERTIES โ
โ โ โ โ
โ [Aa] Text โ โโ group: General Info โโโโโโโโ Field: name โ
โ [#] Integer โ โ [name*] [phone] โโ Label: Name โ
โ [.] Float โ โ [email] [website] โโ Widget: char โ
โ [โ] Boolean โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Required: โ โ
โ [๐
] Date โ โ Readonly: โ โ
โ [๐] DateTimeโ โโ group: Address โโโโโโโโโโโโโ Colspan: 1 โ
โ [ยถ] Text โ โ [street] โโ โ
โ [<>] HTML โ โ [city] [zip] โโ โโโโโโโโโโโโโโโ โ
โ [๐] File โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ + Add widget โ
โ [โพ] Select โ โ โ
โ [โ] Many2One โ โ Drop field here โ โ
โ [โฎ] Many2M โ โ โ
โ [โก] One2Many โ โ โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
๐ Quick Start #
Prerequisites #
- Flutter SDK โฅ 3.10.0
- Dart SDK โฅ 3.0.0
Install #
git clone https://github.com/Brah-Timo/odoo_view_builder_flutter.git
cd odoo_view_builder_flutter
flutter pub get
Run #
# Android
flutter run -d android
# iOS
flutter run -d ios
# Web
flutter run -d chrome
# Desktop
flutter run -d macos # or windows / linux
For detailed platform-specific setup (entitlements, permissions, Firebase) see doc/setup.md.
๐ฆ Output Format #
Every exported view is a standard Odoo module XML file that you can drop
directly into your module/views/ folder:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated by Odoo View Builder -->
<odoo>
<data>
<record id="view_partner_form_custom" model="ir.ui.view">
<field name="name">res.partner.form.custom</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<form>
<group string="General Info">
<field name="name" required="1"/>
<field name="email" widget="email"/>
<field name="phone" widget="phone"/>
</group>
<group string="Address">
<field name="street"/>
<field name="city"/>
<field name="zip"/>
</group>
</form>
</field>
</record>
</data>
</odoo>
๐ Architecture #
The app follows Clean Architecture with three layers:
Presentation โ Domain โ Data
(Riverpod) (UseCases) (sqflite / SharedPrefs / OdooAPI)
State management uses Riverpod 2 (StateNotifierProvider) throughout.
XML generation is handled by the xml package's XmlBuilder API โ
never string concatenation.
โ Full architecture details: doc/architecture.md
๐งฉ Supported Odoo Versions #
| Odoo | Form | Tree | Kanban | Notes |
|---|---|---|---|---|
| 14.0 | โ | โ | โ | <sheet> recommended |
| 15.0 | โ | โ | โ | |
| 16.0 | โ | โ | โ | |
| 17.0 | โ | โ | โ | attrs/states removed |
| 18.0 | โ | โ | โ | <list> preferred |
The compatibility validator flags issues when you switch the target version in Settings โ Odoo Target Version.
๐ Documentation #
| Document | Description |
|---|---|
| doc/architecture.md | Layer design, data flow, key decisions |
| doc/setup.md | Dev environment & platform-specific setup |
| doc/usage_guide.md | End-user walkthrough of all features |
| doc/api_reference.md | Complete public API reference |
| doc/contributing.md | How to contribute, coding standards, PR process |
| doc/changelog_detail.md | Extended technical changelogs |
| doc/roadmap.md | Planned features and version targets |
| CHANGELOG.md | Concise version history |
๐ Key Dependencies #
| Package | Purpose |
|---|---|
flutter_riverpod ^2.4.9 |
State management |
xml ^6.4.2 |
XML generation and parsing |
sqflite ^2.3.2 |
Local SQLite database |
shared_preferences ^2.2.2 |
User preferences |
path_provider ^2.1.2 |
Platform file paths |
dio ^5.4.1 ยท http ^1.2.0 |
Odoo JSON-RPC API |
share_plus ^7.2.2 |
Native share sheet |
universal_html ^2.2.4 |
Web blob download |
flutter_highlight ^0.7.0 |
XML syntax highlighting |
uuid ^4.3.3 |
Unique ID generation |
intl ^0.19.0 |
Formatting |
logging ^1.2.0 |
Structured logging |
Full dependency list: pubspec.yaml
๐ค Contributing #
Contributions are welcome! Please read doc/contributing.md before opening a PR.
# Fork & clone
git clone https://github.com/Brah-Timo/odoo_view_builder_flutter.git
# Create a feature branch
git checkout -b feature/your-feature develop
# Implement, test, lint
flutter test && flutter analyze
# Open a PR targeting `develop`
๐บ Roadmap #
See doc/roadmap.md for the full roadmap.
Highlights planned for v1.1.0:
- Search view type editor
<notebook>/<page>visual layout in the form canvas- Inline domain/filter builder
- Compatibility validator in the export flow
๐ License #
This project is licensed under the MIT License โ see LICENSE for details.
๐ Acknowledgements #
- Odoo โ for the open-source ERP platform and XML view specification.
- Flutter & the Dart team โ for the cross-platform framework.
- Riverpod by Remi Rousselet โ for the excellent state management solution.
- All contributors and testers who helped shape the editor.