تخطي للذهاب إلى المحتوى
أودو القائمة
  • تسجيل الدخول
  • جرب مجاناً
  • التطبيقات
    المالية
    • المحاسبة
    • فوترة
    • النفقات
    • جدول البيانات (BI)
    • المستندات
    • توقيع إلكتروني
    المبيعات
    • إدارة علاقات العملاء
    • المبيعات
    • نقطة البيع للمتاجر
    • نقطة البيع للمطاعم
    • الاشتراكات
    • تأجير
    المواقع الإلكترونية
    • أداة بناء المواقع الإلكترونية
    • متاجر إلكترونية
    • مدونة
    • المنتدى
    • دردشة مباشرة
    • التعليم الإلكتروني
    سلسلة التوريد
    • المستودعات
    • التصنيع
    • إدارة دورة حياة المنتج
    • المشتريات
    • الصيانة
    • الجودة
    الموارد البشرية
    • موظفون
    • التوظيف
    • إجازة عمل
    • التقييمات
    • الإحالات
    • تطبيق الأسطول
    التسويق
    • التسويق الإجتماعي
    • التسويق عبر البريد الإلكتروني
    • التسويق عبر الرسائل النصية
    • فعاليات
    • أتمتة التسويق
    • الاستطلاعات
    الخدمات
    • المشاريع
    • الجداول الزمنية
    • الخدمة الميدانية
    • مكتب المساعدة
    • التخطيط
    • مواعيد
    اﻹنتاجية
    • مناقشة
    • الموافقات
    • إنترنت الأشياء "IoT"
    • بروتوكول ربط المحادثات الصوتية عبر الإنترنت
    • المعرفة
    • WhatsApp
    التطبيقات الخارجية ستوديو أودو منصة أودو السحابية
  • قطاعات الأعمال
    البيع بالتجزئة
    • متجر كتب
    • متجر ملابس
    • متجر أثاث
    • متجر بقالة
    • متجر معدات
    • متجر ألعاب
    الطعام والضيافة
    • بار وحانة
    • المطعم
    • مطعم للوجبات السريعة
    • نزل للضيوف
    • موزّع مشروبات
    • فندق
    العقارات
    • وكالة عقارات
    • شركة هندسة معمارية
    • البناء
    • إدارة العقارات
    • العناية بالحدائق
    • اتحاد مُلاّك العقارات
    استشارة
    • مؤسسة محاسبية
    • شريك أودو
    • وكالة تسويقية
    • منشأة قانونية
    • استقطاب المواهب
    • التدقيق والتوثيق
    التصنيع
    • الأقمشة
    • معدني
    • الأثاث
    • الطعام
    • مصنع خمور
    • هدايا الشركات
    الصحة واللياقة البدنية
    • نادي رياضي
    • متجر نظارات
    • مركز لياقة بدنية
    • الممارسون الصحيون
    • صيدلية
    • صالون تصفيف الشعر
    التجارة
    • عامل صيانة
    • الأجهزة والمعدات التقنية ودعمها
    • أنظمة الطاقة الشمسية
    • صانع أحذية
    • خدمات التنظيف
    • خدمات التكييف (HVAC)
    غير ذلك
    • منظمة غير ربحية
    • وكالة بيئية
    • تأجير لوحات إعلانية
    • تصوير
    • تأجير دراجات
    • بائع وسيط للبرمجيات
    تصفح كافة قطاعات الأعمال
  • مجتمع أودو
    تعلم
    • دروس
    • التوثيق
    • شهادات
    • التدريب
    • مدونة
    • بودكاست
    قم بتعزيز التعليم
    • برنامج تعليم
    • Scale UP! لعبة الأعمال
    • قم بزيارة أودو
    احصل على البرنامج
    • تحميل
    • قارنْ الإصدارات
    • إطلاق
    تعاون
    • جيت هاب "Github"
    • المنتدى
    • فعاليات
    • الترجمات
    • كنْ شريكاً
    • خدمات الشركاء
    • سجل مكتب المحاسبة الخاص بك
    احصل على الخدمات
    • اعثر على شريك
    • اعثر على محاسب
    • قابل أحد مرشدي الأعمال
    • خدمات التنفيذ
    • مراجع العملاء
    • الدعم
    • الترقيات
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    الحصول على عرض توضيحي
  • الأسعار
  • المساعدة

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • إدارة علاقات العملاء
  • e-Commerce
  • المحاسبة
  • المخزون
  • PoS
  • المشروع
  • MRP
All apps
يجب أن تكون مسجلاً حتى تتفاعل مع المجتمع.
كافة المنشورات الأفراد الشارات
علامات التصنيف (عرض الكل)
odoo accounting v14 pos v15
حول هذا المنتدى
يجب أن تكون مسجلاً حتى تتفاعل مع المجتمع.
كافة المنشورات الأفراد الشارات
علامات التصنيف (عرض الكل)
odoo accounting v14 pos v15
حول هذا المنتدى
المساعدة

CSS not getting applied whensaved in external file

اشتراك

تسلم الإشعارات عندما يكون هناك نشاط في هذا المنشور

لقد تم الإبلاغ عن هذا السؤال
templateweblayoutcssassetsbackendOdoo19.0
2 الردود
236 أدوات العرض
الصورة الرمزية
Sofia Ingalls

I am trying to create a simple dashboard using QWEB. So far, I have been able to create a simple example that works and launches as a standalone page with some ORM interaction.  Here's a truncated version of my script that works:


<?xml version="1.0" encoding="UTF-8"?>

<odoo>

​<template id="my_dashboard_meta" inherit_id="web.layout">

​ ​<xpath expr="//head" position="inside">

​​ ​<meta name="viewport" content="width=device-width, initial-scale=1.0" />

​ ​</xpath>

​</template>


​<template id="kanban_dashboard" name="My Dashboard">

​<t t-call="web.layout">

​ ​<style>

​ ​ ​@font-face {

​ ​ ​ ​font-family: LCD;

​ ​ ​ ​src: url("/my_dashboard/static/src/fonts/lcd-regular-webfont.ttf");

​ ​ ​}


​ ​ ​html {

​ ​ ​ ​font-family: LCD, Times, serif;

​ ​ ​ ​overflow: hidden;

​ ​ ​ ​margin: 0;

​ ​ ​ ​padding: 0;

​ ​ ​ ​min-height: 100vh;

​ ​ ​ ​width: 100%;

​ ​ ​ ​background-image: url("/my_dashboard/static/src/images/bg.jpg");

​ ​ ​ ​background-size: cover;

​ ​ ​ ​background-position: center;

​ ​ ​ ​background-repeat: no-repeat;

​ ​ ​}


​ ​ ​.kanban-4 {

​ ​ ​ ​width: 25%;

​ ​ ​ ​align-items: center;

​ ​ ​text-align: center;

​ ​ ​}


​ ​ ​.kanban-card {

​ ​ ​ ​ border: 1px solid #ddd;

​ ​ ​ ​ border-radius: 8px;

​ ​ ​ ​ overflow: hidden;

​ ​ ​ ​ background: #fff;

​ ​ ​ ​ display: flex;

​ ​ ​ ​ flex-direction: column;

​ ​ ​ ​ align-items: center;

​ ​ ​ ​ text-align: center;

​ ​ ​ ​ margin-bottom: 30px;

​ ​ ​}


​ ​ ​ @media (max-width: 1200px) {

​ ​ ​ ​ html {

​ ​ ​ ​ ​ overflow-y: scroll;

​ ​ ​ ​}

​ ​ ​ ​.kanban-4 {

​ ​ ​ ​ ​width: 30%;

​ ​ ​ ​}

​ ​ ​ }

​ ​ ​

​ ​ ​@media (max-width: 600px) {

​ ​ ​ ​ .kanban-4 {

​ ​ ​ ​ ​ width: 90%;

​ ​ ​ ​ }

​ ​ ​ }

​ ​ </style>



​ ​<p>Example Entry</p>

​ ​<div>

​ ​ ​ <t t-set="action_quotations" t-value="request.env.ref('sale.action_quotations', False)" />

​ ​ ​ <t t-if="action_quotations">

​ ​ ​ ​ <div class="kanban-card">

​ ​ ​ ​ ​<a t-att-href="'/web#action=%s' % action_quotations.id">

​ ​ ​ ​ ​ ​<img src="/my_dashboard/static/src/images/rfq_icon.png"

​ ​ ​ ​ alt="Pending Orders" />

​ ​ ​ ​ ​ ​<div class="content">

​ ​ ​ ​ ​ ​ ​<p>Pending Orders</p>

​ ​ ​ ​ ​ </div>

​ ​ ​ ​ ​</a>

​ ​ ​ ​ </div>

​ ​ ​ </t>

​ ​ </div>

​</t>

​</template>

</odoo>


However, while trying to refine the template by moving the CSS out into a separate file, it does not seem to work. It is clearly listed in the manifest like so:

