Skip to content

Add Estate Property Model#1229

Draft
radhr-odoo wants to merge 45 commits intoodoo:19.0from
odoo-dev:19.0-tutorials-radhr
Draft

Add Estate Property Model#1229
radhr-odoo wants to merge 45 commits intoodoo:19.0from
odoo-dev:19.0-tutorials-radhr

Conversation

@radhr-odoo
Copy link
Copy Markdown

Created the estate.property model with required fields and attributes, with the reference of crm_recurring_plan.
Chapters 1 to 3 completed, and the Estate module has been created with the estate_property model.

Changes

  • Added estate.property model
  • Defined fields and attributes

Added a new estate module, enabled it as an application, and configured it to be installable.
Add estate property model with necessary fields and attribute definitions, referencing crm_recurring_plan
Add estate property model with necessary fields and attribute definitions, referencing crm_recurring_plan
@robodoo
Copy link
Copy Markdown

robodoo commented Apr 3, 2026

Pull request status dashboard

Added id.model.access.csv added to security folder in estate module. Given read, write, update and unlink option.
Added security to module by given read, write, update and unlink permission on given module
Added simple window action estate view in views folder with proper model and structure
Added root menu, first level menu and action menus in estate module
Improved by adding state and active field which set the record visibility and with no duplication of state.
In estate property module list view added using estate_property_view xml file by using list tags
In estate property module form view added using estate_property_view xml file by using sheet and pages tags. It also contains HTML tags
Copy link
Copy Markdown

@bit-odoo bit-odoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @radhr-odoo
Good Start!

Module name is wrong in these commits 534af8a , ed52d4e , d329065, 646f8a0

At the end of the commit message, please mention which chapter's code you pushed in that commit.

Thanks

@@ -0,0 +1,9 @@
<odoo>
<!-- Here id = unique id in DB, name = "what will be shown on screen" -->
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Writing a comment is good, but no need to write a comment here. It's only required when there is complex computation, etc.

garden_area = fields.Integer(string="Garden_area")
garden_orientation = fields.Selection(string="Garden Orientation", selection=[("north", "North"), ("east", "East"), ("west", "West"), ("south", "South")])

# If it is false then newly created record won't be appear. but record is created when active is set true record will appear.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Writing a comment is good, but no need to write a comment here. It's only required when there is complex computation, etc.


# If it is false then newly created record won't be appear. but record is created when active is set true record will appear.
active = fields.Boolean("Active", default=True)
# State can get selected and as copy is set False in duplicate it cannot get copied
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Writing a comment is good, but no need to write a comment here. It's only required when there is a complex computation, etc.

# If it is false then newly created record won't be appear. but record is created when active is set true record will appear.
active = fields.Boolean("Active", default=True)
# State can get selected and as copy is set False in duplicate it cannot get copied
state = fields.Selection(string="state", selection=[("new", "New"), ("offer received", "Offer Received"), ("accepted", "Accepted"), ("sold", "Sold"), ("cancelled", "Cancelled")], default="new", copy=False)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use Ruff to format this.

