Public Access
cache-bust local assets; narrow the language facet to scores >= 3
Part 1 — asset versioning: every local <script src> and <link rel=stylesheet> on the tracked pages now carries ?v=<sha256-of-the-file> (10 hex), computed at BUILD time from the file's bytes by work/build-asset-versions.py — never hand-typed, and idempotent (re-running with no file change rewrites nothing). This is what makes an edited focus-rule.js / photo-upload.js a new URL instead of a stale cache hit. Part 2 — language facet: a language now counts for the Language filter only when its 0-5 self-assessment is >= LANG_FACET_MIN (3 = 'works in it'). The constant sits beside the 15-point rule in the page script and its mirror in build-directory.py. Nothing stored changes; the card's languages chart still prints every language above 0, the search box is unchanged, and the facet stays an exact membership test against the card's value. A '1' language no longer offers the person under that language.
This commit is contained in:
1 parent
c83186f809
commit
bd0881f882
51 files changed
+138
-118
No files matched your search
+2
-2
@@ -28,7 +28,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Australia landing page (page-scoped; additive) ---- */
|
/* ---- Australia landing page (page-scoped; additive) ---- */
|
||||||
.cmp-sr-only {
|
.cmp-sr-only {
|
||||||
@@ -391,7 +391,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<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 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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
@@ -325,6 +325,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<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 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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
.blog-header {
|
.blog-header {
|
||||||
padding: 2rem 0;
|
padding: 2rem 0;
|
||||||
@@ -275,6 +275,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<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 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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&display=swap"
|
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"
|
rel="stylesheet"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* Blog post specific overrides — matching homepage light theme */
|
/* Blog post specific overrides — matching homepage light theme */
|
||||||
body {
|
body {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
@@ -277,6 +277,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
@@ -296,6 +296,6 @@ Admin credentials: sent via email</code></pre>
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
@@ -263,7 +263,7 @@
|
|||||||
</main>
|
</main>
|
||||||
<script
|
<script
|
||||||
defer
|
defer
|
||||||
src="/static/agent-odoo4projects/agent.js"
|
src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"
|
||||||
></script>
|
></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
* {
|
* {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@@ -263,7 +263,7 @@
|
|||||||
</main>
|
</main>
|
||||||
<script
|
<script
|
||||||
defer
|
defer
|
||||||
src="/static/agent-odoo4projects/agent.js"
|
src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"
|
||||||
></script>
|
></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<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 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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
@@ -175,6 +175,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<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 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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<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 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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<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 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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
body { background: #0d1b2e; }
|
body { background: #0d1b2e; }
|
||||||
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
.blog-post { max-width: 720px; margin: 0 auto; padding: 3rem 1.5rem 6rem; color: #171c26; background: #faf7f1; min-height: 100vh; }
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* Blog post specific styles — leverages CSS vars from style.css */
|
/* Blog post specific styles — leverages CSS vars from style.css */
|
||||||
:root {
|
:root {
|
||||||
@@ -311,6 +311,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
.container {
|
.container {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
@@ -250,6 +250,6 @@ Odoo > Settings > Technical > Scheduled Actions > backup job</code><
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
@@ -267,6 +267,6 @@ Password: (check your email)</code></pre>
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="../../style.css" />
|
<link rel="stylesheet" href="../../style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary: #714b67;
|
--primary: #714b67;
|
||||||
@@ -165,6 +165,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+4
-4
@@ -220,14 +220,14 @@
|
|||||||
#customQuoteModal .biz-success p{color:var(--midnight)}
|
#customQuoteModal .biz-success p{color:var(--midnight)}
|
||||||
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
|
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<!-- Privacy-friendly analytics by Plausible -->
|
<!-- Privacy-friendly analytics by Plausible -->
|
||||||
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
||||||
<script>
|
<script>
|
||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!--
|
<!--
|
||||||
@@ -672,7 +672,7 @@
|
|||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
||||||
<script src="/script.js"></script>
|
<script src="/script.js?v=d2046e3469"></script>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
||||||
.oc-sr-only {
|
.oc-sr-only {
|
||||||
@@ -479,7 +479,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
||||||
.bc-sr-only {
|
.bc-sr-only {
|
||||||
@@ -1018,9 +1018,9 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/buy.js"></script>
|
<script defer src="/static/buy.js?v=31314de600"></script>
|
||||||
<script defer src="/static/bootcamp-availability.js"></script>
|
<script defer src="/static/bootcamp-availability.js?v=94dfd8cd7c"></script>
|
||||||
<script defer src="/static/bootcamp-waitlist.js"></script>
|
<script defer src="/static/bootcamp-waitlist.js?v=6c2e2fbd33"></script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
||||||
.cmp-sr-only {
|
.cmp-sr-only {
|
||||||
@@ -559,7 +559,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
||||||
|
|||||||
+3
-3
@@ -29,7 +29,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
||||||
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
||||||
@@ -274,7 +274,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
@@ -586,6 +586,6 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+4
-4
@@ -220,14 +220,14 @@
|
|||||||
#customQuoteModal .biz-success p{color:var(--midnight)}
|
#customQuoteModal .biz-success p{color:var(--midnight)}
|
||||||
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
|
@media(max-width:600px){.oca-table td,.oca-table th{padding:.5rem .65rem;font-size:.8rem}.ow-panel{left:5%;right:5%}.ow-close{top:.5rem;right:.5rem;font-size:1.6rem}}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<!-- Privacy-friendly analytics by Plausible -->
|
<!-- Privacy-friendly analytics by Plausible -->
|
||||||
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
||||||
<script>
|
<script>
|
||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!--
|
<!--
|
||||||
@@ -672,7 +672,7 @@
|
|||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
||||||
<script src="/script.js"></script>
|
<script src="/script.js?v=d2046e3469"></script>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
||||||
.oc-sr-only {
|
.oc-sr-only {
|
||||||
@@ -479,7 +479,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
||||||
.bc-sr-only {
|
.bc-sr-only {
|
||||||
@@ -1018,9 +1018,9 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/buy.js"></script>
|
<script defer src="/static/buy.js?v=31314de600"></script>
|
||||||
<script defer src="/static/bootcamp-availability.js"></script>
|
<script defer src="/static/bootcamp-availability.js?v=94dfd8cd7c"></script>
|
||||||
<script defer src="/static/bootcamp-waitlist.js"></script>
|
<script defer src="/static/bootcamp-waitlist.js?v=6c2e2fbd33"></script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
||||||
.cmp-sr-only {
|
.cmp-sr-only {
|
||||||
@@ -559,7 +559,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
||||||
|
|||||||
+3
-3
@@ -29,7 +29,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
||||||
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
||||||
@@ -274,7 +274,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
@@ -586,6 +586,6 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+1
-1
@@ -28,7 +28,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Utility page, same shell as /freelancer-edit/ and the top bar of
|
/* Utility page, same shell as /freelancer-edit/ and the top bar of
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Utility page. Deliberately small: no hero, no footer, no site chrome beyond a
|
/* Utility page. Deliberately small: no hero, no footer, no site chrome beyond a
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Utility page. Deliberately small: no hero, no footer, no site chrome beyond a brand
|
/* Utility page. Deliberately small: no hero, no footer, no site chrome beyond a brand
|
||||||
@@ -147,8 +147,8 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- The 15-point rule, in ONE copy for both forms (this one and the application form). -->
|
<!-- The 15-point rule, in ONE copy for both forms (this one and the application form). -->
|
||||||
<script src="/static/focus-rule.js"></script>
|
<script src="/static/focus-rule.js?v=22ac72a8f0"></script>
|
||||||
<script src="/static/photo-upload.js"></script>
|
<script src="/static/photo-upload.js?v=c17638457b"></script>
|
||||||
|
|
||||||
<!-- 1) Read the credential, then take it OUT of the address bar.
|
<!-- 1) Read the credential, then take it OUT of the address bar.
|
||||||
The hash arrives as ?has=... or ?hash=... (both spellings accepted, 'has' first — the
|
The hash arrives as ?has=... or ?hash=... (both spellings accepted, 'has' first — the
|
||||||
|
|||||||
+4
-4
@@ -230,14 +230,14 @@
|
|||||||
.bf-topbar-cta{color:var(--brass);white-space:nowrap}
|
.bf-topbar-cta{color:var(--brass);white-space:nowrap}
|
||||||
.bf-topbar:hover .bf-topbar-cta,.bf-topbar:focus-visible .bf-topbar-cta{color:var(--brass-bright)}
|
.bf-topbar:hover .bf-topbar-cta,.bf-topbar:focus-visible .bf-topbar-cta{color:var(--brass-bright)}
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
||||||
<!-- Privacy-friendly analytics by Plausible -->
|
<!-- Privacy-friendly analytics by Plausible -->
|
||||||
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
<script async src="https://plausible.office.odoo4projects.com/js/pa-NhA7Rf-79VopXFQXhSS4e.js"></script>
|
||||||
<script>
|
<script>
|
||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!--
|
<!--
|
||||||
@@ -701,7 +701,7 @@
|
|||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
||||||
<script src="script.js"></script>
|
<script src="script.js?v=d2046e3469"></script>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+2
-2
@@ -25,7 +25,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
.legal-hero {
|
.legal-hero {
|
||||||
padding: 4rem 0 2.5rem;
|
padding: 4rem 0 2.5rem;
|
||||||
@@ -204,6 +204,6 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" /></noscript>
|
<noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Black Friday 2026 page (page-scoped; additive) ---- */
|
/* ---- Odoo Black Friday 2026 page (page-scoped; additive) ---- */
|
||||||
.bf-sr-only {
|
.bf-sr-only {
|
||||||
@@ -744,7 +744,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Hero — copied from the homepage (index.html): same component, same behaviour. On load the
|
<!-- Hero — copied from the homepage (index.html): same component, same behaviour. On load the
|
||||||
@@ -1275,7 +1275,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
|
||||||
<script defer src="/static/black-friday.js"></script>
|
<script defer src="/static/black-friday.js?v=df1f299dc5"></script>
|
||||||
<script defer src="/static/ads-consent.js"></script>
|
<script defer src="/static/ads-consent.js?v=0cc2bfb809"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- "Odoo Community + AI agent" page (page-scoped; additive).
|
/* ---- "Odoo Community + AI agent" page (page-scoped; additive).
|
||||||
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
|
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
|
||||||
@@ -937,6 +937,6 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Freelancer records — admin (page-scoped). Internal page, never linked. ---- */
|
/* ---- Freelancer records — admin (page-scoped). Internal page, never linked. ---- */
|
||||||
.adm-bar {
|
.adm-bar {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- "Odoo Community developers" directory (page-scoped; additive).
|
/* ---- "Odoo Community developers" directory (page-scoped; additive).
|
||||||
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
|
Reuses the top bar, band rhythm, hero, FAQ and final-CTA treatment already
|
||||||
@@ -2039,9 +2039,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
<script src="/static/focus-rule.js"></script>
|
<script src="/static/focus-rule.js?v=22ac72a8f0"></script>
|
||||||
<script src="/static/photo-upload.js"></script>
|
<script src="/static/photo-upload.js?v=c17638457b"></script>
|
||||||
<script>
|
<script>
|
||||||
/* ============================================================================
|
/* ============================================================================
|
||||||
Odoo freelancer directory — page script.
|
Odoo freelancer directory — page script.
|
||||||
@@ -2089,6 +2089,14 @@
|
|||||||
var FOCUS_AXES = ["functional", "system", "modules", "integration", "ai"];
|
var FOCUS_AXES = ["functional", "system", "modules", "integration", "ai"];
|
||||||
var FOCUS_TOTAL = O4PFocus.TOTAL; // the shared rule (static/focus-rule.js)
|
var FOCUS_TOTAL = O4PFocus.TOTAL; // the shared rule (static/focus-rule.js)
|
||||||
var FOCUS_MAX = O4PFocus.MAX;
|
var FOCUS_MAX = O4PFocus.MAX;
|
||||||
|
// THE FACET THRESHOLD — sits beside the 15-point rule. Mirrored verbatim in
|
||||||
|
// work/build-directory.py (`LANG_FACET_MIN`). A language counts for the Language
|
||||||
|
// FILTER only when its 0-5 self-assessment is >= this (3 = "works in it",
|
||||||
|
// 5 = native). It is OUR reading, not the freelancer's: it changes nothing stored
|
||||||
|
// and nothing the card shows (the chain below still prints every language above 0).
|
||||||
|
// Without it, a "1" offered the person under that language and the facet could not
|
||||||
|
// narrow. Do not change any stored score.
|
||||||
|
var LANG_FACET_MIN = 3;
|
||||||
var FOCUS_AXIS_LABELS = {
|
var FOCUS_AXIS_LABELS = {
|
||||||
functional: "Functional", system: "System", modules: "Modules",
|
functional: "Functional", system: "System", modules: "Modules",
|
||||||
integration: "Integration", ai: "AI"
|
integration: "Integration", ai: "AI"
|
||||||
@@ -2368,6 +2376,18 @@
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* The languages the Language FILTER matches on — score >= LANG_FACET_MIN. Separate
|
||||||
|
from liveLangsDeclared(): the facet is narrower than the card's list, so a "1"
|
||||||
|
language is still shown on the card but no longer offers the person under it.
|
||||||
|
This feeds ONLY the facet attribute + the filter options, never the card. */
|
||||||
|
function liveLangsFacet(rec) {
|
||||||
|
var scores = liveLangScores(rec), out = [];
|
||||||
|
LANG_FIELDS.forEach(function (p) {
|
||||||
|
if (scores[p[1]] >= LANG_FACET_MIN) out.push(p[1]);
|
||||||
|
});
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
function liveAxisRows(rec) {
|
function liveAxisRows(rec) {
|
||||||
var rows = [];
|
var rows = [];
|
||||||
FOCUS_AXES.forEach(function (axis) {
|
FOCUS_AXES.forEach(function (axis) {
|
||||||
@@ -2426,7 +2446,7 @@
|
|||||||
return (isNaN(n) || n <= 0) ? "" : "yes";
|
return (isNaN(n) || n <= 0) ? "" : "yes";
|
||||||
}
|
}
|
||||||
if (kind === "oca") return liveOcaLink(rec) ? "1" : "";
|
if (kind === "oca") return liveOcaLink(rec) ? "1" : "";
|
||||||
if (kind === "langnum") return liveLangsDeclared(rec).map(fold).join("|");
|
if (kind === "langnum") return liveLangsFacet(rec).map(fold).join("|");
|
||||||
return liveValues(rec, field).map(fold).join("|");
|
return liveValues(rec, field).map(fold).join("|");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2592,7 +2612,7 @@
|
|||||||
} else if (kind === "langnum") {
|
} else if (kind === "langnum") {
|
||||||
var seenL = [];
|
var seenL = [];
|
||||||
records.forEach(function (r) {
|
records.forEach(function (r) {
|
||||||
liveLangsDeclared(r).forEach(function (v) {
|
liveLangsFacet(r).forEach(function (v) {
|
||||||
if (!seenL.some(function (s) { return fold(s) === fold(v); })) seenL.push(v);
|
if (!seenL.some(function (s) { return fold(s) === fold(v); })) seenL.push(v);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
/* ---- Odoo Community Upgrade page (page-scoped; additive) ---- */
|
||||||
.oc-sr-only {
|
.oc-sr-only {
|
||||||
@@ -479,7 +479,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-mobile-900.webp" media="(max-width: 640px)" fetchpriority="high" />
|
||||||
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
<link rel="preload" as="image" href="/images/hero/bootcamp-hero-desktop-1920.webp" media="(min-width: 641px)" fetchpriority="high" />
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
/* ---- ODOO ERP Automation Bootcamp landing page (page-scoped; additive) ---- */
|
||||||
.bc-sr-only {
|
.bc-sr-only {
|
||||||
@@ -1039,9 +1039,9 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/buy.js"></script>
|
<script defer src="/static/buy.js?v=31314de600"></script>
|
||||||
<script defer src="/static/bootcamp-availability.js"></script>
|
<script defer src="/static/bootcamp-availability.js?v=94dfd8cd7c"></script>
|
||||||
<script defer src="/static/bootcamp-waitlist.js"></script>
|
<script defer src="/static/bootcamp-waitlist.js?v=6c2e2fbd33"></script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
/* ---- Odoo Hosting 2027 landing page (page-scoped; additive) ---- */
|
||||||
.cmp-sr-only {
|
.cmp-sr-only {
|
||||||
@@ -559,7 +559,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Odoo Hosting Offers (evergreen hub) page (page-scoped; additive) ---- */
|
/* ---- Odoo Hosting Offers (evergreen hub) page (page-scoped; additive) ---- */
|
||||||
.of-sr-only {
|
.of-sr-only {
|
||||||
@@ -449,7 +449,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
<!-- Page-scoped top bar: the site has no global header, so the page carries its own way home. -->
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- ODOO x N8N Masterclass landing page (page-scoped; additive).
|
/* ---- ODOO x N8N Masterclass landing page (page-scoped; additive).
|
||||||
The block below is the bootcamp page's page-scoped CSS, reused so the two
|
The block below is the bootcamp page's page-scoped CSS, reused so the two
|
||||||
@@ -831,7 +831,7 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/buy.js"></script>
|
<script defer src="/static/buy.js?v=31314de600"></script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- "Odoo staging environment" guide page (page-scoped; additive).
|
/* ---- "Odoo staging environment" guide page (page-scoped; additive).
|
||||||
Reuses the top bar, band rhythm, hero and FAQ treatment already shipped on
|
Reuses the top bar, band rhythm, hero and FAQ treatment already shipped on
|
||||||
@@ -822,6 +822,6 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+3
-3
@@ -27,8 +27,8 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" media="print" onload="this.media='all'" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" media="print" onload="this.media='all'" />
|
||||||
<noscript><link rel="stylesheet" href="/style.css" /></noscript>
|
<noscript><link rel="stylesheet" href="/style.css?v=3332fbba93" /></noscript>
|
||||||
<style>
|
<style>
|
||||||
/* ---- Partner briefing for Andrew (page-scoped; additive) ---- */
|
/* ---- Partner briefing for Andrew (page-scoped; additive) ---- */
|
||||||
.andrew-sr-only {
|
.andrew-sr-only {
|
||||||
@@ -700,6 +700,6 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+2
-2
@@ -25,7 +25,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
.legal-hero {
|
.legal-hero {
|
||||||
padding: 4rem 0 2.5rem;
|
padding: 4rem 0 2.5rem;
|
||||||
@@ -205,6 +205,6 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+3
-3
@@ -29,7 +29,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
/* Language selector — the page's top row: the back-link stays left, the selector travels right.
|
||||||
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
Cream canvas, so lang.js's own dark-brass active colour is the correct one (no override). */
|
||||||
@@ -274,7 +274,7 @@
|
|||||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
plausible.init()
|
plausible.init()
|
||||||
</script>
|
</script>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
@@ -590,6 +590,6 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+2
-2
@@ -25,7 +25,7 @@
|
|||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||||
/>
|
/>
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
.legal-hero {
|
.legal-hero {
|
||||||
padding: 4rem 0 2.5rem;
|
padding: 4rem 0 2.5rem;
|
||||||
@@ -195,6 +195,6 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
<script defer src="/static/agent-odoo4projects/agent.js"></script>
|
<script defer src="/static/agent-odoo4projects/agent.js?v=c3bb0cee2b"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- "What Can I Use Odoo For?" guide page (page-scoped; additive).
|
/* ---- "What Can I Use Odoo For?" guide page (page-scoped; additive).
|
||||||
The block below is odoo-community-upgrade.html's page-scoped CSS, reused so
|
The block below is odoo-community-upgrade.html's page-scoped CSS, reused so
|
||||||
@@ -952,6 +952,6 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
onload="this.media='all'"
|
onload="this.media='all'"
|
||||||
/>
|
/>
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Marcellus&display=swap" /></noscript>
|
||||||
<link rel="stylesheet" href="/style.css" />
|
<link rel="stylesheet" href="/style.css?v=3332fbba93" />
|
||||||
<style>
|
<style>
|
||||||
/* ---- Workshops and Classes hub page (page-scoped; additive).
|
/* ---- Workshops and Classes hub page (page-scoped; additive).
|
||||||
The block below is the bootcamp page's page-scoped CSS, reused so the two
|
The block below is the bootcamp page's page-scoped CSS, reused so the two
|
||||||
@@ -788,6 +788,6 @@
|
|||||||
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
<div class="fcopy">Copyright © ODOO4projects LLC</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script defer src="/static/lang.js"></script>
|
<script defer src="/static/lang.js?v=3ec49a7e62"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Reference in new issue
Block a user