diff --git a/odoo-community-developers/admin/index.html b/odoo-community-developers/admin/index.html index 042abec..937dcae 100644 --- a/odoo-community-developers/admin/index.html +++ b/odoo-community-developers/admin/index.html @@ -324,7 +324,10 @@ var ODOO_EXPERTS_WEBHOOK = "https://n8n.odoo4projects.com/webhook/ODOO4projects/odoo_experts"; - var MULTI_FIELDS = ["languages", "specialities", "odoo_versions"]; // comma-separated → array + var MULTI_FIELDS = ["odoo_versions"]; // comma-separated → array + // `languages` and `specialities` are COMMA-SEPARATED STRINGS on the wire + // ("English,German"), NOT arrays. `odoo_versions` stays an array. + var CSV_STRING_FIELDS = ["languages", "specialities"]; var BOOL_FIELDS = ["OCA_member", "is_individual"]; var NUM_FIELDS = ["odoo4projects_clients"]; var TEXT_FIELDS = [ @@ -456,6 +459,19 @@ return; } + if (CSV_STRING_FIELDS.indexOf(name) !== -1) { + // Normalise to the wire shape: trim each entry, drop blanks, re-join. + var norm = (els[0].value || "") + .split(",") + .map(function (s) { + return s.trim(); + }) + .filter(Boolean) + .join(","); + if (norm) payload[name] = norm; // an empty box must not wipe the field + return; + } + if (BOOL_FIELDS.indexOf(name) !== -1) { var box = els[0]; if (withId && box.dataset.loaded !== undefined) { diff --git a/odoo-community-developers/index.html b/odoo-community-developers/index.html index 538e9f3..a7a0dfc 100644 --- a/odoo-community-developers/index.html +++ b/odoo-community-developers/index.html @@ -460,6 +460,59 @@ color: #b3452f; } + /* The explicit freelancer pick-list (form 3). A real list over the directory — + never a free-text box and never an implicit "all". */ + .dir-pickfield { + border: 1px solid var(--line); + border-radius: var(--radius); + padding: 0.85rem 0.9rem 0.6rem; + min-width: 0; + } + .section-dark .dir-pickfield { + border-color: var(--line-brass); + } + .dir-pickfield legend { + font-size: 0.8rem; + font-weight: 600; + color: var(--midnight); + padding: 0 0.35rem; + } + .section-dark .dir-pickfield legend { + color: rgba(255, 255, 255, 0.85); + } + .dir-picklist { + display: flex; + flex-wrap: wrap; + gap: 0.5rem 1rem; + } + .dir-picklist .pick { + display: flex; + align-items: baseline; + gap: 0.45rem; + font-size: 0.9rem; + color: var(--ink); + } + .section-dark .dir-picklist .pick { + color: rgba(255, 255, 255, 0.85); + } + .dir-picklist .pick input { + width: auto; + margin: 0; + align-self: center; + } + .dir-picklist .pick .hint { + font-size: 0.78rem; + color: var(--ink-soft); + } + .section-dark .dir-picklist .pick .hint { + color: rgba(255, 255, 255, 0.6); + } + .dir-picklist-empty { + margin: 0; + font-size: 0.9rem; + color: var(--ink-soft); + } + /* Final CTA */ .cmp-cta { text-align: center; @@ -601,7 +654,7 @@
Write to a freelancer directly. Each card carries what that freelancer published — their focus, their languages, the work they take on, and their contact details where they chose to publish them. We do not rate them and we do not recommend one over another.
-Or let us ask them for you. We forward your brief to the freelancers you choose, without your name attached. That service is not switched on yet — see Post a request below.
+Or let us ask them for you. Post your brief once and pick the freelancers you want it to reach. We forward it to them with no name attached, and we send their answers back to you — see Post a request below.
Either way the work is agreed between you and the freelancer. We publish the listings; the project and the contract are yours.
We are building the anonymous request: you write your brief once, we forward it to the freelancers you choose with no name attached, and we send their answers back to you. It is not switched on yet. Until it is, email hello@odoo4projects.com with your brief and we will pass it on by hand.
+Pick the freelancers you want to hear from, describe the work in your own words, and leave an address for the answers. We forward your brief to them with no name attached, collect what they send back, and pass it on to you. The freelancers answer when they can — we do not promise a time.
Send us your name and a fellow freelancer's email address. We email them one invitation to sign up — from ODOO4projects, not from your address — and we tell them you suggested it. We use their address for that invitation only.
+Browse the freelancers and write to one directly from their card — or email us your brief and we will pass it on by hand until the anonymous request service is switched on.
+Browse the freelancers and write to one directly from their card — or post your brief and we will forward it to the freelancers you pick, with no name attached.