odoo_view_builder_flutter 1.0.0+1 copy "odoo_view_builder_flutter: ^1.0.0+1" to clipboard
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 #

Flutter Dart License: MIT Version Platforms

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.

Built with โค๏ธ for the TIMSoftDZ developer community