Skip to content

19.0 tutorials mekav#1095

Draft
mekav-odoo wants to merge 14 commits intoodoo:19.0from
odoo-dev:19.0-tutorials-mekav
Draft

19.0 tutorials mekav#1095
mekav-odoo wants to merge 14 commits intoodoo:19.0from
odoo-dev:19.0-tutorials-mekav

Conversation

@mekav-odoo
Copy link

@mekav-odoo mekav-odoo commented Jan 1, 2026

Module: Estate

Initialized the estate module for Odoo Technical Training. This includes the base model definitions, security access rights, and the initial user interface as outlined in the tutorial steps.

@robodoo
Copy link

robodoo commented Jan 1, 2026

Pull request status dashboard

added fist tale in ch-3 and security (permission rule for group) in ch-4
and start ch-5 , in that add views file
complete field, attribute , view in ch-5 and list and form in ch-6
@mekav-odoo mekav-odoo force-pushed the 19.0-tutorials-mekav branch from c936ac4 to 6b0b9b8 Compare January 2, 2026 06:39
Copy link

@mash-odoo mash-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 @mekav-odoo,
Good work on the PR.
Please have a look at my comments and apply the needed changes.

Copy link

@mash-odoo mash-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,
Good Work going..
Here are some suggestions and questions..

Comment on lines 40 to 43
("north", "North"),
("south", "South"),
("east", "East"),
("west", "West"),

Choose a reason for hiding this comment

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

Use lower case for keys

@mekav-odoo mekav-odoo force-pushed the 19.0-tutorials-mekav branch from 4275261 to 9821fb8 Compare January 9, 2026 04:52
implement statusbar widget, in List order model ordering & manual ordering and
in form Attributes and options
add Attributes and options in List ,  default filter , filter domain in
search and  stat button
done implementation of  model inheritance & view inheritance to display the list
 of properties linked to a salesperson directly in the Settings / Users form
 view and implemented  ondelete() and create() functions.
Copy link

@mash-odoo mash-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!
Good going on the task..
Here are a few questions and suggestions..

@mekav-odoo mekav-odoo force-pushed the 19.0-tutorials-mekav branch from 8950231 to cf4ba1f Compare January 19, 2026 09:05
create new view 'kanban' , added some permanent fields and conditional visible
fields, set attributes for grouped properties by type by default
…onents

Added reactive Counter component with props and callbacks
Extracted reusable sub-components and implemented props validation
Implemented Card component with markup support and slots
Built TodoList and TodoItem components with add, toggle, and delete features
Used Owl hooks, refs, dynamic attributes, and lifecycle patterns
Use Layout component with control panel
Add quick navigation buttons (Customers, Leads)
Add dashboard item component with responsive sizing
Fetch and display statistics via rpc
From ch-2 of web framework
… to 8)

Add statistics service with memoized rpc calls
Periodically refresh statistics using reactive state
Display sales distribution using a Chart.js pie chart
Lazy load dashboard assets using LazyComponent
Copy link

@mash-odoo mash-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!
Thank you for your work..
And good progress overall..
Here are some questions and comments!


name = fields.Char(required=True)
description = fields.Text()
postcode = fields.Char()

Choose a reason for hiding this comment

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

Do we really need the Char datatype here?

id="property_mail_send_primary"
name="action_sold_mail_send"
type="object"
context="{'validate_analytic': True, 'check_document_layout': True}"

Choose a reason for hiding this comment

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

Explain the usage of this context

type="object"
context="{'validate_analytic': True, 'check_document_layout': True}"
class="btn-primary"
data-hotkey="g"

Choose a reason for hiding this comment

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

What is hotkey used for?

</div>
<div class="text-muted">
<div>Expected Price:<field name="expected_price"/></div>
<div t-if="record.state.raw_value == 'offer_received'">Best Offer:<field name="best_price"/></div>

Choose a reason for hiding this comment

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

Why do we need to write raw_value?

<field name="name">Estate Property: Sold Confirmation</field>
<field name="model_id" ref="estate.model_estate_property"/>
<field name="subject">Offer Accepted: {{ object.name }}</field>

Choose a reason for hiding this comment

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

Suggested change

You can remove unnecessary spaces from the entire file and keep a clean file

… 9 & 10)

- Defining a standard structure for dashboard items (NumberCard and
  PieChartCard).
- Updating the dashboard template to use a t-foreach loop with
  dynamic Owl components (t-component) and props.
- Implementing a registry-based system to manage these items.
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