diff --git a/estate/__init__.py b/estate/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/estate/__manifest__.py b/estate/__manifest__.py new file mode 100644 index 00000000000..0897eef58e3 --- /dev/null +++ b/estate/__manifest__.py @@ -0,0 +1,22 @@ +{ + "name": "Estate Tutorial", + "author": "joemo", + "license": "LGPL-3", + "application": True, + "depends": ["base", "base_import_module", "website"], + "data": [ + "models/estate_property_type.xml", + "models/estate_property_tag.xml", + "models/estate_property.xml", + "models/estate_property_offer.xml", + "security/ir.model.access.csv", + "security/record_rules.xml", + "views/estate_property_offer_views.xml", + "views/estate_property_type_views.xml", + "views/estate_property_tag_views.xml", + "views/estate_property_views.xml", + "views/estate_menus.xml", + "controllers/estate_property_controllers.xml", + "data/x_estate.property.type.csv", + ] +} diff --git a/estate/controllers/estate_property_controllers.xml b/estate/controllers/estate_property_controllers.xml new file mode 100644 index 00000000000..c39d2f4de99 --- /dev/null +++ b/estate/controllers/estate_property_controllers.xml @@ -0,0 +1,18 @@ + + + Estate List Controller + + True + estate + code + +

Properties

    ' +for property in request.env['x_estate.property'].search([]): + html += f'
  • {property.x_name}
  • ' +html += '
' +response = request.make_response(html) + ]]> +
+
+
diff --git a/estate/data/x_estate.property.type.csv b/estate/data/x_estate.property.type.csv new file mode 100644 index 00000000000..65d31587c5a --- /dev/null +++ b/estate/data/x_estate.property.type.csv @@ -0,0 +1,5 @@ +id,x_name +property_type_0,Residential +property_type_1,Commercial +property_type_2,Industrial +property_type_3,Land diff --git a/estate/models/estate_property.xml b/estate/models/estate_property.xml new file mode 100644 index 00000000000..9ec6f92983c --- /dev/null +++ b/estate/models/estate_property.xml @@ -0,0 +1,178 @@ + + + Estate Property + x_estate.property + + + + + x_name + Name + char + true + + + + + x_selling_price + Selling Price + float + + + + + x_description + Description + html + + + + + x_postcode + Postcode + char + + + + + x_date_available + Date available + date + + + + + x_expected_price + Expected price + float + true + + + + + x_bedrooms + Bedrooms + integer + + + + + x_living_area + Living area + integer + + + + + x_facades + Facades + integer + + + + + x_garage + Garage + boolean + + + + + x_garden + Garden + boolean + + + + + x_garden_area + Garden area + integer + + + + + x_garden_orientation + Garden orientation + selection + + + + + North + north + + + + + South + south + + + + + East + east + + + + + West + west + + + + + x_property_type_id + Property Type + many2one + x_estate.property.type + True + restrict + + + + + x_partner_id + Buyer + many2one + res.partner + + + + + x_user_id + Salesperson + many2one + res.users + + + + + x_property_tag_ids + Property Tags + many2many + x_estate.property.tag + + + + + x_total_area + Total Area + integer + x_living_area,x_garden_area + + + + + + + x_api_published + Api Published + boolean + + + diff --git a/estate/models/estate_property_offer.xml b/estate/models/estate_property_offer.xml new file mode 100644 index 00000000000..ee127343623 --- /dev/null +++ b/estate/models/estate_property_offer.xml @@ -0,0 +1,63 @@ + + + Estate Property Offer + x_estate.property.offer + + + + + x_price + Price + float + True + + + + x_status + Status + selection + + + + + + Accepted + accepted + + + + Refused + refused + + + + + x_partner_id + Buyer + many2one + res.partner + True + restrict + + + + + x_property_id + Property + many2one + x_estate.property + True + restrict + + + + + + x_offer_ids + Property Offers + one2many + x_estate.property.offer + x_property_id + + + diff --git a/estate/models/estate_property_tag.xml b/estate/models/estate_property_tag.xml new file mode 100644 index 00000000000..1564d91ff55 --- /dev/null +++ b/estate/models/estate_property_tag.xml @@ -0,0 +1,14 @@ + + + Estate Property Type + x_estate.property.tag + + + + + x_name + Name + char + True + + diff --git a/estate/models/estate_property_type.xml b/estate/models/estate_property_type.xml new file mode 100644 index 00000000000..2d9197d5ef7 --- /dev/null +++ b/estate/models/estate_property_type.xml @@ -0,0 +1,14 @@ + + + Estate Property Type + x_estate.property.type + + + + + x_name + Name + char + True + + diff --git a/estate/security/ir.model.access.csv b/estate/security/ir.model.access.csv new file mode 100644 index 00000000000..e1a9bc8d573 --- /dev/null +++ b/estate/security/ir.model.access.csv @@ -0,0 +1,6 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_estate_property,access_estate_property,model_estate_property,base.group_user,1,1,1,1 +access_estate_property_public,access_estate_property,model_estate_property,base.group_public,1,1,0,0 +access_estate_property_type,access_estate_property_type,model_estate_property_type,base.group_user,1,1,1,1 +access_estate_property_tag,access_estate_property_tag,model_estate_property_tag,base.group_user,1,1,1,1 +access_estate_property_offer,access_estate_property_offer,model_estate_property_offer,base.group_user,1,1,1,1 diff --git a/estate/security/record_rules.xml b/estate/security/record_rules.xml new file mode 100644 index 00000000000..85a6aba328d --- /dev/null +++ b/estate/security/record_rules.xml @@ -0,0 +1,17 @@ + + + Public no edit + + [('id', '=', False)] + + + + + + Public only see api published + + [('x_api_published', '=', True)] + + + + diff --git a/estate/views/estate_menus.xml b/estate/views/estate_menus.xml new file mode 100644 index 00000000000..aaf1795e330 --- /dev/null +++ b/estate/views/estate_menus.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/estate/views/estate_property_offer_views.xml b/estate/views/estate_property_offer_views.xml new file mode 100644 index 00000000000..37d9c51c6f7 --- /dev/null +++ b/estate/views/estate_property_offer_views.xml @@ -0,0 +1,38 @@ + + + Accept offer and refuse all others + + code + + form + + + + + + + + estate.property.offer.view.list + x_estate.property.offer + + + + + +