{

​ 'name': 'My Dashboard',

​ 'version': '1.0',

​ 'category': 'Tools',

​ 'summary': 'Custom Dashboard',

​ 'author': 'Sofia',

​ 'depends': ['base', 'web', 'sale', 'crm', 'stock', 'purchase'],

​ 'data': [

​ ​ 'security/ir.model.access.csv',

​ ​ 'views/templates.xml',

​ ​ 'views/menus.xml',

​ ​ 'views/actions.xml',

​],

​ 'assets': {

​ ​ 'web.assets_backend': [

​ ​ ​'my_dashboard/static/src/css/dashboard.css',

​ ​ ],

​ },

​ 'installable': True,

​ 'application': True,

}


Am I missing some step to get the CSS recognized?

0
الصورة الرمزية
إهمال
Kunjan Patel

You're using <t t-call="web.layout"> which is a frontend/website template, but your CSS is in web.assets_backend (backend bundle). This is the mismatch!

'assets': {
'web.assets_frontend': [ # Changed from backend to frontend!
'my_dashboard/static/src/scss/dashboard.scss', # Also use SCSS
],
},
You were using web.layout (frontend) but loading CSS in web.assets_backend (backend) → CSS never loaded!

Sofia Ingalls
الكاتب

Hello again, Kunjan. I was so hopeful when I read your comment this time. It sounded so promising. But alas, it still doesn't work. For good measure, I had uninstalled the module, cleared the browser cache, restarted Odoo, updated apps, then re-installed it and regenerated assets as well. Still, nada.

Instead of web.layout, should I try some other model, perhaps?

I do appreciate your tireless help, but this seems a real conundrum.

Kunjan Patel

Quick Debug Steps Most likely issue: You're missing a controller - the template won't render without one.

Create controllers/main.py:
from odoo import http
class MyDashboard(http.Controller):
@http.route('/my_dashboard', type='http', auth='user', website=True)
def index(self, **kw):
return http.request.render('my_dashboard.kanban_dashboard')

Update __manifest__.py: Add 'website' to depends, and add '__init__.py' root file with from . import controllers.

Test: Add <div style="background:red;padding:50px">TEST</div> at top of template. If you DON'T see a red box, the template isn't rendering at all (controller issue). If you DO see red
box but no CSS, then it's the asset bundle. Access via: http://your-odoo/my_dashboard

Sofia Ingalls
الكاتب

Hi Kunjan. It does have a controller and the page does load and render perfectly - but only when the CSS block is inside the template within style tags - like I had mentioned in my OP. If the CSS is removed to an external file, the page still renders, but without the proper styling.

Nevertheless, since it already had a header template for the meta tag (please see the OP) I tried inserting the style link to the CSS there and it worked.

<template id="my_dashboard_meta" inherit_id="web.layout">
​ <xpath expr="//head" position="inside">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="my_dashboard/static/src/css/dashboard.css"></link>
​</xpath>
​</template>

Is this a legal insertion in Odoo, would you know?

Sofia Ingalls
الكاتب

Hi Kunjan, and thank you for your prompt reply. It is truly appreciated.

I had performed all the steps that you had recommended (except refactoring the css specificity) as follows:

  Step 1: Ensure Correct File Structure (changed CSS to SCSS, file and folder name)

  Step 2: Correct Manifest Configuration

  Step 4: Critical - Reload Assets

  # 1. Restart Odoo server

  # 2. Upgrade module (MOST IMPORTANT!)

  # 3. Clear browser cache: Ctrl+Shift+R

  # 4. Regenerate assets bundles


But sadly, it still did not load (confirmed with dev tools on the browser). Could the issue possibly be with the template? Perhaps it is not inheriting the correct model, or there is some incompatibility with the structure, causing it not to warrant a CSS to be loaded? There is another header template at the top for including meta tags. Could that be an issue?

Kunjan Patel

Yes, this is completely legal and standard in Odoo 19.

Inheriting web.layout to add SCSS links in the <head> is the correct approach for controller-based pages. Your implementation is proper and will work perfectly in Odoo 19.

However, Odoo 19's recommended best practice is using asset bundles in __manifest__.py:
'assets': {
'web.assets_frontend': [
'my_dashboard/static/src/scss/dashboard.scss',
],
}

Both methods are valid in Odoo 19. Your web.layout inheritance works fine, but asset bundles provide better performance.

Sofia Ingalls
الكاتب

I've been reading up a little more on the eccentricities of Odoo models, and I think I understand now (maybe). CSS in the web assets (front or back end) only applies to client models. Since mine is a web model, it won't. So, we'd have to inline styles, insert a style block, or include a CSS link directly into the template.

