Skip to content

Conversation

@gicha-odoo
Copy link

[IMP] awesome_dashboard: add a generic and reusable dashboard component for the awesome_dashboard module.

This will create a dashboard that will display sales statistics in real time.

Key features:
- All the item on the dashboard are loaded from a registry to allow other module to add their own dashboard element.
- There are two type of item: number card that display a title and a number, and the pie chart card that display data as a pie chart.
- All items can be toggled through a configuration dialog. The disabled items are stored in the browser local storage.

This pull request will add a new real estate module in Odoo that will allow the user to manage their properties and the customers offers.

The key features are the following:
- Property management: allow the user to manage property, its caracteristics (name, description, number of facades, living area, garder area and orientation, ...), expected price, tags and property type.
- Offers management: allow the use to manage the offers made on each property. Each offer is made by a customer, has a validity and expiration date and can be either accepted or refused.
- Automation: the module contains the following automation
	- the best price is automatically computed using the highest offer
	- the selling price is automatically computed when accepting an offer
	- the property state is automatically updated
        - an invoice is automatically created when a property is sold. This invoice contains the administration fees as well as a dowm payment for the property (6%).
…oard.

This will add a new layout to the dashboard, new buttons to allow quick navigation to the customers kanban view and the leads, and create a new DashboardItem component.
This component is reusable and is displayed as a card on the dashboard. Its content is defined using a default slot to allow it to be set in the parent component.
The width of the card is defined as (18*size)rem, where size is a property of the class with a default value of 1. This allow to easily create dashboard items of different sizes.
…chart.

This will add a service to get statistics and cache them to prevent calling the rpc route at every dashboard mounting.
This will also add a pie chart using ChartJS through a newly created component. This allow the user to have an overview of the fetched data.
…shboard lazy loading.

This will update the service so that it will update in realtime using a defined interval of 10 mintues (set as 10 seconds for test purpose).
To update the data displayed in the dashboard, the service return a reactive object.
This will also change the dashboard component from  an action to a lazy component. This will allow the user to only load the dashboard when it is displayed.
All dashboard item were moved into a new dashboard folder to make it easier to bundle and a new DashboadLoader component has been created to load the dashboard as a lazy component.
…from registry.

This will make the dashboard generic by using a loop on an items list into the xml template.
The item are fetch from a registry to allow other module to create dashboard item. This module load its items from the dashboard_items.js file.
This will also add a filtering dialog, that will allow the user to choose which dashboad item to diplay. The configuration is store locally into the browser storage.
@robodoo
Copy link

robodoo commented Dec 23, 2025

Pull request status dashboard

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants