Skip to content

19.0 tutorials- Server framework 101 ( PIKRI )#1355

Draft
Piyush11204 wants to merge 19 commits into
odoo:19.0from
odoo-dev:19-tutorial-pikri
Draft

19.0 tutorials- Server framework 101 ( PIKRI )#1355
Piyush11204 wants to merge 19 commits into
odoo:19.0from
odoo-dev:19-tutorial-pikri

Conversation

@Piyush11204

@Piyush11204 Piyush11204 commented Jul 2, 2026

Copy link
Copy Markdown

This PR contains my work on the Real Estate module from the Server Framework 101 tutorial.

It includes the property, property type, tag, and offer models, along with their fields and relationships. It also adds the required views, menus, actions, access rights, and the business logic implemented throughout the tutorial.

This PR covers the changes made while progressing through the Server Framework 101 chapters.

The estate busniess has huge number of data thats needs
to be manage and track. here we are creating an platfrom
to mange the Real estate busniess

This provides the base structure of the model.

Chapter: 2
A real estate business needs to manage and track a large amount of
property information in a structured way.

Introduce the property model  for storing and managing real estate
data. This provides the base structure required to build the
property management workflow.

Chapter: 3
@robodoo

robodoo commented Jul 2, 2026

Copy link
Copy Markdown

Pull request status dashboard

Consistent coding conventions make the estate module easier to read,
review, and maintain as its functionality grows.

Resolve the reported linting issues to keep the implementation aligned
with the expected coding standards by the odoo runbot.

Chapter: 3
The estate module should remain free of linting violations to ensure
that new changes comply with the project's code quality requirements.

Resolve the remaining reported lint errors so that the affected code
passes the expected checks without changing its functional behavior.

Chapter: 3
Add access control rules for the estate property model to define the
required permissions for creating, reading, updating, and deleting
property records.

This makes the model accessible through the application while
following Odoo's model security mechanism.

Chapter: 4
The security configuration needs to follow the expected conventions
to ensure access rights are defined consistently and pass the required
validation checks.

Correct the reported issues in the estate security file while
preserving the intended access permissions and functional behavior.

Chapter: 4
Standerd spacing keeps the estate module readable and prevents
style violations errors from the odoo runbot.

Correct the affected formatting to follow the expected coding
conventions without changing the module's functional behavior.

Chapter: 4
@Piyush11204 Piyush11204 closed this Jul 3, 2026
@Piyush11204 Piyush11204 reopened this Jul 3, 2026
Property records need a user interface so users can access and manage
real estate data without interacting directly with the underlying
model.

Added the required property views and menu entries for the
property records through the estate application

Chapter: 5
New property records should start with some default values
to reduce repetitive input and ensure consistent initialization.

Added the default bedroom count and availability date computation so
that newly created properties receive the expected values automatically.

Chapter: 5
As property records contain more information, users need a structured
form and efficient search options to navigate and manage them easily.

Improve the property form layout to organize related information and
add search filters to help users quickly narrow down properties based
on relevant criteria.

Chapter: 6
Users need a convenient way to identify higher-priced properties
without manually reviewing individual records or repeatedly applying
the same price criteria.

Add a dedicated search filter for expensive properties so that users
can quickly narrow the property list to records matching the defined
price threshold.

Chapter: 6
Add property type and property tag models to provide structured
classification of estate properties.

Integrate the new relational fields into the property model and
enhance the property form so users can assign types and tags while
managing property records.

Chapter: 7
The estate module needs to comply with the expected coding standards
to pass Runbot validation.

Resolve the reported linting issues so that the module passes the
automated checks without affecting its functional behavior.
@Piyush11204
Piyush11204 force-pushed the 19-tutorial-pikri branch 2 times, most recently from 8ce52d1 to 24e0f40 Compare July 9, 2026 12:13
Properties receive multiple offers from multiple buyers, so each
proposal needs to be tracked independently.