Nevertheless, thank you most kindly, Kunjan, for taking the time to help me. And thanks to user @Odoonex as well; I saw a reply from you but it was removed for some reason.

Kunjan Patel

Hey Sofia,

No, you're mixing concepts. CSS from web.assets_backend or web.assets_frontend applies to all templates in that context, regardless of model type.

Solution: Just add your CSS to the correct asset bundle in __manifest__.py:
'assets': {
'web.assets_backend': ['your_module/static/src/scss/style.scss'],
}

No inline styles needed. Asset bundles work for custom models/controllers automatically.

Kunjan Patel

Hey Sofia, You're very welcome!
it was truly my pleasure to help. If you ever need anything else, don’t hesitate to reach out!

الصورة الرمزية
Odoonex
أفضل إجابة

Hello Sofia 

here is a simple hello world example with custom scss. I hope this helps 

https://drive.google.com/file/d/1yaS2z5QQ_XTPkDlxeG9GIikbP24WdReO/view?usp=sharing

after installing visit this link 

/contact/get_started

0
الصورة الرمزية
إهمال
الصورة الرمزية
Kunjan Patel
أفضل إجابة
Hello, Sofia Ingalls
I hope you are doing well,

SOLUTION: External CSS Not Loading in Odoo 19

Quick Debug Steps Most likely issue:
You're missing a controller - the template won't render without one.

Create controllers/main.py:

from odoo import http

class MyDashboard(http.Controller):

@http.route('/my_dashboard', type='http', auth='user', website=True)

def index(self, **kw):

return http.request.render('my_dashboard.kanban_dashboard')

Update __manifest__.py: Add 'website' to depends, and add '__init__.py' root file with 
from . import controllers.

Test: Add <div style="background:red;padding:50px">TEST</div> at top of template. If you DON'T see a red box, the template isn't rendering at all (controller issue). If you DO see red

box but no CSS, then it's the asset bundle. Access via: http://your-odoo/my_dashboard

Hope this information helps you

Thanks & Regards,
Kunjan Patel
0
الصورة الرمزية
إهمال
هل أعجبك النقاش؟ لا تكن مستمعاً فقط. شاركنا!

أنشئ حساباً اليوم لتستمتع بالخصائص الحصرية، وتفاعل مع مجتمعنا الرائع!

تسجيل
المنشورات ذات الصلة الردود أدوات العرض النشاط
What is the difference between 'report_assets_common' and 'report_assets_pdf'
reports template css assets odoo16features
الصورة الرمزية
الصورة الرمزية
الصورة الرمزية
الصورة الرمزية
3
فبراير 24
9737
What is the difference between 'report_assets_common' and 'report_assets_pdf' تم الحل
reports template css assets odoo16features
الصورة الرمزية
الصورة الرمزية
1
سبتمبر 23
3946
External ID not found in the system: web.assets_backend
theme assets backend
الصورة الرمزية
الصورة الرمزية
الصورة الرمزية
2
مارس 23
10754
Bug in backend theme where hamburger menu doesn't open the second time. Does anyone know how to fix this?
menu css theme backend
الصورة الرمزية
الصورة الرمزية
الصورة الرمزية
الصورة الرمزية
3
أغسطس 21
5723
Odoo 11.0 load css/scripts or something else into <head> only when a template is rendered
template assets frontend odoo11
الصورة الرمزية
0
ديسمبر 18
3865
المجتمع
  • دروس
  • التوثيق
  • المنتدى
مصدر مفتوح
  • تحميل
  • جيت هاب "Github"
  • المشغل الآلي رنبوت
  • الترجمات
خدماتنا
  • استضافة أودو إس إتش
  • الدعم
  • الترقية
  • التطويرات المخصصة
  • التعليم
  • اعثر على محاسب
  • اعثر على شريك
  • كنْ شريكاً
معلومات عنا
  • شركتنا
  • أصول العلامة التجارية
  • اتصلْ بنا
  • الوظائف
  • فعاليات
  • بودكاست
  • مدونة
  • عملاء
  • قانوني • الخصوصية
  • الحماية
الْعَرَبيّة 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 ภาษาไทย Türkçe українська Tiếng Việt

أودو هو عبارة عن مجموعة من تطبيقات الأعمال مفتوحة المصدر التي تغطي جميع احتياجات شركتك، مثل: إدارة علاقات العملاء والتجارة الإلكترونية والمحاسبة والمخزون ونقاط البيع وإدارة المشاريع وما إلى ذلك.

ما يجعل من أودو مميزاً هو هدفه بأن يكون سهل الاستخدام للغاية ومتكاملاً تمامًا في الوقت ذاته.

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