Files
ODOO4projects.com/blog/posts/track-the-oca-modules-you-actually-use.html
T
webmaster 9d14652a57 hide [hidden] site-wide: one [hidden] { display:none !important } in style.css
A filtered-out directory card stayed visible. The card is targeted by an
id-based ready-state selector (`.js #directory[data-dir-state="ready"]
#dirGrid > .dev-card`, two ids), which outranked the old per-element patch
`.dev-card[hidden] { display:none }` — so `card.hidden = true` set the
attribute and every card stayed on screen while the count line correctly
read "Showing 1 of 4".

Fix: one rule, `[hidden] { display:none !important }`, early in /style.css.
A class- or id-based `display` can no longer beat the attribute, so this
cannot recur with the next class that sets `display`. The per-element
`[hidden]` patches are removed so a single mechanism governs:
 - odoo-community-developers: cards + filter row + pager + modal
   (load-bearing — each sets `display`); focus-sliders/noscript (redundant)
 - index/de/es `.hero-notice[hidden]`, odoo-black-friday `.ads-consent[hidden]`
   (redundant — those elements set no `display`)
Re-fingerprint local assets (style.css changed): /style.css?v 3332fbba93 ->
061517baef across 51 pages.

Measured in a real browser (local harness, stubbed webhook; no record created,
no probe write) — computed display + geometry, never the `hidden` property:
 - filtered to one card: the other three report display:none and height 0;
   the visible set (1) equals the count line ("Showing 1 of 4") — 1 == 1
 - HEAD (pre-fix) reproduces the defect: 3 cards hidden=true yet display:flex,
   height 599.38 each; 4 visible vs the count's 1
 - pager: display:none height 0 with one page; display:flex height 66.83 with
   12 cards (Page 1 of 2); page 2 hides page-1 cards (display:none)
 - modals closed: display:none height 0; load state: cards 0, pager/empty
   display:none, filter row visibility:hidden by design
 - 375 px: same result, no horizontal overflow; avatar ask-row top identical
   across a row (2053.97 / links 2086.91)
2026-11-03 22:34:39 +00:00

171 lines
9.1 KiB
HTML