Added the property offer model and link it to the property
model. This allows multiple offers to be managed separately while
keeping them accessible from their corresponding property record.

Chapter: 7
An offer belongs to the property for which it was originally created
and should not be reassigned afterward, as this could associate the
offer with an unrelated property.

Make the property relation readonly to preserve the association between
a property and its offers throughout the offer lifecycle.

Chapter: 7
@Piyush11204
Piyush11204 requested a review from bit-odoo July 20, 2026 04:37

@bit-odoo bit-odoo left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hello @Piyush11204
Good Start!

First, can you please improve all your commit titles and add the message as well?
And you have left many unneccary empty lines.

Also, improve the PR title and description.

Thanks

Comment thread estate/models/estate_property.py Outdated
date_availability = fields.Date(
copy=False, default=lambda self: fields.Date.add(fields.Date.today(), months=3)
)

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 empty line.

Comment thread estate/models/estate_property.py Outdated

expected_price = fields.Float(required=True)
selling_price = fields.Float(readonly=True, 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.

unneccary empty line.

Comment thread estate/models/estate_property.py Outdated
bedrooms = fields.Integer(default=2)
living_area = fields.Integer()
facades = fields.Integer()

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 empty line.

Comment thread estate/models/estate_property.py Outdated
garage = fields.Boolean()
garden = fields.Boolean()
garden_area = fields.Integer()

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 empty line.

<field name="name">Property Tags</field>
<field name="res_model">estate.property.tag</field>
<field name="view_mode">list,form</field>

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 empty line.

Comment thread estate/views/estate_property_views.xml Outdated
Comment on lines +53 to +55



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 empty lines.

Inconsistent formatting introduces unnecessary issues in the code
reviews and makes the estate module harder to read and maintain.

here we removed the unnecessay whitespace and formatting across
the property and offer models, menus, and views to keep the
implementation consistent with the expected coding conventions.

Chapter: 7
@Piyush11204 Piyush11204 changed the title Add initial Real Estate tutorial module 19.0 tutorials- Server framework 101 ( PIKRI ) Jul 20, 2026
@Piyush11204
Piyush11204 force-pushed the 19-tutorial-pikri branch 3 times, most recently from 912875e to 3897a20 Compare July 21, 2026 08:58
@Piyush11204

Copy link
Copy Markdown
Author

Hello @Piyush11204 Good Start!

First, can you please improve all your commit titles and add the message as well? And you have left many unneccary empty lines.

Also, improve the PR title and description.

Thanks

Hello Sir,

Thank you for reviewing my PR. I have fixed all the changes you suggested

  1. Updated the title and description for the PR.
  2. Added more detailed and clean commit messages.
  3. Removed all the unnecessary empty lines from the code.

Thank you.

Piyush11204 added a commit to odoo-dev/tutorials that referenced this pull request Jul 21, 2026
Clean up unnecessary whitespace and improve formatting across the
property and offer models, menus, and views.

This refactoring improves code readability and consistency without
changing any existing functionality or behavior.

Related PR: odoo#1355
Signed-off-by: Piyush Yadav<pikri@odoo.com>
@Piyush11204
Piyush11204 force-pushed the 19-tutorial-pikri branch 2 times, most recently from 8d9d8f9 to 53b1939 Compare July 24, 2026 07:39
To maintain the Strcture of the offer form and make sure to follow
the UI consistency in this model

Added the missing offer form view while keeping the property field
hidden, as offers are managed directly from their related property.

Chapter: 7
Always invisible fields need an explicit explanation in the view so
that their purpose is clear and the view passes the corresponding
validation checks.

Document why the property relation is intentionally kept invisible in
the offer form without changing its existing behavior.

Chapter: 7
The offer form needs to keep the property relation hidden while making
its purpose explicit for view validation.

This keeps the existing offer behavior unchanged while satisfying the
expected view conventions.

Chapter: 7
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