'application': True,
'data': [
'security/ir.model.access.csv',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneccary space.

Added filter for state wise filtering and also added group by for postcode.
chapter 6 : Basic Views
Linked 2 models estate_property and estate_property_type using Many2one function on property_id connected with estate.property.type, linked buyer with res.partner and sales person with res.user.
Model linked to get more clarity while using both models and share linked data.

Chapter 7:  Relation between model
Model linked to get more clarity while using both models and share linked data.

Chapter 7:  Relation between model
Added property tags (Many2Many) to enhance property classification and
flexibility. Enables users to quickly filter and identify properties based on
features like cozy, renovated, etc.Improves searchability and overall user
experience.

Chapter 7: Relations between model : Many2many
Added property tags (Many2Many) to enhance property classification and
flexibility. Enables users to quickly filter and identify properties based on
features like cozy, renovated, etc.Improves searchability and overall user
experience.

Chapter 7: Relations between model : Many2many
Allows users to view and manage all buyer offers in one place, making it easier
to compare prices and track offer status. Improves decision-making and overall
property management experience.

Chapter 7: Relations between model : One2many
Enables users to access and use estate management features directly within the
system. Simplifies setup so users can quickly start managing property-related
tasks without additional configuration.

Chapter 1: Architecture Overview
Allows users to store and manage detailed property information in a structured
way. Improves tracking of property-related activities by linking them with
recurring plans, making workflows more organized and efficient.

Chapter 2: A NEW MODEL
Enables users to maintain structured property records with all necessary details
in one place. Improves workflow efficiency by connecting properties with
suggestion from recurring plans for better tracking and management.

Chapter 3: Model and some basic fields
Ensures users have appropriate access to estate data based on their roles.
Improves data security and prevents unauthorized actions while allowing smooth
and controlled interactions with the system.

Chapter 4: Security : A brief introduction
Provides users with controlled access to perform necessary actions like viewing,
editing, and deleting data. Ensures a secure and reliable experience by
preventing unauthorized operations while maintaining usability.

Chapter 4: Security : A brief
Allows users to easily access and navigate estate data through a dedicated
interface. Improves usability by providing a clear and structured view for
managing records.

Chapter 5: Finally some UI to play with.
Added root menu, first level menu and action menus in estate module
Improved by adding state and active field which set the record visibility and with no duplication of state.
In estate property module list view added using estate_property_view xml file by using list tags
In estate property module form view added using estate_property_view xml file by using sheet and pages tags. It also contains HTML tags
Added filter for state wise filtering and also added group by for postcode.
chapter 6 : Basic Views
Linked 2 models estate_property and estate_property_type using Many2one function on property_id connected with estate.property.type, linked buyer with res.partner and sales person with res.user.
Model linked to get more clarity while using both models and share linked data.

Chapter 7:  Relation between model
Model linked to get more clarity while using both models and share linked data.

Chapter 7:  Relation between model
Added property tags (Many2Many) to enhance property classification and
flexibility. Enables users to quickly filter and identify properties based on
features like cozy, renovated, etc.Improves searchability and overall user
experience.

Chapter 7: Relations between model : Many2many
Added property tags (Many2Many) to enhance property classification and
flexibility. Enables users to quickly filter and identify properties based on
features like cozy, renovated, etc.Improves searchability and overall user
experience.

Chapter 7: Relations between model : Many2many
Allows users to view and manage all buyer offers in one place, making it easier
to compare prices and track offer status. Improves decision-making and overall
property management experience.

Chapter 7: Relations between model : One2many
Added computed field for total area by summing garden and living space, giving
users a quick and accurate view of overall property size.

Chapter 8: Computed fields and onChanges
Added computed field for total area by summing garden and living space, giving
users a quick and accurate view of overall property size.

Chapter 8: Computed fields and onChanges
Add function to surface the best (highest) price prominently in the header.
Improves user experience by making optimal pricing instantly visible without
extra effort.

Chapter 8: Computed fields and onChanges
Add function to surface the best (highest) price prominently in the header.
Improves user experience by making optimal pricing instantly visible without
extra effort.

Chapter 8: Computed fields and onChanges
Auto-updates garden area and orientation based on garden selection, reducing
manual input and preventing user errors.Clears dependent fields when disabled,
ensuring data consistency and a cleaner user experience.

Chapter : 8 Computed fields and onChanges
Auto-updates garden area and orientation based on garden selection, reducing
manual input and preventing user errors.Clears dependent fields when disabled,
ensuring data consistency and a cleaner user experience.

Chapter : 8 Computed fields and onChanges
Auto-updates garden area and orientation based on garden selection, reducing
manual input and preventing user errors.Clears dependent fields when disabled,
ensuring data consistency and a cleaner user experience.

Chapter : 8 Computed fields and onChanges
Add computed validity & deadline fields with inverse sync for seamless updates
that ensures accurate offer timelines and reduces manual date calculations for
users.

Chapter : 8 Computed fields and onChanges
Add computed validity & deadline fields with inverse sync for seamless updates
that ensures accurate offer timelines and reduces manual date calculations for
users.

Chapter : 8 Computed fields and onChanges
Helps users efficiently manage offers while automatically assigning buyer and
final price to the property.

Chapter  9 : Ready For Some Action?
Improves data integrity by restricting invalid transitions saved offers cannot
be cancelled and cancelled offers cannot be saved.
Chapter  9 : Ready For Some Action?
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.

3 participants