-
Notifications
You must be signed in to change notification settings - Fork 2k
[ADD] estate: initial Real Estate module with models, views, and rela… #757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 18.0
Are you sure you want to change the base?
Conversation
…tions Introduce the base structure of the Real Estate application as per Odoo 18 developer tutorial, covering the foundational data model, views, menus, access rights, and key relationships. This commit adds: - A new module named `estate`. - The main model `estate.property` with relevant business fields (name, price, expected price, description, living area, garden, garage, etc.). - Custom menus, actions, form and list views for `estate.property`. - Field attributes like `readonly`, `copy`, `required`, and default values. - Access rights through `ir.model.access.csv` for developers. - Multiple record filtering using `domain`, `search`, and view buttons. - Related models: - estate.property.type`: Many2one for property types. - estate.property.tag`: Many2many tags with selection UI. - estate.property.offer`: One2many offer list per property with inline editing - Links to existing models: `res.partner` (buyer), `res.users` (salesperson). - Navigation enhancements through related fields and smart buttons. - Search enhancements using filters for related fields like tags and type. The goal of this commit is to build a working foundation of the real estate sales module including a robust data model, basic UI, and relations required for future business logic and workflow implementation. task-001 (Chapter 1–7 Odoo 18 Developer Tutorial)
Enhance the Real Estate module by implementing computed fields, onchange behavior, SQL constraints, and business logic for handling property offers as outlined in Chapters 9 and 10 of the Odoo 18 Developer Tutorial. This commit adds: - Computed fields: - `total_area`: combines living and garden areas. - `best_price`: dynamically shows the highest offer on a property. - Onchange method to auto-fill garden attributes when the garden is checked - Python constraints using `@api.constrains` to: - Ensure selling price is at least 90% of expected price. - Validate date availability is not in the past. - SQL-level check constraints to enforce: - `expected_price > 0` on estate.property. - `price > 0` on estate.property.offer. - Action methods for accepting and refusing property offers: - Accepting sets offer status and updates property selling price/buyer. - Refusing only updates offer status. - Constraints ensure only one offer can be accepted per property. - Improved inline editing experience in offer list view. - Readonly fields, computed badges, and smart button usability refinements. These changes enforce critical business rules and improve user feedback, ensuring data consistency and meaningful interactions within the Real Estate flow. task-002 (Chapter 9–10 Odoo 18 Developer Tutorial)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @raaa-odoo
Nice work overall looks good.
Few comments mostly related to coding guidelines and nitpicking.
Cheers!!
…transitions This commit completes the enhancements from chapters 11 to 15 of the Odoo 18 Real Estate module. It introduces a range of improvements: - Added state field with custom transitions (`new`, `offer received`, `offer accepted`, `sold`, `cancelled`), including buttons and logic for Sold/Cancelled. - Added computed fields: total_area (living + garden), best_offer, and selling_price. - Added SQL constraints and Python constraints to ensure offers are above a threshold and selling price is logically correct. - Used computed and inverse fields to manage garden area visibility based on the garden boolean. - Refactored UI behavior (e.g., readonly fields) based on the state of the property. - Automatically assigns partner to offers upon creation. - Used Inheritance for inheriting the class and use the features. - Created kanban view while using drag and drop. These changes reinforce business rules and improve usability for real estate agents managing listings and offers.
Refactored the code to enhance readability and maintainability by improving indentation, spacing, and overall formatting. No functional or logic changes were made—only visual/code style adjustments for clarity. This improves code quality and aligns with best practices for clean code.
Refactored the code to enhance readability and maintainability by improving indentation, spacing, and overall formatting. No functional or logic changes were made—only visual/code style adjustments for clarity. This improves code quality and aligns with best practices for clean code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @raaa-odoo
Some questions/suggestions
Thanks!!
<group> | ||
<field name="tag_ids" string = "Tag" widget="many2many_tags" options="{'color_field': 'color'}"/> | ||
<field name="property_type_id" | ||
options="{'no_create': True, 'no_create_edit': True}"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'no_create_edit': True
no need for this i think only 'no_create': True
can serve the purpose.
…tions
Introduce the base structure of the Real Estate application as per Odoo 18 developer tutorial, covering the foundational data model, views, menus, access rights, and key relationships.
This commit adds:
estate
.estate.property
with relevant business fields (name, price, expected price, description, living area, garden, garage, etc.).estate.property
.readonly
,copy
,required
, and default values.ir.model.access.csv
for developers.domain
,search
, and view buttons.res.partner
(buyer),res.users
(salesperson).The goal of this commit is to build a working foundation of the real estate sales module including a robust data model, basic UI, and relations required for future business logic and workflow implementation.
task-001 (Chapter 1–7 Odoo 18 Developer Tutorial)