-
Notifications
You must be signed in to change notification settings - Fork 2.3k
[ADD] real_estate, *: add complete real estate management module #839
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
Created the initial file architecture for the real_estate module, including the necessary directories and manifest file. Implemented the estate.property model using Odoo ORM to define the database table structure required for storing property-related data. This commit sets up the foundation for the module, making it ready for further development of features such as property management, views, and business logic.
ab10458
to
7a4879a
Compare
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.
First pass ... 🚀 ,
Not in depth technical review.
- The PR title is not appropriate. The PR title should be describe more about why the
PR is made on the first place. - The diff contains alot of unnecessary diff.
Please adapt this change and do not leave unnecesary diffs 🙏
Thank you 🙂
Contains a lot of unnecessary diff which is not required.
64b8a3e
to
5c94fc5
Compare
done!
…On Thu, Jul 10, 2025 at 6:06 PM maad-odoo ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In estate_account/__init__.py
<#839 (comment)>:
> @@ -0,0 +1 @@
+from . import models
it will be failing because of encode declaration and not for the licensing
part.
you can remove the encoding part and keep the licensing part
—
Reply to this email directly, view it on GitHub
<#839 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/BPDPFYG7ZHG7DOX5TZIR6LL3HZM53AVCNFSM6AAAAACBDEHN7WVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTAMBVGUYDINRVG4>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
5c94fc5
to
b02961b
Compare
2f19925
to
683746d
Compare
Purpose: Restrict model access and enhance user interaction. Approach: Defined access rights via `ir.model.access.csv`; created list, form and search views with key fields. Impact: Users see only permitted records and can easily view, search, and manage properties through a structured UI.
683746d
to
4d069f8
Compare
…uttons Purpose: Improve data linkage, automate values, and streamline user actions. Approach: - Linked models via One2many, Many2one, and Many2many fields. - Added computed fields like best_offer and offer_deadline. - Used onchange for reactive UI updates. - Added buttons for actions: Sold/Cancel (property), Accept/Refuse (offer). Impact: Simplifies workflows, ensures data consistency, and improves overall usability.
…ttons - Added inline views, statusbar, widget options - Set SQL & Python constraints for data validity - Defined default ordering for all models - Conditional button visibility & field behaviors - Editable/color-coded list views with decorations - Stat button for offer count on property type
Purpose: Introduce a separate module to handle property invoicing and commissions. Approach: Created `estate_account` module with billing logic, including fixed admin fees and percentage-based commissions. Impact: Enables optional, reusable invoicing integration for real_estate without polluting core logic.
Purpose: Make the code cleaner and more secure. Approach: - Renamed methods and variables to follow Odoo naming rules. - Avoided unsafe public methods and direct field access. Impact: Code is easier to read, safer to use, and follows Odoo guidelines.
Purpose: Control user access, support testing, and improve communication. Approach: - Added 'Agent' and 'Manager' groups with role-based access. - Used groups to control field/button visibility. - Loaded demo data for testing and training. - Enabled chatter for tracking messages and changes. Impact: Improves security, speeds up development, and adds better collaboration tools.
4d069f8
to
c58a63b
Compare
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.
Few technical comments
for record in self: | ||
if float_is_zero(record.selling_price, precision_digits=2): | ||
continue | ||
min_price = record.expected_price * 0.9 | ||
if float_compare(record.selling_price, min_price, precision_digits=2) < 0: | ||
raise ValidationError( | ||
"Selling price must be at least 90% of the expected price." | ||
) |
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.
If I am not wrong offer should be accepted first 🤔
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.
but sir selling price will only be set if the offer is accepted . its the readonly field
b0fff94
to
bb0624e
Compare
…ontent Purpose: Generate useful reports for properties, offers, and sellers. Approach: - Added offer report to property print menu with conditional content. - Moved offer table to a reusable sub-template. - Created seller report with related offers. - Extended property report to include invoice details when sold. Impact: Provides clear, flexible reporting for users with reusable templates.
Purpose: Prevent invalid property sales/offers and fix garden field issues. Approach: - Blocked offers on sold properties and sales without accepted offers. - Fixed garden reset to retain area and orientation when unchecked. Impact: Eliminates user confusion and ensures consistent UI behavior.
Purpose: Build reusable components and interactive UI features using the OWL framework. Approach: Created counter and card components with props and slots. Added todo list with add, delete, toggle, and focus features. Used markup, dynamic attributes, and basic lifecycle hooks. Impact: Improves understanding of OWL concepts and sets up a base for building interactive UIs.
bb0624e
to
aa0188c
Compare
Purpose: Create a reusable and extensible dashboard using OWL framework features. Approach: Added layout, navigation buttons, and dashboard items Integrated server calls, caching, and pie chart display Enabled real-time updates and lazy loading Made dashboard generic, extensible, and interactive Impact: Delivers a flexible dashboard with live data and modular components.
70d7865
to
a1ca72d
Compare
This branch introduces a complete Real Estate management module to handle
property listings, offers, access control, invoicing, and website integration.
Key Features:
Property Management: Configure and manage estate properties with clean form and list views.
Offer Handling: Enable offer submission with business validations and acceptance
workflows.
Access Control: Define model-level access and permissions for real estate roles.
Website Integration: Display listings and allow users to submit offers online.
Accounting: Seamlessly integrate with invoicing through the
estate_account module
Standards Compliance: Includes test coverage and follows Odoo best practices.
This module offers an end-to-end Real Estate solution within the Odoo ecosystem.