# luislom/odoo-property architecture

> Architecture diagram of the GitHub repository luislom/odoo-property, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/luislom/odoo-property
- Repository: https://github.com/luislom/odoo-property

## Overview

This repository is a Dockerized Odoo 19 environment containing an estate-property addon. The principal workflow is a user working in Odoo with estate-property records; the addon defines the record model and supplies access rules and XML data/views. The README also documents PostgreSQL-backed storage and the Odoo configuration. Controller routes are commented out, so they are not shown as active functionality. The sampled source does not expose how the XML views operate on the model; those links are omitted.

Main entry points: [`addons/estate/__manifest__.py`](https://github.com/luislom/odoo-property/blob/main/addons/estate/__manifest__.py) (Addon manifest), [`docker-compose.yml`](https://github.com/luislom/odoo-property/blob/main/docker-compose.yml) (Odoo service), [`addons/estate/__init__.py`](https://github.com/luislom/odoo-property/blob/main/addons/estate/__init__.py) (Addon registration), [`addons/estate/models/estate_property.py`](https://github.com/luislom/odoo-property/blob/main/addons/estate/models/estate_property.py) (Property model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_estate["Estate addon"]
  node_addon["Addon registration<br/>[__init__.py]"]
  node_manifest["Addon manifest<br/>[__manifest__.py]"]
  node_property["Property model<br/>[estate_property.py]"]
  node_access["Model access rules"]
  node_views["Property views"]
  node_menus["Estate menus<br/>[estate_menus.xml]"]
  node_general_views["Addon views<br/>[views.xml]"]
  node_templates["Web templates<br/>[templates.xml]"]
  node_demo["Demo records<br/>[demo.xml]"]
end

subgraph group_runtime["Odoo runtime"]
  node_odoo["Odoo service<br/>[docker-compose.yml]"]
  node_config["Odoo configuration<br/>[odoo.conf]"]
end

subgraph group_data["Persistent data"]
  node_postgres[("PostgreSQL")]
  node_odoo_data[("Odoo data volume")]
end

node_user(("Odoo user"))

node_user -->|"uses"| node_odoo
node_odoo -->|"loads config"| node_config
node_addon -->|"imports model"| node_property
node_manifest -->|"loads data"| node_access
node_manifest -->|"loads data"| node_views
node_manifest -->|"loads data"| node_menus
node_manifest -->|"loads data"| node_general_views
node_manifest -->|"loads data"| node_templates
node_manifest -->|"loads demo"| node_demo
node_odoo -->|"uses database"| node_postgres
node_odoo -->|"stores files"| node_odoo_data
node_odoo -->|"mounts addons"| node_addon

click node_odoo "https://github.com/luislom/odoo-property/blob/main/docker-compose.yml"
click node_config "https://github.com/luislom/odoo-property/blob/main/config/odoo.conf"
click node_addon "https://github.com/luislom/odoo-property/blob/main/addons/estate/__init__.py"
click node_manifest "https://github.com/luislom/odoo-property/blob/main/addons/estate/__manifest__.py"
click node_property "https://github.com/luislom/odoo-property/blob/main/addons/estate/models/estate_property.py"
click node_access "https://github.com/luislom/odoo-property/blob/main/addons/estate/security/ir.model.access.csv"
click node_views "https://github.com/luislom/odoo-property/blob/main/addons/estate/views/estate_property_views.xml"
click node_menus "https://github.com/luislom/odoo-property/blob/main/addons/estate/views/estate_menus.xml"
click node_general_views "https://github.com/luislom/odoo-property/blob/main/addons/estate/views/views.xml"
click node_templates "https://github.com/luislom/odoo-property/blob/main/addons/estate/views/templates.xml"
click node_demo "https://github.com/luislom/odoo-property/blob/main/addons/estate/demo/demo.xml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_addon,node_manifest,node_property,node_access,node_views,node_menus,node_general_views,node_templates,node_demo,node_user toneBlue
class node_odoo,node_config toneAmber
class node_postgres,node_odoo_data toneMint
```

## Components

### Estate addon

- [Addon registration](https://github.com/luislom/odoo-property/blob/main/addons/estate/__init__.py): `addons/estate/__init__.py`
- [Addon manifest](https://github.com/luislom/odoo-property/blob/main/addons/estate/__manifest__.py): `addons/estate/__manifest__.py`
- [Property model](https://github.com/luislom/odoo-property/blob/main/addons/estate/models/estate_property.py): `addons/estate/models/estate_property.py`
- [Model access rules](https://github.com/luislom/odoo-property/blob/main/addons/estate/security/ir.model.access.csv): `addons/estate/security/ir.model.access.csv`
- [Property views](https://github.com/luislom/odoo-property/blob/main/addons/estate/views/estate_property_views.xml): `addons/estate/views/estate_property_views.xml`
- [Estate menus](https://github.com/luislom/odoo-property/blob/main/addons/estate/views/estate_menus.xml): `addons/estate/views/estate_menus.xml`
- [Addon views](https://github.com/luislom/odoo-property/blob/main/addons/estate/views/views.xml): `addons/estate/views/views.xml`
- [Web templates](https://github.com/luislom/odoo-property/blob/main/addons/estate/views/templates.xml): `addons/estate/views/templates.xml`
- [Demo records](https://github.com/luislom/odoo-property/blob/main/addons/estate/demo/demo.xml): `addons/estate/demo/demo.xml`

### Odoo runtime

- [Odoo service](https://github.com/luislom/odoo-property/blob/main/docker-compose.yml): `docker-compose.yml`
- [Odoo configuration](https://github.com/luislom/odoo-property/blob/main/config/odoo.conf): `config/odoo.conf`

### Persistent data

- **PostgreSQL**
- **Odoo data volume**

### Other components

- **Odoo user**

## Connections

- Odoo user → Odoo service: uses (evidence: `README.md`)
- Odoo service → Odoo configuration: loads config (evidence: `README.md`)
- Addon registration → Property model: imports model (evidence: `addons/estate/__init__.py`)
- Addon manifest → Model access rules: loads data (evidence: `addons/estate/__manifest__.py`)
- Addon manifest → Property views: loads data (evidence: `addons/estate/__manifest__.py`)
- Addon manifest → Estate menus: loads data (evidence: `addons/estate/__manifest__.py`)
- Addon manifest → Addon views: loads data (evidence: `addons/estate/__manifest__.py`)
- Addon manifest → Web templates: loads data (evidence: `addons/estate/__manifest__.py`)
- Addon manifest → Demo records: loads demo (evidence: `addons/estate/__manifest__.py`)
- Odoo service → PostgreSQL: uses database (evidence: `README.md`)
- Odoo service → Odoo data volume: stores files (evidence: `README.md`)
- Odoo service → Addon registration: mounts addons (evidence: `README.md`)
