Warm styleguide homepage, JSON post feed from n8n, daily sync
- css/site.css: oat/espresso palette, Fraunces display, rounded surfaces, warm photo grade - index.html: Module of the Month replaced by the blog; tips, blog and community sections render from data/posts.json - js/feed.js: client-side feed + search over one manifest (blog/index.json technique) - scripts/sync_posts.py: daily webhook fetch, image download, dedupe by id and content hash, non-image attachments skipped - data/posts.json: manifest, one published post (Odoo 20 Community review)
This commit is contained in:
1 parent
a46e513f50
commit
77d3f00072
8 files changed
+1088
-348
No files matched your search
+28
-82
@@ -6,9 +6,10 @@
|
||||
<title>The OC Guy — Odoo Community tips, modules and community news</title>
|
||||
<meta name="description" content="Welcome. Practical tips and tricks for Odoo Community, the open-source ERP: install it, back it up, extend it, and put AI on top. By The OC Guy, Oliver Arnold.">
|
||||
<meta name="color-scheme" content="light">
|
||||
<meta name="theme-color" content="#F2E9D6">
|
||||
<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=Playfair+Display:ital,wght@0,400;0,500;0,700;1,400;1,500&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,300..600&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="css/site.css">
|
||||
</head>
|
||||
<body>
|
||||
@@ -20,7 +21,7 @@
|
||||
<nav class="nav" aria-label="Sections">
|
||||
<a href="#welcome">Welcome</a>
|
||||
<a href="#tips">Tips</a>
|
||||
<a href="#module">Modules</a>
|
||||
<a href="#blog">Blog</a>
|
||||
<a href="#community">Community</a>
|
||||
<a href="#ask">About</a>
|
||||
</nav>
|
||||
@@ -60,66 +61,32 @@
|
||||
<header class="section-head">
|
||||
<span class="initial" aria-hidden="true">T</span>
|
||||
<h2 class="section-title" id="tips-title"><span class="kicker">The latest in</span> <em>Tips & Tricks</em></h2>
|
||||
<a class="more" href="https://www.odoo.com/documentation" target="_blank" rel="noopener">View all tips</a>
|
||||
<a class="more" href="#blog">All posts</a>
|
||||
</header>
|
||||
|
||||
<div class="cards">
|
||||
<a class="card" href="https://www.odoo.com/documentation" target="_blank" rel="noopener">
|
||||
<img class="card-img" src="assets/tip-install.jpg" alt="Two plain cardboard boxes stacked on a wooden table" width="1000" height="649">
|
||||
<span class="card-cat">Install</span>
|
||||
<h3>Run Odoo from Docker Compose, not from source</h3>
|
||||
<p class="card-desc">Two containers, one file, a volume you can copy. The shortest path to a server you
|
||||
understand and can move next year without a migration project.</p>
|
||||
<span class="card-meta">6 min read</span>
|
||||
</a>
|
||||
|
||||
<a class="card" href="https://www.odoo.com/documentation" target="_blank" rel="noopener">
|
||||
<img class="card-img" src="assets/tip-backup.jpg" alt="Rows of old book spines lined up on a shelf" width="1000" height="666">
|
||||
<span class="card-cat">Backup</span>
|
||||
<h3>Dump the database nightly and restore it monthly</h3>
|
||||
<p class="card-desc">A backup you have never restored is a hope, not a backup. One pg_dump, one cron line,
|
||||
and a restore into a scratch copy that takes four minutes.</p>
|
||||
<span class="card-meta">4 min read</span>
|
||||
</a>
|
||||
|
||||
<a class="card" href="https://github.com/OCA" target="_blank" rel="noopener">
|
||||
<img class="card-img" src="assets/tip-extend.jpg" alt="Hand tools, a clamp and a hammer on a workbench" width="1000" height="666">
|
||||
<span class="card-cat">Extend</span>
|
||||
<h3>Take an OCA module before you write your own</h3>
|
||||
<p class="card-desc">Someone already solved your problem and maintains it for every series. Reading their
|
||||
code teaches you the ORM faster than any tutorial.</p>
|
||||
<span class="card-meta">8 min read</span>
|
||||
</a>
|
||||
<div class="feed-tools">
|
||||
<label class="sr-only" for="tipsSearch">Search tips and tricks</label>
|
||||
<input id="tipsSearch" class="feed-search" type="search" placeholder="Search the tips…" autocomplete="off">
|
||||
<span class="feed-count"><span id="tipsCount">0</span> posts</span>
|
||||
</div>
|
||||
|
||||
<div class="cards" id="tipsGrid" data-feed="tips"></div>
|
||||
</section>
|
||||
|
||||
<section class="section" id="module" aria-labelledby="module-title">
|
||||
<section class="section" id="blog" aria-labelledby="blog-title">
|
||||
<header class="section-head">
|
||||
<span class="initial" aria-hidden="true">M</span>
|
||||
<h2 class="section-title" id="module-title"><span class="kicker">Featured</span> <em>Module of the month</em></h2>
|
||||
<span class="initial" aria-hidden="true">B</span>
|
||||
<h2 class="section-title" id="blog-title"><span class="kicker">Everything</span> <em>The OC Guy blog</em></h2>
|
||||
<a class="more" href="#community">Community news</a>
|
||||
</header>
|
||||
|
||||
<div class="feature">
|
||||
<figure class="feature-photo">
|
||||
<img src="assets/module-inventory.jpg" alt="Steel shelving in a warehouse, stock and pallets stacked to the ceiling" width="1600" height="1067">
|
||||
</figure>
|
||||
|
||||
<div class="feature-body">
|
||||
<p class="plate-kicker">Odoo Community · LGPL-3 · series 18.0</p>
|
||||
<h3 class="feature-name">Inventory, before you buy anything</h3>
|
||||
<p>One module holds what you own, where it sits and what it is worth: stock moves, reordering rules,
|
||||
lots and serial numbers, three warehouse steps if you need them, one if you do not.</p>
|
||||
<ul class="benefits">
|
||||
<li><strong>Real stock, not a spreadsheet</strong>Every receipt, delivery and adjustment is a move with a date and a person behind it.</li>
|
||||
<li><strong>Barcode-ready on day one</strong>The Community module ships the operations your scanner needs; no paid add-on.</li>
|
||||
<li><strong>Multi-warehouse without a second system</strong>Locations, routes and reordering rules live in the same database as your invoices.</li>
|
||||
</ul>
|
||||
<div class="feature-actions">
|
||||
<a class="btn" href="https://www.odoo.com/documentation/18.0/applications/inventory_and_mrp/inventory.html" target="_blank" rel="noopener">Explore module</a>
|
||||
<span class="feature-note">Free in the Community edition · installs from Apps</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="feed-tools">
|
||||
<label class="sr-only" for="blogSearch">Search the blog</label>
|
||||
<input id="blogSearch" class="feed-search" type="search" placeholder="Search every post…" autocomplete="off">
|
||||
<span class="feed-count"><span id="blogCount">0</span> posts</span>
|
||||
</div>
|
||||
|
||||
<div class="cards" id="blogGrid" data-feed="blog"></div>
|
||||
</section>
|
||||
|
||||
<section class="section oca" id="oca" aria-labelledby="oca-title">
|
||||
@@ -194,35 +161,13 @@
|
||||
<a class="more" href="https://github.com/OCA" target="_blank" rel="noopener">View all community news</a>
|
||||
</header>
|
||||
|
||||
<ul class="news">
|
||||
<li>
|
||||
<span class="news-date"><time datetime="2026-10-23">23 Oct 2026</time></span>
|
||||
<div class="news-body">
|
||||
<h3><a href="https://github.com/OCA/rma" target="_blank" rel="noopener">RMA: returns, repairs and replacements inside Odoo</a></h3>
|
||||
<p>Return Merchandise Authorization for the whole flow — the customer sends it back, you decide repair
|
||||
or credit, the stock move happens once.</p>
|
||||
</div>
|
||||
<span class="news-source">github.com/OCA/rma</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="news-date"><time datetime="2026-10-23">23 Oct 2026</time></span>
|
||||
<div class="news-body">
|
||||
<h3><a href="https://github.com/OCA/helpdesk" target="_blank" rel="noopener">Helpdesk modules that stay out of your way</a></h3>
|
||||
<p>Tickets, teams and SLAs without the enterprise edition: the OCA helpdesk repository keeps a branch
|
||||
per supported series, so an upgrade does not orphan your support desk.</p>
|
||||
</div>
|
||||
<span class="news-source">github.com/OCA/helpdesk</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="news-date"><time datetime="2026-10-23">23 Oct 2026</time></span>
|
||||
<div class="news-body">
|
||||
<h3><a href="https://github.com/OCA/l10n-italy" target="_blank" rel="noopener">Localisation is community work: Italy's charts, kept current</a></h3>
|
||||
<p>Tax reports, e-invoicing and the country chart of accounts, maintained by the people who file with
|
||||
them. The same pattern exists for your country.</p>
|
||||
</div>
|
||||
<span class="news-source">github.com/OCA/l10n-italy</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="feed-tools">
|
||||
<label class="sr-only" for="newsSearch">Search community news</label>
|
||||
<input id="newsSearch" class="feed-search" type="search" placeholder="Search the news…" autocomplete="off">
|
||||
<span class="feed-count"><span id="newsCount">0</span> posts</span>
|
||||
</div>
|
||||
|
||||
<ul class="news" id="newsList" data-feed="news"></ul>
|
||||
</section>
|
||||
|
||||
<section class="ask" id="ask" aria-labelledby="ask-title">
|
||||
@@ -258,5 +203,6 @@
|
||||
</footer>
|
||||
|
||||
<script src="js/site.js" defer></script>
|
||||
<script src="js/feed.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user