-
Notifications
You must be signed in to change notification settings - Fork 2.9k
[ADD] estate: create new estate module manifest #1120
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: 19.0
Are you sure you want to change the base?
Conversation
Initial commit of my technical onboarding exercises, corresponding to chapters 1 and 2 of server framework 101. Initialisation of a new module named 'estate'.
artn-odoo
left a comment
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.
All good so far, just a small styling issue to be fixed but you can change it on future commits
Creation of the estate module's basic property data model. This corresponds to chapter 3 of the functional onboarding exercise.
Added all permission for group_user to view the estate property data. This corresponds to chapter 4 of the technical onboarding exercise.
Added proper menus to edit estate properties, and the appropraite restriction on field edition. This corresponds to chapter 5 of the functional onboarding.
Added list and form views, as well as search filters for estate property model. This corresponds to chapter 6 of the technical onboarding exercise.
artn-odoo
left a comment
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.
Nice one, just some small styling nitpicks.
Added property offer, type and tag models to flesh out the property descriptions and track potential buyers. This corresponds to chapter 7 of the functional onboarding exercise.
Added update logic to set related fields when editing estate property record to reduce busywork. This corresponds to chapter 8 of the functional onboarding exercise.
Added buttons to manage offer status seamlessly. This corresponds to chapter 9 of the functional onboarding exercise.
Added constraints to prevent invalid amounts and duplicate tag names from being entered in the database. This corresponds to chapter 1à of the functional onboarding exercise.
Added color and widgets to make menus more intuitive. This corresponds to chapter 11 of the functional onboarding exercise.
Linked the properties to the salesman user and updated the user view to contain the list of relevant properties. This corresponds to chapter 12 of the functional onboarding exercise.
Added a link module between estate and account that allows automatic generation of invoices when a property is sold through estate. This corresponds to chapter 13 of the functional onboarding exercise.
Added a kanban view to organize property management by type and display the relevant pricing information. This corresponds to chapter 14 of the functional onboarding exercise.
artn-odoo
left a comment
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.
Nice one, you could try to amend your last commit to apply those changes if you feel like it. Good luck with the JS
| expected_price = fields.Float(required=True) | ||
| selling_price = fields.Float(readonly=True, copy=False) | ||
| bedrooms = fields.Integer(default=2) | ||
| living_area = fields.Integer(string="Living Area (sqm)") |
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.
You don't have to change all of it at this point but we usually prefer to use simple quotes in Python files
| state = fields.Selection(required=True, default="new", copy=False, string="status", | ||
| selection=[ | ||
| ('new', 'New'), | ||
| ('offer_received', 'Offer Received'), | ||
| ('offer_accepted', 'Offer Accepted'), | ||
| ('sold', 'Sold'), | ||
| ('cancelled', 'Cancelled') | ||
| ], | ||
| ) |
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.
| state = fields.Selection(required=True, default="new", copy=False, string="status", | |
| selection=[ | |
| ('new', 'New'), | |
| ('offer_received', 'Offer Received'), | |
| ('offer_accepted', 'Offer Accepted'), | |
| ('sold', 'Sold'), | |
| ('cancelled', 'Cancelled') | |
| ], | |
| ) | |
| state = fields.Selection( | |
| required=True, | |
| default="new", | |
| copy=False, | |
| string="status", | |
| selection=[ | |
| ('new', 'New'), | |
| ('offer_received', 'Offer Received'), | |
| ('offer_accepted', 'Offer Accepted'), | |
| ('sold', 'Sold'), | |
| ('cancelled', 'Cancelled') | |
| ], | |
| ) |
| property_ids = fields.One2many("estate.property", "salesman_id", string="Real Estate Properties", | ||
| domain=['|', ('state', '=', 'new'), ('state', '=', 'offer_received')]) |
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.
I would either leave it in one line or break it down on multiple lines where each parameter is on it's own line
| property_ids = fields.One2many("estate.property", "salesman_id", string="Real Estate Properties", | |
| domain=['|', ('state', '=', 'new'), ('state', '=', 'offer_received')]) | |
| property_ids = fields.One2many( | |
| "estate.property", | |
| "salesman_id", | |
| string="Real Estate Properties", | |
| domain=['|', ('state', '=', 'new'), ('state', '=', 'offer_received')] | |
| ) |
Created new OWL components Counter and Card and connected them via props to the parent playground. This corresponds to parts 1-6 of chapter 1 of the web tutorial.
Added a todo list composed of task as well as the necessary logic and interface needed to manage the addition, removal and completion of tasks. This corresponds to parts 7-11 of chapter 1 of the web framework tutorial.
Allows the card body to contain template components and added a button to toggle visibility of the body. This corresponds to parts 13-14 of chapter 1 of the web framework tutorial.

Initial commit of my technical onboarding exercises, corresponding to chapters 1 and 2 of server framework 101.
Initialization of a new module named 'estate'.