-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Tutorials Amer #780
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
arthurrrm
wants to merge
49
commits into
odoo:18.0
Choose a base branch
from
odoo-dev:18.0-training-amer
base: 18.0
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Tutorials Amer #780
Changes from 25 commits
Commits
Show all changes
49 commits
Select commit
Hold shift + click to select a range
f5df5c5
[ADD] estate: finished chapter 3
arthurrrm 59e83b2
[ADD] chapter 3
arthurrrm 439c30d
[ADD] chapter 4
arthurrrm ef2e205
[ADD] chapter 5 first half
arthurrrm 3edc21b
[ADD] chapter 5 done
arthurrrm e6ce348
[ADD] finished chapter 6
arthurrrm ca315f5
[FIX] chapter 6 fix
arthurrrm a46be7f
[ADD] chapter 7 done
arthurrrm 6d7858d
[ADD] chapter 7 done
arthurrrm 86c8ab9
[FIX] chapter 7
arthurrrm 27825b8
[ADD] estate: chapter 8 done + lint
arthurrrm 7e69fef
[ADD] gitignore updated
arthurrrm 3bb6ca4
[ADD] estate: chapter 9 done
arthurrrm 5821075
[ADD] estate: chapter 9 done
arthurrrm d6558e2
[ADD] estate: chapter 10 done
arthurrrm f36eeea
[ADD] estate: chapter 11 inline view + widgets
arthurrrm c6be45b
[ADD] estate: chapter 11 += List Order
arthurrrm e590994
[ADD] estate: chapter 11 += Attributes and options
arthurrrm 2aae01f
[ADD] estate: chapter 11 done
arthurrrm 9255a03
[ADD] estate: chapter 12 += Python Inheritance
arthurrrm d35f9ba
[ADD] estate: chapter 12 done
arthurrrm a3f718a
[FIX] estate: chapter 12 done
arthurrrm ab5f481
[FIX] estate: chapter 12 actual final fix v2 final LAST fix
arthurrrm 0b88c32
[FIX] estate: chapter 13 done + chapter 12 fix v4 (the last one)
arthurrrm 84710d9
[FIX] estate: chapter 14 + 15 done
arthurrrm 0356b6b
[REV] revised code on mathieu's comments
arthurrrm e9b6410
[REV] revised code on mathieu's comments
arthurrrm 6c3ab74
[REV] revised code on mathieu's comments
arthurrrm 546e977
[ADD] awesome_owl: 1.2 extract the counter in a sub component
arthurrrm c98f367
[ADD] awesome_owl: 1.3 add a simple card component
arthurrrm 40c68a9
[ADD] awesome_owl: 1.4 markup to display html
arthurrrm 4a2ce33
[ADD] awesome_owl: 1.5 + 1.6 props validation and sum oftwo Counter
arthurrrm c3713d8
[ADD] awesome_owl: 1.7 little todolist
arthurrrm 933b277
[ADD] awesome_owl: 1.8 +1.9 dynamic attributes & user can add todos
arthurrrm 588ea02
[ADD] awesome_owl: 1.10 auto focus on input
arthurrrm 7b3aeb8
[ADD] awesome_owl: 1.11 toggling todos
arthurrrm 2fa0f72
[ADD] awesome_owl: 1.12 deleting todos
arthurrrm 8e65463
[ADD] awesome_owl: 1.13 generic card with slots
arthurrrm 63d1d12
[ADD] awesome_owl: 1.14 minimizing card content
arthurrrm e078e49
[ADD] awesome_dashboard 2.1 new layout
arthurrrm 9e76c58
[ADD] awesome_dashboard 2.2 Open leads and CRM view
arthurrrm 029dc4d
[ADD] awesome_dashboard 2.3 add dashboard item
arthurrrm 36d82b4
[ADD] awesome_dashboard 2.4 add some statistics
arthurrrm 2c9c67c
[ADD] awesome_dashboard 2.5 cache network calls
arthurrrm 14d0736
[ADD] awesome_dashboard 2.6 pie charts
arthurrrm aedd799
[ADD] estate : Add some standart Real estate property (tuto Define mo…
arthurrrm c3f2718
[ADD] estate : demo data for estate. property
arthurrrm caf2b1a
[ADD] estate : demo data for property offers
arthurrrm e4115af
[ADD] estate : add new demo property with offers directly defined in…
arthurrrm File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -127,3 +127,8 @@ dmypy.json | |
|
||
# Pyre type checker | ||
.pyre/ | ||
|
||
|
||
#pre commit | ||
.pre-commit-config.yaml | ||
ruff.toml |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
repos: | ||
- repo: https://github.com/astral-sh/ruff-pre-commit | ||
rev: v0.4.3 # Use the latest Ruff version or the one that matches your setup | ||
hooks: | ||
- id: ruff | ||
args: [ --fix] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"python.languageServer": "None" | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +0,0 @@ | ||
# -*- coding: utf-8 -*- | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
{ | ||
'name': "Awesome Clicker", | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
from . import controllers |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
{ | ||
'name': "Awesome Dashboard", | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
from . import controllers | ||
from . import controllers |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
import logging | ||
import random | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1 @@ | ||
# -*- coding: utf-8 -*- | ||
from . import models |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
{ | ||
'name': "Gallery View", | ||
'summary': """ | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
# import filename_python_file_within_folder_or_subfolder | ||
from . import ir_action | ||
from . import ir_ui_view |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
from odoo import fields, models | ||
|
||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
from odoo import fields, models | ||
|
||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +0,0 @@ | ||
# -*- coding: utf-8 -*- | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
{ | ||
'name': "Awesome Kanban", | ||
'summary': """ | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
from . import controllers | ||
from . import controllers |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
# -*- coding: utf-8 -*- | ||
{ | ||
'name': "Awesome Owl", | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
from . import controllers | ||
from . import controllers |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{ | ||
'name': 'estate', | ||
'depends': [ | ||
'base' | ||
], | ||
'installable': True, | ||
'application': True, | ||
'data': [ | ||
'views/estate_property_offer_views.xml', | ||
'views/estate_property_type_views.xml', | ||
'views/estate_property_tag_views.xml', | ||
'security/ir.model.access.csv', | ||
'views/estate_property_views.xml', | ||
'views/estate_menus.xml', | ||
'views/estate_res_users.xml', | ||
], | ||
'license': 'LGPL-3', | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
from . import estate_property | ||
from . import estate_property_type | ||
from . import estate_property_tag | ||
from . import estate_property_offer | ||
from . import estate_res_users |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
from odoo import api, fields, models, exceptions | ||
from datetime import datetime | ||
from dateutil.relativedelta import relativedelta | ||
from odoo.tools.float_utils import float_compare, float_is_zero | ||
from odoo.exceptions import ValidationError | ||
|
||
|
||
class EstateProperty(models.Model): | ||
_name = "estate.property" | ||
_description = "its just an estate property" | ||
_order = "id desc" | ||
|
||
# Basic fields | ||
name = fields.Char(required=True) | ||
description = fields.Text() | ||
postcode = fields.Char() | ||
date_availability = fields.Date(default=datetime.now() + relativedelta(months=3), copy=False) | ||
expected_price = fields.Float(required=True) | ||
selling_price = fields.Float(readonly=True, copy=False) | ||
bedrooms = fields.Integer(default=2) | ||
living_area = fields.Integer() | ||
facades = fields.Integer() | ||
garage = fields.Boolean() | ||
garden = fields.Boolean() | ||
garden_area = fields.Integer() | ||
garden_orientation = fields.Selection( | ||
selection=[('north', 'North'), ('south', 'South'), ('east', 'East'), ('west', 'West')], | ||
) | ||
active = fields.Boolean(default=True) | ||
|
||
state = fields.Selection( | ||
selection=[('new', 'New'), ('offer_received', 'Offer Received'), ('offer_accepted', 'Offer Accepted'), ('sold', 'Sold'), ('canceled', 'Canceled')], | ||
required=True, | ||
copy=False, | ||
default='new') | ||
|
||
# Relational fields | ||
property_type_id = fields.Many2one("estate.property.type", string="Property Type") | ||
buyer_id = fields.Many2one("res.partner", string="Buyer", copy=False) | ||
sales_id = fields.Many2one("res.users", string="Salesperson", default=lambda self: self.env.user) | ||
tag_ids = fields.Many2many("estate.property.tag", string="Tags") | ||
offer_ids = fields.One2many("estate.property.offer", "property_id", string="Offers") | ||
|
||
# Computed fields | ||
total_area = fields.Integer(compute="_compute_total_area") | ||
best_price = fields.Float(compute="_compute_best_offer", default=0) | ||
|
||
# Constraints | ||
_sql_constraints = [ | ||
('check_expected_price', 'CHECK(expected_price > 0)', | ||
'The expected price of a property should be strictly positive'), | ||
('check_selling_price', 'CHECK(selling_price >= 0)', | ||
'The selling price of a property should be positive') | ||
] | ||
|
||
@api.constrains('selling_price') | ||
arthurrrm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
def _check_selling_price(self): | ||
for record in self: | ||
if not float_is_zero(record.selling_price, precision_digits=2): | ||
if float_compare(record.selling_price, record.expected_price * 0.9, precision_digits=2) == -1: | ||
arthurrrm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
raise ValidationError("The selling price cannot be less than 90% of the expected price") | ||
|
||
# Compute Methods | ||
@api.depends('living_area', 'garden_area') | ||
def _compute_total_area(self): | ||
for record in self: | ||
record.total_area = record.living_area + record.garden_area | ||
|
||
@api.depends('offer_ids.price') | ||
def _compute_best_offer(self): | ||
for record in self: | ||
record.best_price = max(record.offer_ids.mapped('price'), default=0) | ||
|
||
# On Changes | ||
@api.onchange('garden') | ||
def _onchange_garden(self): | ||
# set default | ||
if self.garden: | ||
self.garden_area = 10 | ||
self.garden_orientation = 'north' | ||
|
||
# clear values | ||
else: | ||
self.garden_area = 0 | ||
self.garden_orientation = None | ||
arthurrrm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
# CRUD methods | ||
@api.ondelete(at_uninstall=False) | ||
def _chek_state(self): | ||
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. The |
||
for record in self: | ||
if record.state != 'new' and record.state != 'canceled': | ||
arthurrrm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
raise exceptions.UserError("A property must be newly created or canceld to be deleted") | ||
|
||
# Buttons methods | ||
def set_canceled(self): | ||
for record in self: | ||
if record.state == 'sold': | ||
raise exceptions.UserError("Sold properties cannot be canceled") | ||
|
||
record.state = 'canceled' | ||
return True | ||
|
||
def set_sold(self): | ||
for record in self: | ||
if record.state == 'canceled': | ||
raise exceptions.UserError("Canceled properties cannot be sold") | ||
|
||
record.state = 'sold' | ||
return True |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
from odoo import api, fields, models, exceptions | ||
from dateutil.relativedelta import relativedelta | ||
from odoo.tools.float_utils import float_compare | ||
|
||
|
||
class PropertyOffer(models.Model): | ||
_name = "estate.property.offer" | ||
_description = "Offer made by a potential buyer" | ||
_order = "price desc" | ||
|
||
price = fields.Float() | ||
status = fields.Selection(copy=False, selection=[('accepted', 'Accepted'), ('refused', 'Refused')]) | ||
partner_id = fields.Many2one("res.partner", required=True) | ||
property_id = fields.Many2one("estate.property", required=True) | ||
property_type_id = fields.Many2one("estate.property.type", related="property_id.property_type_id", store=True) | ||
|
||
validity = fields.Integer(default=7) | ||
date_deadline = fields.Datetime(compute="_compute_deadline", inverse="_inverse_deadline") | ||
arthurrrm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
# Constraints | ||
_sql_constraints = [ | ||
('check_price', 'CHECK(price > 0)', | ||
'The price of an offer should be strictly positive'), | ||
] | ||
|
||
# Compute methods | ||
@api.depends('validity') | ||
def _compute_deadline(self): | ||
for record in self: | ||
if record.create_date: | ||
record.date_deadline = record.create_date + relativedelta(days=record.validity) | ||
else: | ||
record.date_deadline = fields.Date.today() + relativedelta(days=record.validity) | ||
|
||
def _inverse_deadline(self): | ||
for record in self: | ||
record.validity = (record.date_deadline - record.create_date).days | ||
arthurrrm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
# CRUD methods | ||
@api.model_create_multi | ||
def create(self, vals_list): | ||
for vals in vals_list: | ||
prop = self.env['estate.property'].browse(vals['property_id']) | ||
if float_compare(vals['price'], prop.best_price, precision_digits=2) == -1: | ||
arthurrrm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
raise exceptions.UserError("Cannot create an offer with a lower amount than an existing offer") | ||
prop.state = 'offer_received' | ||
|
||
return super().create(vals_list) | ||
|
||
# Action methods | ||
def action_accept(self): | ||
for record in self: | ||
record.status = 'accepted' | ||
record.property_id.buyer_id = record.partner_id | ||
record.property_id.selling_price = record.price | ||
record.property_id.state = 'offer_accepted' | ||
return True | ||
|
||
def action_refuse(self): | ||
for record in self: | ||
record.status = 'refused' | ||
return True |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
from odoo import fields, models | ||
|
||
|
||
class PropertyTag(models.Model): | ||
_name = "estate.property.tag" | ||
_description = "used to add precision to a property" | ||
_order = "name" | ||
|
||
name = fields.Char(required=True) | ||
color = fields.Integer() | ||
|
||
# SQL constraints | ||
_sql_constraints = [ | ||
('name_unique', 'unique(name)', | ||
'The name of a tag should be unique'), | ||
] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
from odoo import api, fields, models | ||
|
||
|
||
class PropertyType(models.Model): | ||
_name = "estate.property.type" | ||
_description = "describe the type property" | ||
_order = "sequence" | ||
|
||
sequence = fields.Integer('Sequence', default=1) | ||
|
||
name = fields.Char(required=True) | ||
property_ids = fields.One2many("estate.property", "property_type_id") | ||
offer_ids = fields.One2many("estate.property.offer", "property_type_id") | ||
offer_count = fields.Integer(compute="_compute_nb_offer") | ||
|
||
# SQL constraints | ||
_sql_constraints = [ | ||
('name_unique', 'unique(name)', | ||
'The name of a property type should be unique') | ||
] | ||
|
||
# Compute Methods | ||
@api.depends('offer_ids') | ||
def _compute_nb_offer(self): | ||
for record in self: | ||
record.offer_count = len(record.offer_ids) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
from odoo import fields, models | ||
|
||
|
||
class ResUsers(models.Model): | ||
_inherit = "res.users" | ||
|
||
property_ids = fields.One2many("estate.property", "sales_id", domain="['|', ('state', '=', 'new'), ('state', '=', 'offer_received')]") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink | ||
estate.access_estate_property,access_estate_property,estate.model_estate_property,base.group_user,1,1,1,1 | ||
estate.access_estate_property_type,access_estate_property_type,estate.model_estate_property_type,base.group_user,1,1,1,1 | ||
estate.access_estate_property_tag,access_estate_property_tag,estate.model_estate_property_tag,base.group_user,1,1,1,1 | ||
estate.access_estate_property_offer,access_estate_property_offer,estate.model_estate_property_offer,base.group_user,1,1,1,1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<odoo> | ||
|
||
<menuitem id="estate_menu_root" name="Real Estate"/> | ||
|
||
<menuitem id="estate_menu_Adv" name="Advertisements" parent="estate_menu_root"/> | ||
|
||
<menuitem id="Adv_menu_property" action="estate.property_action" parent="estate_menu_Adv"/> | ||
|
||
|
||
<menuitem id="estate_menu_settings" name="Settings" parent="estate_menu_root"/> | ||
|
||
<menuitem id="sett_menu_property_type" action="estate.property_type_action" parent="estate_menu_settings"/> | ||
|
||
<menuitem id="sett_menu_property_tag" action="estate.property_tag_action" parent="estate_menu_settings"/> | ||
arthurrrm marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
</odoo> |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.