Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
    • Meet an advisor
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Get a demo
  • Pricing
  • Help
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
Help

Difference in View position="attributes" <> position="replace"

Subscribe

Get notified when there's activity on this post

This question has been flagged
2 Replies
4440 Views
Avatar
Jörn Göpel

HI all,




I struggled a bit with the situation, trying to add css class to a field.


This was my first attempt, which didn´t really work correct in the process, even if the classes were added correctly on the field:


- If test_field == True add class for decoration-danger


- and always add test_class


Classes were set correct on the field, but it didn´t change if test_field was != True



xpath expr="//field[@name='user_id']" position="attributes"               		​​attribute name="decoration-danger" "user_id_timeoff==True" attribute     	​attribute name="class" time_off_warning attribute
xpath





Then after a lot of wondering and some info on google, I tried this, and it worked just fine even if I wanted to avoid replacing the user_id field:


xpath expr="//field[@name='user_id']" position="replace"               
field name="user_id" class="time_off_warning" decoration-danger="user_id_timeoff==True"   
xpath


             Sorry can´t post it other than that








 





0
Avatar
Discard
Avatar
Jainesh Shah(Aktiv Software)
Best Answer

Hey Jörn Göpel,


I hope you are doing well.


1. Position "Attributes":

    - With "attributes," you can tweak various characteristics of XML elements in Odoo views. This includes things like adding CSS classes (for styling), changing widget types (for user interaction), and adjusting other attributes that control how the interface appears and behaves.

    - The specific attributes you can modify will depend on the context and the particular view you're customising. You have the flexibility to fine-tune these details to your liking.


2. Position "Replace":

    - On the other hand, "replace" is used when you want to do more than just tweak attributes. It allows you to go further by modifying or even entirely replacing existing views, fields, or elements in an Odoo module.

    - This means you can completely change how a part of the interface looks or works. It's like taking out an old puzzle piece and putting in a new one that you've designed yourself. This gives you more control and customisation power, particularly when you need to make significant changes to the interface.


I hope this will help you.

Thanks & Regards,
Email: odoo@aktivsoftware.com     

Skype: kalpeshmaheshwari

1
Avatar
Discard
Avatar
Jörn Göpel
Author Best Answer

Hi Jainesh,

thank you for your answer that clearifies a little bit more of my understanding :)

I was really confident in using position="attributes" with 

/ "user_id_timeoff==True" /

that it will work with the given condition on the field, but odoo seems to not parse this correctly.

So the "replace" of the whole field with the decoration-danger attribute was necessary, which cost me some time to convince myself that I should just go the "replace" way.

But your explanation made it very clear, why the replace makes sense here.


Best Regards



0
Avatar
Discard
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now