Skip to content

rhri - Technical Training #824

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

Open
wants to merge 26 commits into
base: 18.0
Choose a base branch
from
Open

Conversation

rhri-odoo
Copy link

Technical training for Technical Consultant role in Odoo Indonesia.

Kickstart development of a new real estate property management module by creating init and manifest file
Server Framework 101 Chapter 2
@robodoo
Copy link

robodoo commented Jun 19, 2025

Pull request status dashboard

@rhri-odoo rhri-odoo closed this Jun 19, 2025
@rhri-odoo rhri-odoo reopened this Jun 19, 2025
estate_property table contains information about properties (name, selling price, specs, etc.)
Server Framework 101 Chapter 3
created ir.model.access.csv
add access rights (read, write, create, unlink) for base.group_user on estate_property model
Server Framework 101 Chapter 4
@rhri-odoo rhri-odoo force-pushed the 18.0-training-rhri branch from a86daf1 to b28bb68 Compare June 19, 2025 04:40
rhri-odoo added 23 commits June 19, 2025 14:31
create menu to better navigate the estate module
create form to interact with estate property model
Server Framework 101 Chapter 5
…property

create list view to show more fields in estate property
create form view that group fields in estate property based on their context
create search view that has custom filters and group by
Server Framework 101 Chapter 6
…s model

Create property type model and linked it to property using Many2One
Create property tags model and linked it to property using Many2Many
Create property offers model and linked it to property using One2Many
Create views for property type, tags, and offers
Create salesman and buyer field in property which uses Many2One
Server Framework 101 Chapter 7
…perty offer

Created total area computed values using living area and garden area on property
Created deadline computed values using validity on property with its inverse function also
Created default values for garden area and orientation using onchanges for garden field on property
Server Framework 101 Chapter 8
Add sold property button to change property state to 'sold'
Add cancel property button to change property state to 'cancelled'
Add error handler for sold and cancel situation
Add accept & refuse button for property offer
Add automatic status change to other offers if an offer is accepted
Automatically configure selling price and buyer after an offer is accepted
Server Framework 101 Chapter 9
sql constraints are added to ensure that:
- a property expected price must be strictly positive
- a property selling price must be positive
- an offer price must be strictly positive
- a property tag and type name must be unique
python constraint is added to ensure that selling price cannot be lower than 90% of the expected price
Server Framework 101 Chapter 10
Add inline views for properties in property type
Add statusbar widget to show current property state
Add model records ordering
Add manual ordering option for property type
Prevent creation and edit of property type from property form view
Add color picker widget for property tag
Add conditional visibility for property header buttons 'Sold' and 'Cancel'
Add conditional visibility for garden area and orientation on property form
Add conditional visibility for accept and refuse button on property offer list
Do not allow another offer creation when property stage is offer accepted, sold, or cancelled
Make property offer and tag list views editable
Make date availability list view optional and hidden by default
Add decorations for property and property offer list view
Make available filter selected by default in property
Add filter_domain for living area search
Add stat buttons in property type to link it with property offers
Server Framework 101 Chapter 11
override unlink on property to prohibit new or cancelled property to be deleted
override create on property offer to automatically changed property stage
override create on property offer to prohibit creation of offer with lower price than current max offer
add property_ids to res.users via inheritance
add property_ids field to the base.view_users_form
Server Framework 101 Chapter 12
create estate_account module to link estate and account modules
inherit estate.property and override action_sell_property to generate invoice after sold
create invoice line with two items, 6% of the selling price and 100 admin fee
Server Framework 101 Chapter 13
create basic kanban view on property views with default group by property type
add simple styling on kanban card title and details
Server Framework 101 Chapter 14
rename xml ids and name
reordering method and field declaration on python
clean up code based on flake8 linter
Server Framework 101 Chapter 15
create sale_branch module
create sale_branch model and automate sequence creation
add new field in sale order which is branch id
override sale order creation to match name with branch id
create list and form view for sale branch
Case Study: Framework Knowledge
modify property offer creation to accomodate batch creation
change kanban-box to card because kanban-box is deprecated
add standard estate property type as master data using CSV
add estate property and offer demo data using XML
Onboarding Data(Module)
Add property offers report option from property views
Add conditions to not show tables on properties with no offers
Add property offers report based on salesman on users/companies menu
Add condition to add special field on sold properties using inheritance
Onboarding 3 : Report
… and contacts report

create a template report that displays table of selected contacts
inherit template reports to customize the invoice report
Case Study: Reports
…mponents

Implement counter element using component, subcomponent, and callback props
Implement card using component, props, slots, and event handler
Implement todolist using dynamic attributes, event handler, and hooks
Web Framework Chapter 1
create customers button that leads to customers kanban view
create leads button that leads to leads list and form view
create cards in the dashboard that display real life updated data
create pie chart that shows sales numbers
lazy load the dashboard items
create add and remove dashboard items feature
save the current config to browser
make responsive views
Web Framework Chapter 2
…tudy questions

add volume and weight field into product information tab by inheriting product_info_popup.xml and get_product_info_pos method
add remove button after control button by inheriting product_screen.xml and product_screen.js
add congratulary_text field in pos_config and adding it of order_receipt using inherit
Case Study: Javascript (PoS)
create two groups 'Agent' and 'Manager'
give full access to all objects to your Real Estate Manager group
give agents (real estate users) only read access to types and tags
give nobody the right to delete properties
make sure agent only can access properties they are assigned to or not assigned property
create security bypass for estate_account
make sure everyone only able to access property in their company
make settings invisible to user
create team leader groups which are able to create, write, and read any sales order done by his team member
team leader groups implies own documents only groups with additional record rules
Case Study : Data Access
…ffer

update code so no one can create an offer for a sold property and sell property with no accepted offer
add unit test for sell property action and create property offer
add unit test for onchange garden in estate property using odoo.test.form
Onboarding Chapter 7: Unit Testing
these access rights are only used for dev purposes
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.

2 participants