<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day | ODOO4projects</title>
<meta
name="description"
content="Every new Odoo release starts the same routine. You install the latest version, open a browser, and begin clicking throu"
/>
<link
rel="canonical"
href="https://odoo4projects.com/blog/posts/track-the-oca-modules-you-actually-use.html"
/>
<meta
property="og:title"
content="Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day"
/>
<meta
property="og:description"
content="Every new Odoo release starts the same routine. You install the latest version, open a browser, and begin clicking throu"
/>
<meta property="og:type" content="article" />
<meta property="og:image" content="https://image.office.odoo4projects.com/img/oca_module_status.png" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="icon" href="../../images/favicon.ico" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
/>
<link rel="stylesheet" href="../../style.css?v=061517baef" />
<style>
:root {
--primary: #714b67;
--dark: #212529;
--border: #e5e3e0;
--radius: 0.6rem;
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: Inter, sans-serif;
font-size: 1rem;
line-height: 1.7;
background: #fff;
color: #212529;
}
.container { width: 80%; max-width: 800px; margin: 0 auto; padding: 0 20px; }
@media (max-width: 768px) { .container { width: 100%; } }
.blog-header { padding: 2rem 0; border-bottom: 1px solid var(--border); }
.blog-header a { color: var(--primary); text-decoration: none; font-size: 0.85rem; }
.blog-header a:hover { text-decoration: underline; }
.post-title {
font-family: "Inter Tight", sans-serif;
font-size: clamp(1.5rem, 3vw, 2.2rem);
font-weight: 700; margin: 1.5rem 0 0.5rem; color: var(--dark);
}
.post-meta { color: rgba(33,37,41,0.5); font-size: 0.85rem; margin-bottom: 2rem; }
.post-image { width: 100%; border-radius: 0.75rem; margin-bottom: 2rem; box-shadow: 0 2px 8px rgba(13,27,46,0.08); }
.post-content h2 {
font-family: "Inter Tight", sans-serif;
font-size: 1.3rem; margin-top: 2rem; color: var(--dark);
}
.post-content p { margin: 1rem 0; color: rgba(33,37,41,0.7); line-height: 1.7; }
.post-content ul, .post-content ol { padding-left: 1.5rem; }
.post-content li { margin: 0.5rem 0; color: rgba(33,37,41,0.7); }
.post-content a { color: var(--primary); }
.post-footer { padding: 2rem 0; border-top: 1px solid var(--border); margin-top: 2rem; }
.post-footer a { color: var(--primary); text-decoration: none; }
.post-footer a:hover { text-decoration: underline; }
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day",
"datePublished": "2026-10-24",
"url": "https://odoo4projects.com/blog/posts/track-the-oca-modules-you-actually-use.html",
"image": "https://image.office.odoo4projects.com/img/oca_module_status.png",
"author": {
"@type": "Organization",
"name": "ODOO4projects",
"url": "https://odoo4projects.com/"
},
"publisher": {
"@type": "Organization",
"name": "ODOO4projects",
"url": "https://odoo4projects.com/",
"logo": {
"@type": "ImageObject",
"url": "https://odoo4projects.com/images/logo.png"
}
}
}
</script>
<!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
<script>
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
plausible.init()
</script>
</head>
<body>
<main>
<div class="container">
<div class="blog-header">
<a href="../../index.html#blog">&larr; Back to Blog</a>
</div>
<article>
<h1 class="post-title">Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day</h1>
<div class="post-meta">October 24, 2026 &middot; Tips</div>
<img src="https://image.office.odoo4projects.com/img/oca_module_status.png"
alt="Track the OCA Modules You Actually Use — Without Refreshing GitHub Every Day"
class="post-image" loading="lazy" />
<div class="post-content">
<p>Every new Odoo release starts the same routine. You install the latest version, open a browser, and begin clicking through your favourite OCA repositories to find out which modules have been ported — and which ones you will have to live without for a while.</p>
<p>We do the same thing. So we automated it. Our <a href="../../index.html#ocaModules">homepage</a> now carries a live table of the OCA modules we rely on most, checked and updated by our robots on a daily basis.</p>
<h2>Why a tracker is worth having</h2>
<p>OCA porting work happens at its own pace. Maintainers volunteer their time, and a module that is solid on one version can sit unported on the next for weeks or months. Checking manually means guessing, and guessing during an <a href="../../odoo-community-upgrade.html">upgrade project</a> is expensive — you plan around a module that is not ready, or you delay a migration that was actually fine to start.</p>
<p>A tracker turns that guesswork into a glance. That is the whole point.</p>
<h2>What we are tracking right now</h2>
<p>The current list covers the modules we reach for most often, across utilities, accounting and field service:</p>
<ul>
<li><strong>Mail Tracker</strong> — Utilities</li>
<li><strong>Account Reconciliation</strong> — Accounting</li>
<li><strong>Account Statements</strong> — Accounting</li>
<li><strong>Currency Rate Update</strong> — Accounting</li>
<li><strong>Enable Accounting</strong> — Accounting</li>
<li><strong>Base</strong> — Field Service</li>
</ul>
<p>Each row shows the module's area plus its status on 19.0 and 20.0. At the time of writing, every module on the list is ready for 19.0, while 20.0 is still marked as pending across the board. That dash is simply the honest answer, and it flips the moment the port lands.</p>
<h2>How to get the most out of it</h2>
<ol>
<li><strong>Check it before you commit to an upgrade plan.</strong> If the module your operations depend on is not ported yet, you want to know that in the planning phase, not the week before go-live.</li>
<li><strong>Use it as a shortlist, not a verdict.</strong> The tracker tells you what is available. It does not tell you whether a module fits your data model or your processes — that part is still your call.</li>
<li><strong>Revisit it rather than bookmarking it once.</strong> Because the table refreshes daily, the useful habit is a quick check whenever you are scoping work on a new version.</li>
<li><strong>Watch the gap between versions.</strong> A module that is green on 19.0 and pending on 20.0 tells you exactly where to plan extra time.</li>
</ol>
<h2>Missing something you cannot work without</h2>
<p>The list is ours, but it does not have to stay that way. If there is an OCA module you check every single release — a localisation, an accounting edge case, a field service helper — tell us and we will add it to the tracker so it gets checked alongside the rest.</p>
<p>You can find the live table on <a href="https://odoo4projects.com">ODOO4projects.com</a>, or leave your favourite OCA module in the comments and we will take it from there.</p>
</div>
</article>
<div class="post-footer">
<a href="../../index.html#blog">&larr; Back to all posts</a>
</div>
</div>
</main>
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
</body>
</html>