-
Notifications
You must be signed in to change notification settings - Fork 2.2k
18.0 tutorial importable modules aras #811
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: 18.0
Are you sure you want to change the base?
Changes from all commits
f37f7e8
a020848
cbbf69f
308ddb2
60c281c
6c1dc9a
3855227
d70d365
a9cb5f0
6aa6dc0
271bb4f
bf210ff
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
{ | ||
'name': 'Estate', | ||
'version': '1.0', | ||
'category': 'Estate', | ||
'summary': 'Tutorial module', | ||
'depends': [ | ||
'website' | ||
], | ||
'data': [ | ||
'data/estate_models.xml', | ||
'data/estate_property_type.xml', | ||
'data/estate_property_tag.xml', | ||
'data/estate_property_offer.xml', | ||
'data/estate_property.xml', | ||
'views/estate_property_views.xml', | ||
'views/estate_property_type_views.xml', | ||
'views/estate_property_tag_views.xml', | ||
'views/estate_property_offer_views.xml', | ||
'views/estate_menus.xml', | ||
'controllers/estate_controller.xml', | ||
'security/ir.model.access.csv', | ||
'security/estate_security.xml', | ||
'data/estate_tour.xml', | ||
], | ||
"assets": { | ||
"web.assets_backend": [ | ||
"estate/static/src/js/tour.js", | ||
], | ||
}, | ||
'license': 'OEEL-1', | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
|
||
<odoo> | ||
<record id="server_action_estate_list" model="ir.actions.server"> | ||
<field name="name">Estate List Controller</field> | ||
<field name="model_id" ref="estate.model_estate_property"/> | ||
<field name="website_published">True</field> | ||
<field name="website_path">estate</field> | ||
<field name="state">code</field> | ||
<field name="code"><![CDATA[ | ||
html = '<html><body><h1>Properties</h1><ul>' | ||
for property in request.env['x_estate.property'].search([]): | ||
html += f'<li>{property.x_name}</li>' | ||
html += '</ul></body></html>' | ||
response = request.make_response(html) | ||
]]></field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<odoo> | ||
<record id="model_estate_property" model="ir.model"> | ||
<field name="name">Estate Property</field> | ||
<field name="model">x_estate.property</field> | ||
</record> | ||
|
||
<record id="model_estate_property_type" model="ir.model"> | ||
<field name="name">Property Type</field> | ||
<field name="model">x_estate.property.type</field> | ||
</record> | ||
|
||
<record id="model_estate_property_tag" model="ir.model"> | ||
<field name="name">Property Tag</field> | ||
<field name="model">x_estate.property.tag</field> | ||
</record> | ||
|
||
<record id="model_estate_property_offer" model="ir.model"> | ||
<field name="name">Property Offer</field> | ||
<field name="model">x_estate.property.offer</field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,191 @@ | ||||||
<?xml version="1.0" encoding="utf-8"?> | ||||||
<odoo> | ||||||
<record id="field_estate_property_name" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_name</field> | ||||||
<field name="field_description">Name</field> | ||||||
<field name="ttype">char</field> | ||||||
<field name="required">True</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_selling_price" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_selling_price</field> | ||||||
<field name="field_description">Selling Price</field> | ||||||
<field name="ttype">float</field> | ||||||
<field name="required">True</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_description" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_description</field> | ||||||
<field name="field_description">Description</field> | ||||||
<field name="ttype">html</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_postcode" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_postcode</field> | ||||||
<field name="field_description">Postcode</field> | ||||||
<field name="ttype">char</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_date_availability" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_date_availability</field> | ||||||
<field name="field_description">Date Availability</field> | ||||||
<field name="ttype">date</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_expected_price" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_expected_price</field> | ||||||
<field name="field_description">Expected Price</field> | ||||||
<field name="ttype">float</field> | ||||||
<field name="required">True</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_bedrooms" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_bedrooms</field> | ||||||
<field name="field_description">Bedrooms</field> | ||||||
<field name="ttype">integer</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_living_area" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_living_area</field> | ||||||
<field name="field_description">Living Area</field> | ||||||
<field name="ttype">integer</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_facades" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_facades</field> | ||||||
<field name="field_description">Facades</field> | ||||||
<field name="ttype">integer</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_garage" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_garage</field> | ||||||
<field name="field_description">Garage</field> | ||||||
<field name="ttype">boolean</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_garden" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_garden</field> | ||||||
<field name="field_description">Garden</field> | ||||||
<field name="ttype">boolean</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_garden_area" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_garden_area</field> | ||||||
<field name="field_description">Garden Area</field> | ||||||
<field name="ttype">integer</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_garden_orientation" model="ir.model.fields"> | ||||||
<field name="model_id" ref="model_estate_property" /> | ||||||
<field name="name">x_garden_orientation</field> | ||||||
<field name="field_description">Garden Orientation</field> | ||||||
<field name="ttype">selection</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_garden_orientation_north" model="ir.model.fields.selection"> | ||||||
<field name="field_id" ref="field_estate_property_garden_orientation" /> | ||||||
<field name="name">North</field> | ||||||
<field name="value">north</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_garden_orientation_south" model="ir.model.fields.selection"> | ||||||
<field name="field_id" ref="field_estate_property_garden_orientation" /> | ||||||
<field name="name">South</field> | ||||||
<field name="value">south</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_garden_orientation_east" model="ir.model.fields.selection"> | ||||||
<field name="field_id" ref="field_estate_property_garden_orientation" /> | ||||||
<field name="name">East</field> | ||||||
<field name="value">east</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_garden_orientation_west" model="ir.model.fields.selection"> | ||||||
<field name="field_id" ref="field_estate_property_garden_orientation" /> | ||||||
<field name="name">West</field> | ||||||
<field name="value">west</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_proprty_type_id" model="ir.model.fields"> | ||||||
<field name="model_id" ref="estate.model_estate_property" /> | ||||||
<field name="name">x_property_type_id</field> | ||||||
<field name="field_description">Type</field> | ||||||
<field name="ttype">many2one</field> | ||||||
<field name="relation">x_estate.property.type</field> | ||||||
<field name="required">True</field> | ||||||
<field name="on_delete">restrict</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_partner_id" model="ir.model.fields"> | ||||||
<field name="model_id" ref="estate.model_estate_property" /> | ||||||
<field name="name">x_partner_id</field> | ||||||
<field name="field_description">Buyer</field> | ||||||
<field name="ttype">many2one</field> | ||||||
<field name="relation">res.partner</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_user_id" model="ir.model.fields"> | ||||||
<field name="model_id" ref="estate.model_estate_property" /> | ||||||
<field name="name">x_user_id</field> | ||||||
<field name="field_description">Salesperson</field> | ||||||
<field name="ttype">many2one</field> | ||||||
<field name="relation">res.partner</field> | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Salesperson is a user, no? |
||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_tag_ids" model="ir.model.fields"> | ||||||
<field name="model_id" ref="estate.model_estate_property" /> | ||||||
<field name="name">x_property_tag_ids</field> | ||||||
<field name="field_description">Tags</field> | ||||||
<field name="ttype">many2many</field> | ||||||
<field name="relation">x_estate.property.tag</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_offer_ids" model="ir.model.fields"> | ||||||
<field name="model_id" ref="estate.model_estate_property" /> | ||||||
<field name="name">x_property_offer_ids</field> | ||||||
<field name="field_description">Offers</field> | ||||||
<field name="ttype">one2many</field> | ||||||
<field name="relation">x_estate.property.offer</field> | ||||||
<field name="relation_field">x_property_id</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_total_area" model="ir.model.fields"> | ||||||
<field name="model_id" ref="estate.model_estate_property" /> | ||||||
<field name="name">x_total_area</field> | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you need to store that field? |
||||||
<field name="field_description">Total Area</field> | ||||||
<field name="ttype">float</field> | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since both areas are integers, you may want to stick with integers
Suggested change
|
||||||
<field name="depends">x_living_area,x_garden_area</field> | ||||||
<field name="compute"><![CDATA[ | ||||||
for property in self: | ||||||
property['x_total_area'] = property.x_living_area + property.x_garden_area | ||||||
]]></field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_country_id" model="ir.model.fields"> | ||||||
<field name="model_id" ref="estate.model_estate_property" /> | ||||||
<field name="name">x_country_id</field> | ||||||
<field name="field_description">Buyer's Country</field> | ||||||
<field name="ttype">many2one</field> | ||||||
<field name="relation">res.country</field> | ||||||
<field name="related">x_partner_id.country_id</field> | ||||||
</record> | ||||||
|
||||||
<record id="field_estate_property_api_published" model="ir.model.fields"> | ||||||
<field name="model_id" ref="estate.model_estate_property" /> | ||||||
<field name="name">x_api_published</field> | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Did you find out how to set a default value for this field? |
||||||
<field name="field_description">Api Published</field> | ||||||
<field name="ttype">boolean</field> | ||||||
</record> | ||||||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
|
||
<odoo> | ||
<record id="field_estate_property_offer_price" model="ir.model.fields"> | ||
<field name="model_id" ref="model_estate_property_offer" /> | ||
<field name="name">x_price</field> | ||
<field name="field_description">Price</field> | ||
<field name="ttype">float</field> | ||
<field name="required">True</field> | ||
</record> | ||
|
||
<record id="field_estate_property_offer_status" model="ir.model.fields"> | ||
<field name="model_id" ref="model_estate_property_offer" /> | ||
<field name="name">x_status</field> | ||
<field name="field_description">Status</field> | ||
<field name="ttype">selection</field> | ||
</record> | ||
|
||
<record id="field_estate_property_status_accepted" model="ir.model.fields.selection"> | ||
<field name="field_id" ref="field_estate_property_offer_status" /> | ||
<field name="name">Accepted</field> | ||
<field name="value">accepted</field> | ||
</record> | ||
|
||
<record id="field_estate_property_status_refused" model="ir.model.fields.selection"> | ||
<field name="field_id" ref="field_estate_property_offer_status" /> | ||
<field name="name">Refused</field> | ||
<field name="value">refused</field> | ||
</record> | ||
|
||
<record id="field_estate_property_offer_partner_id" model="ir.model.fields"> | ||
<field name="model_id" ref="model_estate_property_offer" /> | ||
<field name="name">x_partner_id</field> | ||
<field name="field_description">Buyer</field> | ||
<field name="ttype">many2one</field> | ||
<field name="relation">res.partner</field> | ||
<field name="required">True</field> | ||
<field name="on_delete">cascade</field> | ||
</record> | ||
|
||
<record id="field_estate_property_offer_property_id" model="ir.model.fields"> | ||
<field name="model_id" ref="model_estate_property_offer" /> | ||
<field name="name">x_property_id</field> | ||
<field name="field_description">Property</field> | ||
<field name="ttype">many2one</field> | ||
<field name="relation">x_estate.property</field> | ||
<field name="required">True</field> | ||
<field name="on_delete">cascade</field> | ||
</record> | ||
|
||
<record id="action_estate_property_offer_accept" model="ir.actions.server"> | ||
<field name="model_id" ref="model_estate_property_offer"/> | ||
<field name="name">x_action_accept_offer</field> | ||
<field name="state">code</field> | ||
<field name="code"><![CDATA[ | ||
for offer in records: | ||
offer.write({'x_status': 'accepted'}) | ||
offer.x_property_id.write({'x_selling_price': offer.x_price, 'x_partner_id': offer.x_partner_id}) | ||
for rejected_offer in offer.x_property_id.x_property_offer_ids: | ||
if rejected_offer != offer: | ||
rejected_offer.write({'x_status': 'refused'}) | ||
Comment on lines
+56
to
+61
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok, but what if you accept two offers for the same property? It seems like only one will be accepted, but it is kind of magic, no? Shouldn't we take more care (and maybe raise in such cases)? |
||
]]></field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
|
||
<odoo> | ||
<record id="field_estate_property_tag_name" model="ir.model.fields"> | ||
<field name="model_id" ref="model_estate_property_tag" /> | ||
<field name="name">x_name</field> | ||
<field name="field_description">Name</field> | ||
<field name="ttype">char</field> | ||
<field name="required">True</field> | ||
</record> | ||
|
||
<record id="field_estate_property_tag_color" model="ir.model.fields"> | ||
<field name="model_id" ref="model_estate_property_tag" /> | ||
<field name="name">x_color</field> | ||
<field name="field_description">Color</field> | ||
<field name="ttype">integer</field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
|
||
<odoo> | ||
<record id="field_estate_property_type_name" model="ir.model.fields"> | ||
<field name="model_id" ref="model_estate_property_type" /> | ||
<field name="name">x_name</field> | ||
<field name="field_description">Name</field> | ||
<field name="ttype">char</field> | ||
<field name="required">True</field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
|
||
<odoo> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. User probably don't want this tour to show up anytime they upgrade, so setting this as noupdate seems appropriate |
||
<record id="estate_tour" model="web_tour.tour"> | ||
<field name="name">estate_tour</field> | ||
<field name="sequence">2</field> | ||
<field name="rainbow_man_message">Welcome! Happy exploring.</field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change | ||
---|---|---|---|---|
@@ -0,0 +1,20 @@ | ||||
<?xml version="1.0" encoding="utf-8"?> | ||||
<odoo> | ||||
<record id="estate_property_public_public_write_record_rule" model="ir.rule"> | ||||
<field name="name">Public user write rule</field> | ||||
<field name="model_id" ref="model_estate_property"/> | ||||
<field name="domain_force">[('id','=',False)]</field> | ||||
<field name="groups" eval="[(4, ref('base.group_public'))]"/> | ||||
<field name="perm_write" eval="False"/> | ||||
<field name="active" eval="True"/> | ||||
</record> | ||||
|
||||
<record id="estate_property_public_read_record_rule" model="ir.rule"> | ||||
<field name="name">Public user read rule</field> | ||||
<field name="model_id" ref="model_estate_property"/> | ||||
<field name="domain_force">[('x_api_published','=',True)]</field> | ||||
<field name="groups" eval="[(4, ref('base.group_public'))]"/> | ||||
<field name="perm_read" eval="True"/> | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. By default the rule applies to all perm_* fields, so this one is not mandatory (and somehow misleading, because you are giving other rights too)
Suggested change
|
||||
<field name="active" eval="True"/> | ||||
</record> | ||||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink | ||
access_x_estate_property,access_x_estate_property,model_estate_property,base.group_user,1,1,1,1 | ||
access_x_estate_property_type,access_x_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1 | ||
access_x_estate_property_tag,access_x_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1 | ||
access_x_estate_property_offer,access_x_estate_property_offer,model_estate_property_offer,base.group_user,1,1,1,1 | ||
access_x_estate_property_public,access_x_estate_property_public,model_estate_property,base.group_public,1,1,0,0 |
Original file line number | Diff line number | Diff line change | ||
---|---|---|---|---|
@@ -0,0 +1,10 @@ | ||||
import { registry } from "@web/core/registry"; | ||||
|
||||
|
||||
registry.category("web_tour.tours").add('estate_tour', { | ||||
url: "/web", | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. url is now defined in the xml web_tour (and should point to /odoo). But since this is the default value, you don't have to :-)
Suggested change
|
||||
steps: () => [{ | ||||
trigger: '.o_app[data-menu-xmlid="estate.menu_root"]', | ||||
content: 'Start selling your properties from this app!', | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What if you want to translate the string here? |
||||
}], | ||||
}); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
|
||
<odoo> | ||
<menuitem id="estate_property_menu_root" name="Estate" > | ||
<menuitem id="advertisements_menu" name="Advertisements"> | ||
<menuitem id="properties_menu_action" name="Properties" action="estate_property_action"/> | ||
</menuitem> | ||
|
||
<menuitem id="settings_menu" name="Settings"> | ||
<menuitem id="property_type_menu_action" name="Property Types" action="estate_property_type_action"/> | ||
<menuitem id="property_tag_menu_action" name="Property Tags" action="estate_property_tag_action"/> | ||
</menuitem> | ||
</menuitem> | ||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
|
||
<odoo> | ||
<record id="estate_property_offer_action" model="ir.actions.act_window"> | ||
<field name="name">Property Offers</field> | ||
<field name="res_model">x_estate.property.offer</field> | ||
<field name="domain">[('x_property_type_id', '=', active_id)]</field> | ||
<field name="view_mode">list,form</field> | ||
</record> | ||
|
||
<record id="estate_property_offer_view_list" model="ir.ui.view"> | ||
<field name="name">x_estate.property.offer.list</field> | ||
<field name="model">x_estate.property.offer</field> | ||
<field name="arch" type="xml"> | ||
<list string="Offer" | ||
decoration-success="x_status == 'accepted'" | ||
decoration-danger="x_status == 'refused'" | ||
editable="top"> | ||
<field name="x_price"/> | ||
<field name="x_partner_id"/> | ||
<button name="estate.action_estate_property_offer_accept" type="action" icon="fa-check" string="Accept" invisible="x_status"/> | ||
</list> | ||
</field> | ||
</record> | ||
|
||
<record id="estate_property_offer_view_form" model="ir.ui.view"> | ||
<field name="name">x_estate.property.offer.form</field> | ||
<field name="model">x_estate.property.offer</field> | ||
<field name="arch" type="xml"> | ||
<form> | ||
<sheet> | ||
<group> | ||
<field name="x_price"/> | ||
<field name="x_partner_id"/> | ||
<field name="x_status"/> | ||
</group> | ||
</sheet> | ||
</form> | ||
</field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
|
||
<odoo> | ||
<record id="estate_property_tag_action" model="ir.actions.act_window"> | ||
<field name="name">Property Tags</field> | ||
<field name="res_model">x_estate.property.tag</field> | ||
<field name="view_mode">list</field> | ||
</record> | ||
|
||
<record id="estate_property_tag_view_list" model="ir.ui.view"> | ||
<field name="name">x_estate.property.tag.list</field> | ||
<field name="model">x_estate.property.tag</field> | ||
<field name="arch" type="xml"> | ||
<list string="Property" editable="top"> | ||
<field name="x_name"/> | ||
</list> | ||
</field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
|
||
<odoo> | ||
<record id="estate_property_type_action" model="ir.actions.act_window"> | ||
<field name="name">Property Types</field> | ||
<field name="res_model">x_estate.property.type</field> | ||
<field name="view_mode">list</field> | ||
</record> | ||
|
||
<record id="estate_property_type_view_list" model="ir.ui.view"> | ||
<field name="name">x_estate.property.type.list</field> | ||
<field name="model">x_estate.property.type</field> | ||
<field name="arch" type="xml"> | ||
<list string="Property" editable="top"> | ||
<field name="x_name"/> | ||
</list> | ||
</field> | ||
</record> | ||
</odoo> |
Original file line number | Diff line number | Diff line change | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,78 @@ | ||||||||||
<?xml version="1.0" encoding="UTF-8"?> | ||||||||||
|
||||||||||
<odoo> | ||||||||||
<record id="estate_property_action" model="ir.actions.act_window"> | ||||||||||
<field name="name">Estate Property</field> | ||||||||||
<field name="res_model">x_estate.property</field> | ||||||||||
<field name="view_mode">list,form</field> | ||||||||||
</record> | ||||||||||
|
||||||||||
<record id="estate_property_view_list" model="ir.ui.view"> | ||||||||||
<field name="name">x_estate.property.list</field> | ||||||||||
<field name="model">x_estate.property</field> | ||||||||||
<field name="arch" type="xml"> | ||||||||||
<list string="Property"> | ||||||||||
<field name="x_name"/> | ||||||||||
<field name="x_postcode"/> | ||||||||||
<field name="x_bedrooms"/> | ||||||||||
<field name="x_living_area"/> | ||||||||||
<field name="x_expected_price"/> | ||||||||||
<field name="x_selling_price"/> | ||||||||||
<field name="x_date_availability" optional="hide"/> | ||||||||||
</list> | ||||||||||
</field> | ||||||||||
</record> | ||||||||||
|
||||||||||
<record id="estate_property_view_form" model="ir.ui.view"> | ||||||||||
<field name="name">x_estate.property.form</field> | ||||||||||
<field name="model">x_estate.property</field> | ||||||||||
<field name="arch" type="xml"> | ||||||||||
<form string="Property"> | ||||||||||
<sheet> | ||||||||||
<group> | ||||||||||
<group> | ||||||||||
<field name="x_name"/> | ||||||||||
<field name="x_property_tag_ids" widget="many2many_tags" options="{'color_field': 'x_color'}"/> | ||||||||||
</group> | ||||||||||
<group> | ||||||||||
<field name="x_property_type_id" options="{'no_create': true}"/> | ||||||||||
<field name="x_postcode"/> | ||||||||||
<field name="x_expected_price"/> | ||||||||||
<field name="x_date_availability"/> | ||||||||||
<field name="x_selling_price"/> | ||||||||||
</group> | ||||||||||
</group> | ||||||||||
|
||||||||||
<notebook> | ||||||||||
<page string="Description"> | ||||||||||
<group> | ||||||||||
<field name="x_bedrooms"/> | ||||||||||
<field name="x_living_area"/> | ||||||||||
<field name="x_facades"/> | ||||||||||
<field name="x_garage"/> | ||||||||||
<field name="x_garden"/> | ||||||||||
<field name="x_garden_area" invisible="not x_garden"/> | ||||||||||
<field name="x_garden_orientation" invisible="not x_garden"/> | ||||||||||
<field name="x_total_area"/> | ||||||||||
</group> | ||||||||||
</page> | ||||||||||
|
||||||||||
<page string="Offers"> | ||||||||||
<group> | ||||||||||
<field name="x_property_offer_ids"/> | ||||||||||
</group> | ||||||||||
Comment on lines
+61
to
+63
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Probably better without a group here
Suggested change
|
||||||||||
</page> | ||||||||||
|
||||||||||
<page string="Other Info"> | ||||||||||
<group> | ||||||||||
<field name="x_partner_id"/> | ||||||||||
<field name="x_user_id"/> | ||||||||||
<field name="x_country_id"/> | ||||||||||
</group> | ||||||||||
</page> | ||||||||||
</notebook> | ||||||||||
</sheet> | ||||||||||
</form> | ||||||||||
</field> | ||||||||||
</record> | ||||||||||
</odoo> |
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.
ref
to an id of the same module works without having to specify the complete xmlidThis is not true when dealing with
env.ref