Pada Odoo 17 ada perubahan pada atribut attrs state name_get. Kita dapat melihat penjelasannya pada youtube mengenai apa yang berubah mengenai ORM pada Odoo 17 yang dapat dilihat pada https://www.youtube.com/watch?v=Fmr4JBzlDyY .
Jika kita menggunakan pemrograman dengan style yang lama mungkin kita akan mengakami error
1 2 | Since 17.0, the "attrs" and "states" attributes are no longer used. View: estate.property.form in estate/views/estate_property_views.xml |
Perubahan attrs, state, dan name_get pada Odoo 17 adalah seperti penjelasan-penjelasan berikut ini
- Perubahan atribut attrs
- Perubahan atribut states
- Perubahan name_get
- Dengan demikian ada perubahan pada estate_property_views.xml menjadi
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<odoo>
<record id=
"estate_property_view_form"
model=
"ir.ui.view"
>
<field name=
"name"
>estate.property.form</field>
<field name=
"model"
>estate.property</field>
<field name=
"arch"
type=
"xml"
>
<form>
<header>
<button name=
"action_sold"
type=
"object"
string=
"Sold"
invisible=
"state not in ('new','offer_received')"
/>
<button name=
"action_sold"
type=
"object"
string=
"Sold"
invisible=
"state != 'offer_accepted'"
class
=
"oe_highlight"
/>
<button name=
"action_cancel"
type=
"object"
string=
"Cancel"
invisible=
"state not in ('new','offer_received','offer_accepted')"
/>
<field name=
"state"
widget=
"statusbar"
statusbar_visible=
"new,offer_received,offer_accepted,sold"
/>
</header>
<sheet>
<div
class
=
"oe_title"
>
<h1>
<field name=
"name"
/>
</h1>
<field name=
"tag_ids"
widget=
"many2many_tags"
options=
"{'color_field': 'color'}"
/>
</div>
<group>
<group>
<field name=
"property_type_id"
options=
"{'no_create': True, 'no_edit': True}"
/>
<field name=
"postcode"
/>
<field name=
"date_availability"
/>
</group>
<group>
<field name=
"expected_price"
/>
<field name=
"best_price"
/>
<field name=
"selling_price"
/>
</group>
</group>
<notebook>
<page string=
"Description"
>
<group>
<group>
<field name=
"description"
/>
<field name=
"bedrooms"
/>
<field name=
"living_area"
/>
<field name=
"facades"
/>
<field name=
"garage"
/>
<field name=
"garden"
/>
<field name=
"garden_area"
invisible=
"garden == False"
/>
<field name=
"garden_orientation"
invisible=
"garden == False"
/>
<field name=
"total_area"
/>
</group>
</group>
</page>
<page string=
"Offers"
>
<field name=
"offer_ids"
readonly=
"state in ('offer_accepted', 'sold', 'canceled')"
/>
</page>
<page string=
"Other Info"
>
<group>
<group>
<field name=
"user_id"
/>
<field name=
"buyer_id"
/>
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id=
"estate_property_view_tree"
model=
"ir.ui.view"
>
<field name=
"name"
>estate.property.tree</field>
<field name=
"model"
>estate.property</field>
<field name=
"arch"
type=
"xml"
>
<tree string=
"Properties"
decoration-success=
"state in ('offer_received', 'offer_accepted')"
decoration-muted=
"state == 'sold'"
decoration-bf=
"state == 'offer_accepted'"
>
<field name=
"name"
/>
<field name=
"property_type_id"
/>
<field name=
"postcode"
/>
<field name=
"tag_ids"
widget=
"many2many_tags"
options=
"{'color_field': 'color'}"
/>
<field name=
"bedrooms"
/>
<field name=
"living_area"
/>
<field name=
"expected_price"
/>
<field name=
"selling_price"
/>
<field name=
"date_availability"
optional=
"hide"
/>
<field name=
"state"
invisible=
"1"
/>
</tree>
</field>
</record>
<record id=
"estate_property_view_search"
model=
"ir.ui.view"
>
<field name=
"name"
>estate.property.search</field>
<field name=
"model"
>estate.property</field>
<field name=
"arch"
type=
"xml"
>
<search>
<field name=
"name"
/>
<field name=
"property_type_id"
/>
<field name=
"postcode"
/>
<field name=
"expected_price"
/>
<field name=
"bedrooms"
/>
<field name=
"living_area"
filter_domain=
"[('living_area', '>=', self)]"
/>
<field name=
"facades"
/>
<field name=
"garage"
/>
<field name=
"garden"
/>
<filter string=
"Available"
name=
"available"
domain=
"[('state', 'in', ('new', 'offer_received'))]"
/>
<group expand=
"1"
string=
"Group By"
>
<filter string=
"Postcode"
name=
'postcode'
context=
"{'group_by':'postcode'}"
/>
</group>
</search>
</field>
</record>
<record id=
"estate_property_view_kanban"
model=
"ir.ui.view"
>
<field name=
"name"
>estate.property.kanban</field>
<field name=
"model"
>estate.property</field>
<field name=
"arch"
type=
"xml"
>
<kanban default_group_by=
"property_type_id"
records_draggable=
"0"
>
<field name=
"state"
/>
<templates>
<t t-name=
"kanban-box"
>
<div
class
=
"oe_kanban_global_click"
>
<div>
<strong
class
=
"o_kanban_record_title"
>
<field name=
"name"
/>
</strong>
</div>
<div>
Expected Price: <field name=
"expected_price"
/>
</div>
<div t-
if
=
"record.state.raw_value == 'offer_received'"
>
Best Offer: <field name=
"best_price"
/>
</div>
<div t-
if
=
"record.selling_price.raw_value"
>
Selling Price: <field name=
"selling_price"
/>
</div>
<field name=
"tag_ids"
widget=
"many2many_tags"
options=
"{'color_field': 'color'}"
/>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id=
"estate_property_action"
model=
"ir.actions.act_window"
>
<field name=
"name"
>Properties</field>
<field name=
"res_model"
>estate.property</field>
<field name=
"view_mode"
>tree,kanban,form</field>
<field name=
"context"
>{
'search_default_available'
: 1}</field>
<field name=
"help"
type=
"html"
>
<p
class
=
"o_view_nocontent_smiling_face"
>
Create a property advertisement
</p>
<p>
Create real estate properties
and
follow the selling process.
</p>
</field>
</record>
</odoo>
- Perubahan estate_property_offer_views.xml menjadi
123456789101112131415161718192021222324252627282930313233343536
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<odoo>
<record id=
"estate_property_offer_view_form"
model=
"ir.ui.view"
>
<field name=
"name"
>estate.property.offer.form</field>
<field name=
"model"
>estate.property.offer</field>
<field name=
"arch"
type=
"xml"
>
<form string=
"Property Offer"
>
<group>
<field name=
"price"
/>
<field name=
"partner_id"
/>
</group>
</form>
</field>
</record>
<record id=
"estate_property_offer_view_tree"
model=
"ir.ui.view"
>
<field name=
"name"
>estate.property.offer.tree</field>
<field name=
"model"
>estate.property.offer</field>
<field name=
"arch"
type=
"xml"
>
<tree string=
"Property Offers"
editable=
"bottom"
decoration-success=
"state == 'accepted'"
decoration-danger=
"state == 'refused'"
>
<field name=
"price"
/>
<field name=
"partner_id"
/>
<field name=
"validity"
/>
<field name=
"date_deadline"
/>
<button name=
"action_accept"
type=
"object"
title=
"Accept"
icon=
"fa-check"
invisible=
"state != False"
/>
<button name=
"action_refuse"
type=
"object"
title=
"Refuse"
icon=
"fa-times"
invisible=
"state != False"
/>
<field name=
"state"
invisible=
"1"
/>
</tree>
</field>
</record>
<record id=
"estate_property_offer_action"
model=
"ir.actions.act_window"
>
<field name=
"name"
>Property Offers</field>
<field name=
"res_model"
>estate.property.offer</field>
<field name=
"domain"
>[(
'property_type_id'
,
'='
, active_id)]</field>
<field name=
"view_mode"
>tree,form</field>
</record>
</odoo>
Kunjungi www.proweb.co.id/implementasi-odoo/ untuk menambah wawasan implementasi Odoo ERP.