templates/page/home.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}
  3.     Offres d’emploi et missions freelance sur WorkDispo
  4. {% endblock %}
  5. {% block meta %}
  6.     <meta charset="utf-8">
  7.     <meta name="description"
  8.           content="Offres d’emploi et mission freelance sans commission sur WorkDispo (ex Freelance Dispo) avec mise en relation entre candidats et recruteurs, et c'est 100% gratuit.">
  9.     <meta name="keywords" content="freelance, dispo, missions, it">
  10.     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=3">
  11.     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
  12.     <script type="text/javascript">(window.NREUM || (NREUM = {})).init = {ajax: {deny_list: ["bam.nr-data.net"]}};
  13.         (window.NREUM || (NREUM = {})).loader_config = {
  14.             licenseKey: "NRJS-8c6c895b97ea60d5ee0",
  15.             applicationID: "1333848373"
  16.         };
  17.         window.NREUM || (NREUM = {}), __nr_require = function (t, e, n) {
  18.             function r(n) {
  19.                 if (!e[n]) {
  20.                     var i = e[n] = {exports: {}};
  21.                     t[n][0].call(i.exports, function (e) {
  22.                         var i = t[n][1][e];
  23.                         return r(i || e)
  24.                     }, i, i.exports)
  25.                 }
  26.                 return e[n].exports
  27.             }
  28.             if ("function" == typeof __nr_require) return __nr_require;
  29.             for (var i = 0; i < n.length; i++) r(n[i]);
  30.             return r
  31.         }({
  32.             1: [function (t, e, n) {
  33.                 function r() {
  34.                 }
  35.                 function i(t, e, n, r) {
  36.                     return function () {
  37.                         return s.recordSupportability("API/" + e + "/called"), o(t + e, [u.now()].concat(c(arguments)), n ? null : this, r), n ? void 0 : this
  38.                     }
  39.                 }
  40.                 var o = t("handle"), a = t(9), c = t(10), f = t("ee").get("tracer"), u = t("loader"), s = t(4),
  41.                     d = NREUM;
  42.                 "undefined" == typeof window.newrelic && (newrelic = d);
  43.                 var p = ["setPageViewName", "setCustomAttribute", "setErrorHandler", "finished", "addToTrace", "inlineHit", "addRelease"],
  44.                     l = "api-", v = l + "ixn-";
  45.                 a(p, function (t, e) {
  46.                     d[e] = i(l, e, !0, "api")
  47.                 }), d.addPageAction = i(l, "addPageAction", !0), d.setCurrentRouteName = i(l, "routeName", !0), e.exports = newrelic, d.interaction = function () {
  48.                     return (new r).get()
  49.                 };
  50.                 var m = r.prototype = {
  51.                     createTracer: function (t, e) {
  52.                         var n = {}, r = this, i = "function" == typeof e;
  53.                         return o(v + "tracer", [u.now(), t, n], r), function () {
  54.                             if (f.emit((i ? "" : "no-") + "fn-start", [u.now(), r, i], n), i) try {
  55.                                 return e.apply(this, arguments)
  56.                             } catch (t) {
  57.                                 throw f.emit("fn-err", [arguments, this, t], n), t
  58.                             } finally {
  59.                                 f.emit("fn-end", [u.now()], n)
  60.                             }
  61.                         }
  62.                     }
  63.                 };
  64.                 a("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","), function (t, e) {
  65.                     m[e] = i(v, e)
  66.                 }), newrelic.noticeError = function (t, e) {
  67.                     "string" == typeof t && (t = new Error(t)), s.recordSupportability("API/noticeError/called"), o("err", [t, u.now(), !1, e])
  68.                 }
  69.             }, {}], 2: [function (t, e, n) {
  70.                 function r(t) {
  71.                     if (NREUM.init) {
  72.                         for (var e = NREUM.init, n = t.split("."), r = 0; r < n.length - 1; r++) if (e = e[n[r]], "object" != typeof e) return;
  73.                         return e = e[n[n.length - 1]]
  74.                     }
  75.                 }
  76.                 e.exports = {getConfiguration: r}
  77.             }, {}], 3: [function (t, e, n) {
  78.                 var r = !1;
  79.                 try {
  80.                     var i = Object.defineProperty({}, "passive", {
  81.                         get: function () {
  82.                             r = !0
  83.                         }
  84.                     });
  85.                     window.addEventListener("testPassive", null, i), window.removeEventListener("testPassive", null, i)
  86.                 } catch (o) {
  87.                 }
  88.                 e.exports = function (t) {
  89.                     return r ? {passive: !0, capture: !!t} : !!t
  90.                 }
  91.             }, {}], 4: [function (t, e, n) {
  92.                 function r(t, e) {
  93.                     var n = [a, t, {name: t}, e];
  94.                     return o("storeMetric", n, null, "api"), n
  95.                 }
  96.                 function i(t, e) {
  97.                     var n = [c, t, {name: t}, e];
  98.                     return o("storeEventMetrics", n, null, "api"), n
  99.                 }
  100.                 var o = t("handle"), a = "sm", c = "cm";
  101.                 e.exports = {
  102.                     constants: {SUPPORTABILITY_METRIC: a, CUSTOM_METRIC: c},
  103.                     recordSupportability: r,
  104.                     recordCustom: i
  105.                 }
  106.             }, {}], 5: [function (t, e, n) {
  107.                 function r() {
  108.                     return c.exists && performance.now ? Math.round(performance.now()) : (o = Math.max((new Date).getTime(), o)) - a
  109.                 }
  110.                 function i() {
  111.                     return o
  112.                 }
  113.                 var o = (new Date).getTime(), a = o, c = t(11);
  114.                 e.exports = r, e.exports.offset = a, e.exports.getLastTimestamp = i
  115.             }, {}], 6: [function (t, e, n) {
  116.                 function r(t, e) {
  117.                     var n = t.getEntries();
  118.                     n.forEach(function (t) {
  119.                         "first-paint" === t.name ? l("timing", ["fp", Math.floor(t.startTime)]) : "first-contentful-paint" === t.name && l("timing", ["fcp", Math.floor(t.startTime)])
  120.                     })
  121.                 }
  122.                 function i(t, e) {
  123.                     var n = t.getEntries();
  124.                     if (n.length > 0) {
  125.                         var r = n[n.length - 1];
  126.                         if (u && u < r.startTime) return;
  127.                         var i = [r], o = a({});
  128.                         o && i.push(o), l("lcp", i)
  129.                     }
  130.                 }
  131.                 function o(t) {
  132.                     t.getEntries().forEach(function (t) {
  133.                         t.hadRecentInput || l("cls", [t])
  134.                     })
  135.                 }
  136.                 function a(t) {
  137.                     var e = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
  138.                     if (e) return e.type && (t["net-type"] = e.type), e.effectiveType && (t["net-etype"] = e.effectiveType), e.rtt && (t["net-rtt"] = e.rtt), e.downlink && (t["net-dlink"] = e.downlink), t
  139.                 }
  140.                 function c(t) {
  141.                     if (t instanceof y && !w) {
  142.                         var e = Math.round(t.timeStamp), n = {type: t.type};
  143.                         a(n), e <= v.now() ? n.fid = v.now() - e : e > v.offset && e <= Date.now() ? (e -= v.offset, n.fid = v.now() - e) : e = v.now(), w = !0, l("timing", ["fi", e, n])
  144.                     }
  145.                 }
  146.                 function f(t) {
  147.                     "hidden" === t && (u = v.now(), l("pageHide", [u]))
  148.                 }
  149.                 if (!("init" in NREUM && "page_view_timing" in NREUM.init && "enabled" in NREUM.init.page_view_timing && NREUM.init.page_view_timing.enabled === !1)) {
  150.                     var u, s, d, p, l = t("handle"), v = t("loader"), m = t(8), g = t(3), y = NREUM.o.EV;
  151.                     if ("PerformanceObserver" in window && "function" == typeof window.PerformanceObserver) {
  152.                         s = new PerformanceObserver(r);
  153.                         try {
  154.                             s.observe({entryTypes: ["paint"]})
  155.                         } catch (h) {
  156.                         }
  157.                         d = new PerformanceObserver(i);
  158.                         try {
  159.                             d.observe({entryTypes: ["largest-contentful-paint"]})
  160.                         } catch (h) {
  161.                         }
  162.                         p = new PerformanceObserver(o);
  163.                         try {
  164.                             p.observe({type: "layout-shift", buffered: !0})
  165.                         } catch (h) {
  166.                         }
  167.                     }
  168.                     if ("addEventListener" in document) {
  169.                         var w = !1, b = ["click", "keydown", "mousedown", "pointerdown", "touchstart"];
  170.                         b.forEach(function (t) {
  171.                             document.addEventListener(t, c, g(!1))
  172.                         })
  173.                     }
  174.                     m(f)
  175.                 }
  176.             }, {}], 7: [function (t, e, n) {
  177.                 function r(t, e) {
  178.                     if (!i) return !1;
  179.                     if (t !== i) return !1;
  180.                     if (!e) return !0;
  181.                     if (!o) return !1;
  182.                     for (var n = o.split("."), r = e.split("."), a = 0; a < r.length; a++) if (r[a] !== n[a]) return !1;
  183.                     return !0
  184.                 }
  185.                 var i = null, o = null, a = /Version\/(\S+)\s+Safari/;
  186.                 if (navigator.userAgent) {
  187.                     var c = navigator.userAgent, f = c.match(a);
  188.                     f && c.indexOf("Chrome") === -1 && c.indexOf("Chromium") === -1 && (i = "Safari", o = f[1])
  189.                 }
  190.                 e.exports = {agent: i, version: o, match: r}
  191.             }, {}], 8: [function (t, e, n) {
  192.                 function r(t) {
  193.                     function e() {
  194.                         t(c && document[c] ? document[c] : document[o] ? "hidden" : "visible")
  195.                     }
  196.                     "addEventListener" in document && a && document.addEventListener(a, e, i(!1))
  197.                 }
  198.                 var i = t(3);
  199.                 e.exports = r;
  200.                 var o, a, c;
  201.                 "undefined" != typeof document.hidden ? (o = "hidden", a = "visibilitychange", c = "visibilityState") : "undefined" != typeof document.msHidden ? (o = "msHidden", a = "msvisibilitychange") : "undefined" != typeof document.webkitHidden && (o = "webkitHidden", a = "webkitvisibilitychange", c = "webkitVisibilityState")
  202.             }, {}], 9: [function (t, e, n) {
  203.                 function r(t, e) {
  204.                     var n = [], r = "", o = 0;
  205.                     for (r in t) i.call(t, r) && (n[o] = e(r, t[r]), o += 1);
  206.                     return n
  207.                 }
  208.                 var i = Object.prototype.hasOwnProperty;
  209.                 e.exports = r
  210.             }, {}], 10: [function (t, e, n) {
  211.                 function r(t, e, n) {
  212.                     e || (e = 0), "undefined" == typeof n && (n = t ? t.length : 0);
  213.                     for (var r = -1, i = n - e || 0, o = Array(i < 0 ? 0 : i); ++r < i;) o[r] = t[e + r];
  214.                     return o
  215.                 }
  216.                 e.exports = r
  217.             }, {}], 11: [function (t, e, n) {
  218.                 e.exports = {exists: "undefined" != typeof window.performance && window.performance.timing && "undefined" != typeof window.performance.timing.navigationStart}
  219.             }, {}], ee: [function (t, e, n) {
  220.                 function r() {
  221.                 }
  222.                 function i(t) {
  223.                     function e(t) {
  224.                         return t && t instanceof r ? t : t ? u(t, f, a) : a()
  225.                     }
  226.                     function n(n, r, i, o, a) {
  227.                         if (a !== !1 && (a = !0), !l.aborted || o) {
  228.                             t && a && t(n, r, i);
  229.                             for (var c = e(i), f = m(n), u = f.length, s = 0; s < u; s++) f[s].apply(c, r);
  230.                             var p = d[w[n]];
  231.                             return p && p.push([b, n, r, c]), c
  232.                         }
  233.                     }
  234.                     function o(t, e) {
  235.                         h[t] = m(t).concat(e)
  236.                     }
  237.                     function v(t, e) {
  238.                         var n = h[t];
  239.                         if (n) for (var r = 0; r < n.length; r++) n[r] === e && n.splice(r, 1)
  240.                     }
  241.                     function m(t) {
  242.                         return h[t] || []
  243.                     }
  244.                     function g(t) {
  245.                         return p[t] = p[t] || i(n)
  246.                     }
  247.                     function y(t, e) {
  248.                         l.aborted || s(t, function (t, n) {
  249.                             e = e || "feature", w[n] = e, e in d || (d[e] = [])
  250.                         })
  251.                     }
  252.                     var h = {}, w = {}, b = {
  253.                         on: o,
  254.                         addEventListener: o,
  255.                         removeEventListener: v,
  256.                         emit: n,
  257.                         get: g,
  258.                         listeners: m,
  259.                         context: e,
  260.                         buffer: y,
  261.                         abort: c,
  262.                         aborted: !1
  263.                     };
  264.                     return b
  265.                 }
  266.                 function o(t) {
  267.                     return u(t, f, a)
  268.                 }
  269.                 function a() {
  270.                     return new r
  271.                 }
  272.                 function c() {
  273.                     (d.api || d.feature) && (l.aborted = !0, d = l.backlog = {})
  274.                 }
  275.                 var f = "nr@context", u = t("gos"), s = t(9), d = {}, p = {}, l = e.exports = i();
  276.                 e.exports.getOrSetContext = o, l.backlog = d
  277.             }, {}], gos: [function (t, e, n) {
  278.                 function r(t, e, n) {
  279.                     if (i.call(t, e)) return t[e];
  280.                     var r = n();
  281.                     if (Object.defineProperty && Object.keys) try {
  282.                         return Object.defineProperty(t, e, {value: r, writable: !0, enumerable: !1}), r
  283.                     } catch (o) {
  284.                     }
  285.                     return t[e] = r, r
  286.                 }
  287.                 var i = Object.prototype.hasOwnProperty;
  288.                 e.exports = r
  289.             }, {}], handle: [function (t, e, n) {
  290.                 function r(t, e, n, r) {
  291.                     i.buffer([t], r), i.emit(t, e, n)
  292.                 }
  293.                 var i = t("ee").get("handle");
  294.                 e.exports = r, r.ee = i
  295.             }, {}], id: [function (t, e, n) {
  296.                 function r(t) {
  297.                     var e = typeof t;
  298.                     return !t || "object" !== e && "function" !== e ? -1 : t === window ? 0 : a(t, o, function () {
  299.                         return i++
  300.                     })
  301.                 }
  302.                 var i = 1, o = "nr@id", a = t("gos");
  303.                 e.exports = r
  304.             }, {}], loader: [function (t, e, n) {
  305.                 function r() {
  306.                     if (!M++) {
  307.                         var t = T.info = NREUM.info, e = m.getElementsByTagName("script")[0];
  308.                         if (setTimeout(u.abort, 3e4), !(t && t.licenseKey && t.applicationID && e)) return u.abort();
  309.                         f(x, function (e, n) {
  310.                             t[e] || (t[e] = n)
  311.                         });
  312.                         var n = a();
  313.                         c("mark", ["onload", n + T.offset], null, "api"), c("timing", ["load", n]);
  314.                         var r = m.createElement("script");
  315.                         0 === t.agent.indexOf("http://") || 0 === t.agent.indexOf("https://") ? r.src = t.agent : r.src = l + "://" + t.agent, e.parentNode.insertBefore(r, e)
  316.                     }
  317.                 }
  318.                 function i() {
  319.                     "complete" === m.readyState && o()
  320.                 }
  321.                 function o() {
  322.                     c("mark", ["domContent", a() + T.offset], null, "api")
  323.                 }
  324.                 var a = t(5), c = t("handle"), f = t(9), u = t("ee"), s = t(7), d = t(2), p = t(3),
  325.                     l = d.getConfiguration("ssl") === !1 ? "http" : "https", v = window, m = v.document,
  326.                     g = "addEventListener", y = "attachEvent", h = v.XMLHttpRequest, w = h && h.prototype, b = !1;
  327.                 NREUM.o = {
  328.                     ST: setTimeout,
  329.                     SI: v.setImmediate,
  330.                     CT: clearTimeout,
  331.                     XHR: h,
  332.                     REQ: v.Request,
  333.                     EV: v.Event,
  334.                     PR: v.Promise,
  335.                     MO: v.MutationObserver
  336.                 };
  337.                 var E = "" + location, x = {
  338.                     beacon: "bam.nr-data.net",
  339.                     errorBeacon: "bam.nr-data.net",
  340.                     agent: "js-agent.newrelic.com/nr-1216.min.js"
  341.                 }, O = h && w && w[g] && !/CriOS/.test(navigator.userAgent), T = e.exports = {
  342.                     offset: a.getLastTimestamp(),
  343.                     now: a,
  344.                     origin: E,
  345.                     features: {},
  346.                     xhrWrappable: O,
  347.                     userAgent: s,
  348.                     disabled: b
  349.                 };
  350.                 if (!b) {
  351.                     t(1), t(6), m[g] ? (m[g]("DOMContentLoaded", o, p(!1)), v[g]("load", r, p(!1))) : (m[y]("onreadystatechange", i), v[y]("onload", r)), c("mark", ["firstbyte", a.getLastTimestamp()], null, "api");
  352.                     var M = 0
  353.                 }
  354.             }, {}], "wrap-function": [function (t, e, n) {
  355.                 function r(t, e) {
  356.                     function n(e, n, r, f, u) {
  357.                         function nrWrapper() {
  358.                             var o, a, s, p;
  359.                             try {
  360.                                 a = this, o = d(arguments), s = "function" == typeof r ? r(o, a) : r || {}
  361.                             } catch (l) {
  362.                                 i([l, "", [o, a, f], s], t)
  363.                             }
  364.                             c(n + "start", [o, a, f], s, u);
  365.                             try {
  366.                                 return p = e.apply(a, o)
  367.                             } catch (v) {
  368.                                 throw c(n + "err", [o, a, v], s, u), v
  369.                             } finally {
  370.                                 c(n + "end", [o, a, p], s, u)
  371.                             }
  372.                         }
  373.                         return a(e) ? e : (n || (n = ""), nrWrapper[p] = e, o(e, nrWrapper, t), nrWrapper)
  374.                     }
  375.                     function r(t, e, r, i, o) {
  376.                         r || (r = "");
  377.                         var c, f, u, s = "-" === r.charAt(0);
  378.                         for (u = 0; u < e.length; u++) f = e[u], c = t[f], a(c) || (t[f] = n(c, s ? f + r : r, i, f, o))
  379.                     }
  380.                     function c(n, r, o, a) {
  381.                         if (!v || e) {
  382.                             var c = v;
  383.                             v = !0;
  384.                             try {
  385.                                 t.emit(n, r, o, e, a)
  386.                             } catch (f) {
  387.                                 i([f, n, r, o], t)
  388.                             }
  389.                             v = c
  390.                         }
  391.                     }
  392.                     return t || (t = s), n.inPlace = r, n.flag = p, n
  393.                 }
  394.                 function i(t, e) {
  395.                     e || (e = s);
  396.                     try {
  397.                         e.emit("internal-error", t)
  398.                     } catch (n) {
  399.                     }
  400.                 }
  401.                 function o(t, e, n) {
  402.                     if (Object.defineProperty && Object.keys) try {
  403.                         var r = Object.keys(t);
  404.                         return r.forEach(function (n) {
  405.                             Object.defineProperty(e, n, {
  406.                                 get: function () {
  407.                                     return t[n]
  408.                                 }, set: function (e) {
  409.                                     return t[n] = e, e
  410.                                 }
  411.                             })
  412.                         }), e
  413.                     } catch (o) {
  414.                         i([o], n)
  415.                     }
  416.                     for (var a in t) l.call(t, a) && (e[a] = t[a]);
  417.                     return e
  418.                 }
  419.                 function a(t) {
  420.                     return !(t && t instanceof Function && t.apply && !t[p])
  421.                 }
  422.                 function c(t, e) {
  423.                     var n = e(t);
  424.                     return n[p] = t, o(t, n, s), n
  425.                 }
  426.                 function f(t, e, n) {
  427.                     var r = t[e];
  428.                     t[e] = c(r, n)
  429.                 }
  430.                 function u() {
  431.                     for (var t = arguments.length, e = new Array(t), n = 0; n < t; ++n) e[n] = arguments[n];
  432.                     return e
  433.                 }
  434.                 var s = t("ee"), d = t(10), p = "nr@original", l = Object.prototype.hasOwnProperty, v = !1;
  435.                 e.exports = r, e.exports.wrapFunction = c, e.exports.wrapInPlace = f, e.exports.argsToArray = u
  436.             }, {}]
  437.         }, {}, ["loader"]);</script>
  438.     <meta property="og:image" content="{{ absolute_url(asset('images/freelance.webp')) }}">
  439.     <meta property="og:image:secure_url" content="{{ absolute_url(asset('images/freelance.webp')) }}">
  440.     <meta property="og:title"
  441.           content="Freelance: missions {{ 'now'|date('Y') }} sur toute la France | WorkDispo"/>
  442.     <meta property="og:type" content="WorkDispo"/>
  443.     <meta property="og:url" content="{{ app.request.getBaseURL() }}"/>
  444.     <meta name="Content-Language" content="fr">
  445.     <meta name="author" content="www.workdispo.com">
  446.     <meta name="revisit-after" content="revisit-after">
  447.     <meta name="pragma" content="no-cache">
  448.     <meta name="classification" content="WorkDispo: des missions sans commission">
  449.     <meta property="og:site_name" data-js-id="meta-og_site_name" content="WorkDispo" >
  450.     <meta http-equiv="Cache-Control" content="max-age=31536000">
  451. {% endblock %}
  452. {% block stylesheets %}
  453.     <style>
  454.         .rounded-right {
  455.             /* border-top-right-radius: 3em;
  456.             border-bottom-right-radius: 3em; */
  457.             border-radius: 10px;
  458.         }
  459.         .whysection h3 {
  460.             font-size: 1.75rem;
  461.             font-weight: bolder;
  462.         }
  463.         .whysection p {
  464.             font-size: 1.2rem;
  465.             line-height: 1.9rem;
  466.             text-align: justify;
  467.         }
  468.         th {
  469.             max-width: 50%;
  470.             width: 50%;
  471.             color: #979797;
  472.         }
  473.         td {
  474.             font-weight: bold;
  475.             color: #000;
  476.         }
  477.         table {
  478.             width: 100%;
  479.         }
  480.         .news-link:visited {
  481.             color: #98a2ea;
  482.         }
  483.         .accordion-header.accordion-white {
  484.             background: none;
  485.             color: #000000;
  486.             border: none;
  487.         }
  488.         .accordion__item .accordion-bg-none {
  489.             background: none;
  490.         }
  491.         .faq .accordion-header h3 {
  492.             display: inline-block !important;
  493.             width: 90% !important;
  494.             font-size: 1.25rem !important;
  495.             line-height: 1.875rem !important;
  496.             font-weight: bolder !important;
  497.             vertical-align: top !important;
  498.         }
  499.         img {
  500.             width: 100%; /* or max-width: 100%; */
  501.             height: auto;
  502.         }
  503.         .limited-lines-two {
  504.             display: -webkit-box !important;
  505.             -webkit-line-clamp: 2 !important;
  506.             -webkit-box-orient: vertical !important;
  507.             overflow: hidden !important;
  508.         }
  509.         @font-face {
  510.             font-family: 'Pacifico';
  511.             font-style: normal;
  512.             font-weight: 400;
  513.             src: local('Pacifico Regular'), local('Pacifico-Regular'),
  514.             url(https://fonts.gstatic.com/s/pacifico/v12/FwZY7-Qmy14u9lezJ-6H6MmBp0u-.woff2) format('woff2');
  515.             font-display: swap;
  516.         }
  517.         h2 {
  518.             font-weight: bold;
  519.         }
  520.     </style>
  521. {% endblock %}
  522. {% block body %}
  523.     <!-- Intro Banner
  524.     ================================================== -->
  525.     <!-- add class "disable-gradient" to enable consistent background overlay -->
  526.     <div class="intro-banner" data-background-image="images/freelance.webp" alt="Freelance">
  527.         <div class="container">
  528.             {#                        {% include 'macro/apply_floatant_accueil.html.twig' %}#}
  529.             <!-- Intro Headline -->
  530.             <div class="row">
  531.                 <div class="col-md-12">
  532.                     <div class="banner-headline">
  533.                         <span>
  534.                             <div class="text-black"
  535.                                  style="display: flex; font-size: 28px !important; line-height: 42px !important;flex-direction: row;flex-wrap: wrap;">
  536.                                 <h1 style="line-height: inherit;"><strong
  537.                                         style="font-size: 28px">Mission freelance et offre d’emploi</strong></h1>&nbsp;
  538.                                 <strong>en France.</strong> &nbsp;
  539.                             </div>
  540.                             <h3 class="text-blue">
  541.                                 <strong class="color">WorkDispo </strong>
  542.                                 <span class="text-black">c'est</span>
  543.                                 <strong class="color">100% gratuit</strong> <span class="text-black">pour les candidats et</span> <strong
  544.                                     class="color">0% de commission</strong>
  545.                                 <span class="text-black">sur la mission freelance. </span>
  546.                             </h3>
  547.                         </span>
  548.                     </div>
  549.                 </div>
  550.             </div>
  551.             <!-- Search Bar -->
  552.             <div class="row">
  553.                 <div class="col-md-12">
  554.                     <form action="{{ path('offre_search') }}" method="POST" id="formSearch">
  555.                         <div class="intro-banner-search-form margin-top-95">
  556.                             <!-- Search Field -->
  557.                             <div class="intro-search-field">
  558.                                 <label for="autocomplete-input" class="field-title ripple-effect">Où?</label>
  559.                                 <select id="location" name="location[]" class="selectpicker default" multiple
  560.                                         title="Toute la France"
  561.                                         data-live-search="true">
  562.                                     <option>Toute la France</option>
  563.                                     {% for name,region in regions %}
  564.                                         <optgroup label="{{ name }}" data-max-options="1">
  565.                                             <option value="{{ name }}">Tout {{ name }}</option>
  566.                                             {% for department in region %}
  567.                                                 <option value="{{ department }}">{{ department }}</option>
  568.                                             {% endfor %}
  569.                                         </optgroup>
  570.                                     {% endfor %}
  571.                                 </select>
  572.                             </div>
  573.                             <!-- Search Field -->
  574.                             <div class="intro-search-field">
  575.                                 <label for="search" class="field-title ripple-effect">Que
  576.                                     recherchez-vous?</label>
  577.                                 <input name="search" id="search" type="text"
  578.                                        placeholder="Titre du poste ou mot clé">
  579.                             </div>
  580.                             <!-- Button -->
  581.                             <div class="intro-search-button">
  582.                                 {% if is_granted('ROLE_USER') %}
  583.                                     <button class="button ripple-effect"
  584.                                             type="submit">Rechercher
  585.                                     </button>
  586.                                 {% else %}
  587.                                     <a class="button ripple-effect" href="{{ path('offre_search') }}">Rechercher</a>
  588.                                 {% endif %}
  589.                             </div>
  590.                         </div>
  591.                     </form>
  592.                 </div>
  593.             </div>
  594.         </div>
  595.     </div>
  596.     <!-- Features Jobs -->
  597.     {% if not app.user and not isNotShow %}
  598.         <div class="section  padding-top-45 padding-bottom-45">
  599.             <div class="container">
  600.                 <div class="row">
  601.                     <div class="col-xl-12">
  602.                         <!-- Section Headline -->
  603.                         <div class="section-headline margin-top-0 margin-bottom-35">
  604.                             <h2>Dernières missions </h2>
  605.                             <a href="{{ path('mission_search_default') }}"
  606.                                class="headline-link">
  607.                                 Toutes les missions
  608.                             </a>
  609.                         </div>
  610.                         <!-- Jobs Container -->
  611.                         <div class="listings-container compact-list-layout margin-top-35">
  612.                             {% for offer in offers|slice(0, 5) %}
  613.                                 <a href="{{ is_granted('ROLE_USER') ? path('public_mission', {slug : offer.slug}) : '#sign-in-dialog' }}"
  614.                                    class="{{ is_granted('ROLE_USER') ? '' : 'popup-with-zoom-anim' }} job-listing with-apply-button">
  615.                                     <div class="job-listing-details">
  616.                                         <div class="job-listing-company-logo">
  617.                                             <img
  618.                                                 src="{{ offer.society.user.photo  ? path('download_avatar', {'filename': offer.society.user.photo}) : asset('images/user-avatar-placeholder.png') }}"
  619.                                                 alt="">
  620.                                         </div>
  621.                                         <div class="job-listing-description">
  622.                                             <h3 class="job-listing-title"> {{ offer.title }}</h3>
  623.                                             <div class="job-listing-footer">
  624.                                                 <ul>
  625.                                                     <li>
  626.                                                         <i class="icon-material-outline-business"></i> {{ offer.society.name }}
  627.                                                     </li>
  628.                                                     <li>
  629.                                                         <i class="icon-material-outline-location-on"></i> {{ offer.location }}
  630.                                                     </li>
  631.                                                     <li>
  632.                                                         <i class="icon-material-outline-business-center"></i> {{ offer.getCostText() }}
  633.                                                     </li>
  634.                                                     <li>
  635.                                                         <i class="icon-material-outline-access-time"></i> {{ offer.getDurationText() }}
  636.                                                     </li>
  637.                                                 </ul>
  638.                                             </div>
  639.                                         </div>
  640.                                         <span class="button">Postuler</span>
  641.                                     </div>
  642.                                 </a>
  643.                             {% endfor %}
  644.                         </div>
  645.                         <!-- Jobs Container / End -->
  646.                     </div>
  647.                 </div>
  648.             </div>
  649.         </div>
  650.     {% endif %}
  651.     <!-- Featured Jobs / End -->
  652.     <!-- Features Cities -->
  653.     <div class="section margin-bottom-65 margin-top-45">
  654.         <div class="container">
  655.             <div class="row">
  656.                 <div class="col-xl-12">
  657.                     <!-- Section Headline -->
  658.                     <div class="margin-top-0 margin-bottom-25">
  659.                         <h2 class="text-center"><span class="text-blue">Mission freelance</span> et <span class="text-blue">offre d’emploi</span> à Paris et en France avec télétravail</h2>
  660.                     </div>
  661.                 </div>
  662.                 {% for city in cityList %}
  663.                     <div class="col-xl-3 col-md-6">
  664.                         <!-- Photo Box -->
  665.                         <a href="{{ city.link }}"
  666.                            class="photo-box"
  667.                            data-background-image="{{ city.img }}">
  668.                             <div class="photo-box-content">
  669.                                 <h3>Emploi {{ city.name }}</h3>
  670.                             </div>
  671.                         </a>
  672.                     </div>
  673.                 {% endfor %}
  674.             </div>
  675.         </div>
  676.     </div>
  677.     <!-- Features Cities / End -->
  678.     <!-- Highest news -->
  679.     {# <div class="section  padding-bottom-45">
  680.         <div class="container">
  681.             <div class="row">
  682.                 <div class="col-xl-12">
  683.                     <!-- Section Headline -->
  684.                     <div class="section-headline margin-top-0 margin-bottom-25">
  685.                         <h3>News de tech</h3>
  686.                         <a href="{{ path('all_news') }}"
  687.                            class=" headline-link">Toutes les
  688.                             actualités</a>
  689.                     </div>
  690.                 </div>
  691.                 <div class="col-xl-12">
  692.                     <div class="freelancers-container freelancers-grid-layout">
  693.                         <ul style="list-style-type:none;">
  694.                             {% for actu in news %}
  695.                                 <li class="actu">{{ actu.date|date('d/m') }} - <a class="news-link" href="{{ actu.newsLink }}" target="_blank" style="font-weight: bold !important;"><b >{{ actu.description|u.truncate(70, '...') }}</b></a> - <small ><em><a href="{{ actu.link }}" target="_blank" class="text-black">{{ actu.owner}}</a></em></small></li>
  696.                             {% endfor %}
  697.                         </ul>
  698.                     </div>
  699.                 </div>
  700.             </div>
  701.         </div>
  702.     </div> #}
  703.     <!-- Highest news / End-->
  704.     <div class="container section  padding-top-0">
  705.         <div class="d-flex align-items-start ">
  706.             <div class="d-none d-md-block col-md-6 padding-left-0 " style=" display: flex !important; height: 100%;">
  707.                 <img class="rounded-right" style=" width:100%; object-fit: cover;"
  708.                      src="{{ asset('images/mission-freelance.webp') }}" title="Pourquoi WorkDispo"
  709.                      alt="Mission freelance">
  710.             </div>
  711.             <div class="col-md-6 whysection">
  712.                 <h2>Plateforme de <span class="text-blue">mission freelance</span> et d’<span class="text-blue">offre d’emploi</span>?</h2>
  713.                 <p class="margin-top-25 text-black" style="font-size: 1.2rem;line-height: 1.75rem;
  714.     text-align: justify;">
  715.                     {# <span class="text-blue">WorkDispo</span> est une plateforme dont l’inscription et l’utilisation sont
  716.                     <span class="text-blue">100% gratuites pour les candidats</span>. En déposant votre CV vous pourrez être contacté par des recruteurs qui recherchent des demandeurs d’emplois ou des freelances pour des missions, et vous pourrez aussi postuler à des <a
  717.                         href="https://www.workdispo.com/missions-freelance">missions freelance</a> ou à <a
  718.                         href="https://www.workdispo.com/emploi">offres d’emploi</a>. Le <a
  719.                         href="https://www.workdispo.com/tjm">TJM</a> du freelance n’est pas
  720.                     du tout impacté, WorkDispo ne demande <span class="text-blue">aucune commission ni aux candidats ni aux recruteurs</span>
  721.                     et
  722.                     aucun % de frais de service. C’est pour cette raison que tous les recruteurs rejoignent WorkDispo et ainsi proposer le <span class="text-blue">maximum de missions freelance et d’offres d’emplois</span>! #}
  723.                     WorkDispo est une plateforme dont l’inscription et l’utilisation sont 100 % gratuites pour les candidats. En déposant votre CV, vous pourrez être contacté par des recruteurs recherchant des demandeurs d’emploi ou des freelances pour des missions. Vous pourrez également postuler à des <a
  724.                         href="https://www.workdispo.com/missions-freelance">missions freelance</a> ou à des <a
  725.                         href="https://www.workdispo.com/emploi">offres d’emploi</a>. Le TJM du freelance n’est absolument pas impacté : WorkDispo ne demande aucune commission, ni aux candidats ni aux recruteurs, et n’applique aucun pourcentage de frais de service. C’est pour cette raison que de nombreux recruteurs rejoignent WorkDispo, afin de proposer un maximum de <a
  726.                         href="https://www.workdispo.com/missions-freelance">missions freelance</a> et d’<a
  727.                         href="https://www.workdispo.com/emploi">offres d’emploi</a> !
  728.                 </p>
  729.             </div>
  730.         </div>
  731.     </div>
  732.     <!-- How it works -->
  733.     <div class="section padding-top-65 padding-bottom-65">
  734.         <div class="container">
  735.             <div class="row">
  736.                 <div class="col-xl-12">
  737.                     <!-- Section Headline -->
  738.                     <div class=" centered margin-top-0 margin-bottom-5">
  739.                         <h2 class="text-center">Comment postuler à une <span class="text-blue">mission freelance</span> ou à une <span class="text-blue">offre d’emploi</span>?</h2>
  740.                     </div>
  741.                 </div>
  742.                 <div class="col-xl-4 col-md-4">
  743.                     <!-- Icon Box -->
  744.                     <div class="icon-box with-line">
  745.                         <!-- Icon -->
  746.                         <div class="icon-box-circle">
  747.                             <div class="icon-box-circle-inner">
  748.                                 <i class="icon-line-awesome-lock"></i>
  749.                                 <div class="icon-box-check"><i class="icon-material-outline-check"></i></div>
  750.                             </div>
  751.                         </div>
  752.                         <h3>Créer un compte</h3>
  753.                         <p>Créer un compte gratuitement et facilement pour pouvoir utiliser WorkDispo.</p>
  754.                     </div>
  755.                 </div>
  756.                 <div class="col-xl-4 col-md-4">
  757.                     <!-- Icon Box -->
  758.                     <div class="icon-box with-line">
  759.                         <!-- Icon -->
  760.                         <div class="icon-box-circle">
  761.                             <div class="icon-box-circle-inner">
  762.                                 <i class="icon-line-awesome-legal"></i>
  763.                                 <div class="icon-box-check"><i class="icon-material-outline-check"></i></div>
  764.                             </div>
  765.                         </div>
  766.                         <h3>Poster votre CV </h3>
  767.                         <p>Téléversez votre CV pour être contacté par des recruteurs qui recherchent votre profil.</p>
  768.                     </div>
  769.                 </div>
  770.                 <div class="col-xl-4 col-md-4">
  771.                     <!-- Icon Box -->
  772.                     <div class="icon-box">
  773.                         <!-- Icon -->
  774.                         <div class="icon-box-circle">
  775.                             <div class="icon-box-circle-inner">
  776.                                 <i class=" icon-line-awesome-trophy"></i>
  777.                                 <div class="icon-box-check"><i class="icon-material-outline-check"></i></div>
  778.                             </div>
  779.                         </div>
  780.                         <h3>Postuler aux offres</h3>
  781.                         <p>Postulez aux missions freelance et/ou aux offres d’emplois en CDI/CDD dans l’informatique, le digital, le numérique...</p>
  782.                     </div>
  783.                 </div>
  784.             </div>
  785.         </div>
  786.     </div>
  787.     <!-- How it works / End -->
  788.     <!-- Highest Rated Freelancers -->
  789.     <div class="section  padding-top-45 padding-bottom-30">
  790.         <div class="container">
  791.             <div class="row">
  792.                 <div class="col-xl-12">
  793.                     <!-- Section Headline -->
  794.                     <div class=" margin-top-0 margin-bottom-25">
  795.                         <h2 class="">Profils pour une <span class="text-blue">mission freelance</span> ou <span class="text-blue">une offre d’emploi</span></h2>
  796. {#                         <a href="{{ is_granted('ROLE_USER') ? path('freelance_search') : '#sign-in-dialog' }}" #}
  797.                         <a href="{{ is_granted('ROLE_USER') ? path('freelance_search') : path('register_society') }}"
  798. {#                            class="{{ is_granted('ROLE_USER') ? '' : 'popup-with-zoom-anim' }} headline-link">Tous les profils freelances</a> #}
  799.                            class=" headline-link">Tous les profils</a>
  800.                     </div>
  801.                 </div>
  802.                 <div class="col-xl-12">
  803.                     <div class="freelancers-container freelancers-grid-layout">
  804.                         {% for profile in profiles %}
  805.                             <div class="freelancer">
  806.                                 <div class="freelancer-overview">
  807.                                     <div class="freelancer-overview-inner">
  808.                                         <div class="freelancer-avatar">
  809.                                             <img
  810.                                                 src="{{ profile.photo  ? path('download_avatar', {'filename': profile.photo}) : asset('images/user-avatar-placeholder.png') }}"
  811.                                                 alt=""
  812.                                                 class="{{ is_granted('ROLE_USER') ? '' : 'blur-image' }}"
  813.                                                 style="cursor: inherit"
  814.                                             >
  815.                                         </div>
  816.                                         <div class="freelancer-name">
  817.                                             <h4>
  818.                                                 <a href="{{ path('public_profile', {slug : profile.slug}) }}">{{ profile.user.firstName }}
  819.                                                     .</a>
  820.                                             </h4>
  821.                                             <span>{{ profile.title }}</span>
  822.                                         </div>
  823.                                     </div>
  824.                                 </div>
  825.                                 <div class="freelancer-details">
  826.                                     <div class="freelancer-details-list">
  827.                                         {# @changelog 2022-10-03 [FIX] (Anthony) Modification affichage mobilité sur le titre de la page #}
  828.                                         <table>
  829.                                             <thead>
  830.                                             <tr>
  831.                                                 <th><i class="icon-material-outline-location-on"></i> Localisation</th>
  832.                                                 <th>T.J.M</th>
  833.                                                 <th>Disponibilité</th>
  834.                                             </tr>
  835.                                             </thead>
  836.                                             <tbody>
  837.                                             <tr>
  838.                                                 <td>
  839.                                                     {% set locations = profile.location|split(' ') %}
  840.                                                     {% set location_text = '' %}
  841.                                                     {# Vérifie si le premier élément contient des caractères autres que des chiffres #}
  842.                                                     {% if locations|length > 1 and not locations[0]|number_format(0) == locations[0] %}
  843.                                                         {# Concatène tous les éléments de locations et tronque à 13 caractères #}
  844.                                                         {% set location_text = locations|join(' ')|u.truncate(13, '...') %}
  845.                                                     {% else %}
  846.                                                         {# Utilise locations[0] et tronque à 13 caractères #}
  847.                                                         {% set location_text = (locations[1] is defined ? locations[1]|u.truncate(13, '...') : locations[0])|u.truncate(13, '...') %}
  848.                                                     {% endif %}
  849.                                                     {{ location_text }}
  850.                                                 </td>
  851.                                                 <td>{{ profile.cost }} €</td>
  852.                                                 <td>{{ profile.disponibility }}</td>
  853.                                             </tr>
  854.                                             </tbody>
  855.                                         </table>
  856.                                     </div>
  857.                                     <a href="{{ is_granted('ROLE_USER') ?  path('public_profile', {slug : profile.slug})  : '#sign-in-dialog' }}"
  858.                                        class="{{ is_granted('ROLE_USER') ? '' : 'popup-with-zoom-anim' }} button button-sliding-icon ripple-effect">
  859.                                         Voir le profil <i class="icon-material-outline-arrow-right-alt"></i></a>
  860.                                 </div>
  861.                             </div>
  862.                             <!-- Freelancer / End -->
  863.                         {% endfor %}
  864.                     </div>
  865.                 </div>
  866.             </div>
  867.         </div>
  868.     </div>
  869.     <!-- Highest Rated Freelancers / End-->
  870.     
  871.     <!-- Highest LIST Freelance -->
  872.     <div class="section  padding-bottom-45">
  873.         <div class="container">
  874.             <div class="row">
  875.                 <div class="col-xl-12">
  876.                     <!-- Section Headline -->
  877.                     <div class="margin-top-0 margin-bottom-25">
  878.                         <h2 class="text-center"><span class="text-blue">Mission freelance</span> informatique par compétences</h2>
  879.                     </div>
  880.                 </div>
  881.                 <div class="col-xl-12">
  882.                     <div class="freelancers-container freelancers-grid-layout freelance-job">
  883.                         <table class="width-100" style="border: none">
  884.                             <tr>
  885.                                 <td><a href="https://www.workdispo.com/freelance-agile-scrum">Freelance Agile
  886.                                         Scrum</a></td>
  887.                                 <td><a href="https://www.workdispo.com/freelance-docker">Freelance Docker</a></td>
  888.                                 <td><a href="https://www.workdispo.com/freelance-moa">Freelance MOA</a></td>
  889.                             </tr>
  890.                             <tr>
  891.                                 <td><a href="https://www.workdispo.com/freelance-amoa">Freelance AMOA</a></td>
  892.                                 <td><a href="https://www.workdispo.com/freelance-git">Freelance Git</a></td>
  893.                                 <td><a href="https://www.workdispo.com/freelance-mysql">Freelance MySQL</a></td>
  894.                             </tr>
  895.                             <tr>
  896.                                 <td><a href="https://www.workdispo.com/freelance-angular">Freelance Angular</a>
  897.                                 </td>
  898.                                 <td><a href="https://www.workdispo.com/freelance-html">Freelance HTML</a></td>
  899.                                 <td><a href="https://www.workdispo.com/freelance-oracle">Freelance Oracle</a></td>
  900.                             </tr>
  901.                             <tr>
  902.                                 <td><a href="https://www.workdispo.com/freelance-ansible">Freelance Ansible</a>
  903.                                 </td>
  904.                                 <td><a href="https://www.workdispo.com/freelance-infrastructure">Freelance
  905.                                         Infrastructure</a></td>
  906.                                 <td><a href="https://www.workdispo.com/freelance-php">Freelance PHP</a></td>
  907.                             </tr>
  908.                             <tr>
  909.                                 <td><a href="https://www.workdispo.com/freelance-api">Freelance API</a></td>
  910.                                 <td><a href="https://www.workdispo.com/freelance-java">Freelance Java</a></td>
  911.                                 <td><a href="https://www.workdispo.com/freelance-postgresql">Freelance
  912.                                         PostgreSQL</a></td>
  913.                             </tr>
  914.                             <tr>
  915.                                 <td><a href="https://www.workdispo.com/freelance-azure">Freelance Azure</a></td>
  916.                                 <td><a href="https://www.workdispo.com/freelance-javascript">Freelance
  917.                                         Javascript</a></td>
  918.                                 <td><a href="https://www.workdispo.com/freelance-python">Freelance Python</a></td>
  919.                             </tr>
  920.                             <tr>
  921.                                 <td><a href="https://www.workdispo.com/freelance-bi">Freelance BI</a></td>
  922.                                 <td><a href="https://www.workdispo.com/freelance-jira">Freelance JIRA</a></td>
  923.                                 <td><a href="https://www.workdispo.com/freelance-react">Freelance React</a></td>
  924.                             </tr>
  925.                             <tr>
  926.                                 <td><a href="https://www.workdispo.com/freelance-cloud">Freelance Cloud</a></td>
  927.                                 <td><a href="https://www.workdispo.com/freelance-linux">Freelance Linux</a></td>
  928.                                 <td><a href="https://www.workdispo.com/freelance-réseaux">Freelance Réseaux</a>
  929.                                 </td>
  930.                             </tr>
  931.                             <tr>
  932.                                 <td><a href="https://www.workdispo.com/freelance-css">Freelance CSS</a></td>
  933.                                 <td><a href="https://www.workdispo.com/freelance-microsoft-excel">Freelance
  934.                                         Microsoft Excel</a></td>
  935.                                 <td><a href="https://www.workdispo.com/freelance-sap">Freelance SAP</a></td>
  936.                             </tr>
  937.                             <tr>
  938.                                 <td><a href="https://www.workdispo.com/freelance-cybersécurite">Freelance
  939.                                         Cybersécurité</a></td>
  940.                                 <td><a href="https://www.workdispo.com/freelance-microsoft-office">Freelance
  941.                                         Microsoft Office</a></td>
  942.                                 <td><a href="https://www.workdispo.com/freelance-sql">Freelance SQL</a></td>
  943.                             </tr>
  944.                             <tr>
  945.                                 <td><a href="https://www.workdispo.com/freelance-devops">Freelance DevOps</a></td>
  946.                                 <td><a href="https://www.workdispo.com/freelance-microsoft-office-365">Freelance
  947.                                         Microsoft Office 365</a></td>
  948.                                 <td><a href="https://www.workdispo.com/freelance-telecom">Freelance Telecom</a>
  949.                                 </td>
  950.                             </tr>
  951.                         </table>
  952.                     </div>
  953.                 </div>
  954.             </div>
  955.             <div class="row margin-top-80">
  956.                 <div class="col-xl-12">
  957.                     <!-- Section Headline -->
  958.                     <div class="margin-top-0 margin-bottom-32">
  959.                         <h2 class="text-center">Plus sur l’<span class="text-blue">informatique</span></h2>
  960.                     </div>
  961.                 </div>
  962.             </div>
  963.             <div class="row ">
  964.                 {% for blog in blogs %}
  965.                     <a href="{{ path('blog_show',{thematique:blog.slug}) }}"
  966.                        class="blog-compact-item-container col-md-4">
  967.                         <div class="blog-compact-item" style=" width: 300px !important; height: 380px !important;">
  968.                             <img
  969.                                 src="{{ asset( blog.blogimage ? 'uploads/img/'~blog.blogimage.path : 'images/blog-04.jpg') }}"
  970.                                 alt="{{ blog.blogimage ? blog.blogimage.name : '' }}">
  971.                             <div style="position: absolute;top: 32px;left: 16px;">
  972.                                 {% if blog.getSousThematique() is not empty %}
  973.                                     {% for sous_thematique in blog.getSousThematique() %}
  974.                                         <span class="blog-item-tag"
  975.                                               style="position: relative !important;top: auto;left: auto;z-index: 110">{{ sous_thematique.getName() }}</span>
  976.                                     {% endfor %}
  977.                                 {% else %}
  978.                                     {% for thematique in blog.getThematique() %}
  979.                                         <span class="blog-item-tag"
  980.                                               style="position: relative !important;top: auto;left: auto;z-index: 110">{{ thematique.getName() }}</span>
  981.                                     {% endfor %}
  982.                                 {% endif %}
  983.                             </div>
  984.                             <div class="blog-compact-item-content">
  985.                                 <ul class="blog-post-tags">
  986.                                     {% set trans_month_hash = {
  987.                                         "January": "Janvier",
  988.                                         "February": "Février",
  989.                                         "March": "Mars",
  990.                                         "April": "Avril",
  991.                                         "May": "Mai",
  992.                                         "June": "Juin",
  993.                                         "July": "Juillet",
  994.                                         "August": "Août",
  995.                                         "September": "Septembre",
  996.                                         "October": "Octobre",
  997.                                         "November": "Novembre",
  998.                                         "December": "Décembre"
  999.                                     } %}
  1000.                                     <li>{{ blog.getCreatedAt()|date("d") }} {{ trans_month_hash[blog.getCreatedAt()|date("F")] }} {{ blog.getCreatedAt()|date("Y") }}</li>
  1001.                                 </ul>
  1002.                                 <h3 class="limited-lines-two">{{ blog.title }}</h3>
  1003.                                 <p style="
  1004.                                     display: -webkit-box;
  1005.                                     -webkit-line-clamp: 3;
  1006.                                     -webkit-box-orient: vertical;
  1007.                                     overflow: hidden;
  1008.                                 ">
  1009.                                     {{ blog.description }}
  1010.                                 </p>
  1011.                             </div>
  1012.                         </div>
  1013.                     </a>
  1014.                 {% endfor %}
  1015.             </div>
  1016.         </div>
  1017.     </div>
  1018.     <!-- Highest LIST Freelance / End-->
  1019.     <!--FAQ -->
  1020.     <div class="section faq " style="background-color: #2a41e80d">
  1021.         <div class="container-fluid white" style="padding-left: 0px; padding-right: 0px; background-color: white ">
  1022.             <svg style="display: block" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"
  1023.                  viewBox="0 0 1366 74.99">
  1024.                 <path
  1025.                     d="M.051,44.953C180.175,87.69,501.382,86.386,803.886,24.306a1184.173,1184.173,0,0,1,562.165,20.646c-.213-.782,0,30,0,30H.051Z"
  1026.                     transform="translate(-0.051 0.038)" fill="#2a41e80d"></path>
  1027.             </svg>
  1028.         </div>
  1029.         <div class="container padding-top-50">
  1030.             <div class="row">
  1031.                 <div class="col-md-8">
  1032.                     <h2>FAQ de la <span class="text-blue">mission freelance</span> ou une <span class="text-blue">offre d’emploi</span></h2>
  1033.                     <div class="margin-top-50 accordion js-accordion no-shadow ">
  1034.                         {% for question, answer in faqs %}
  1035.                             <div class="accordion__item js-accordion-item">
  1036.                                 <div class="accordion-header accordion-white js-accordion-header">
  1037.                                     <i class="carret"></i>
  1038.                                     <h3>{{ question }}</h3>
  1039.                                 </div>
  1040.                                 <!-- Accordtion Body -->
  1041.                                 <div class="accordion-body accordion-bg-none js-accordion-body" style="display: none;">
  1042.                                     <!-- Accordion Content -->
  1043.                                     <div class="accordion-body__contents">
  1044.                                         <p class="text-black">
  1045.                                             {{ answer|raw }}
  1046.                                         </p>
  1047.                                     </div>
  1048.                                 </div>
  1049.                                 <!-- Accordion Body / End -->
  1050.                             </div>
  1051.                         {% endfor %}
  1052.                     </div>
  1053.                 </div>
  1054.                 <div class="col-md-4">
  1055.                     <img src="{{ asset('images/home-faq.webp') }}" alt="FAQ">
  1056.                 </div>
  1057.             </div>
  1058.         </div>
  1059.     </div>
  1060.     <!--FAQ / End -->
  1061.     {% if is_granted('ROLE_USER') and app.user.deleteAt %}
  1062.         <div id="small-dialog" class="zoom-anim-dialog mfp-hide dialog-with-tabs">
  1063.             <div class="sign-in-form">
  1064.                 <ul class="popup-tabs-nav">
  1065.                     <li><a href="#recup-tab">Compte</a></li>
  1066.                 </ul>
  1067.                 <div class="popup-tabs-container">
  1068.                     <div class="popup-tab-content" id="recup-tab">
  1069.                         <form>
  1070.                             <div id="report_confirm" class="welcome-text">
  1071.                                 <h3> « Souhaitez-vous récupérer votre compte avant sa suppression ? »</h3>
  1072.                             </div>
  1073.                             <div class="d-flex justify-content-end">
  1074.                                 <a href="{{ path('logout') }}" class="button red " style="margin-right: 10px">
  1075.                                     Annuler
  1076.                                 </a>
  1077.                                 <a href="{{ path('account_reactivate') }}" class="button">Récupérer mon compte</a>
  1078.                             </div>
  1079.                         </form>
  1080.                     </div>
  1081.                 </div>
  1082.             </div>
  1083.         </div>
  1084.     {% else %}
  1085.         {% include 'common/modal/sign_modal.html.twig' %}
  1086.         {% include 'common/modal/reset_password_modal.html.twig' %}
  1087.     {% endif %}
  1088.     {% set paused = false %}
  1089.     {% for validation in app.flashes('pause_success') %}
  1090.         {% set paused = true %}
  1091.     {% endfor %}
  1092.     {% if paused %}
  1093.         <div id="pause-info-dialog" class="zoom-anim-dialog mfp-hide dialog-with-tabs custom-dialog">
  1094.             <div class="sign-in-form">
  1095.                 <ul class="popup-tabs-nav">
  1096.                     <li><a href="#tabinfo">Compte en pause</a></li>
  1097.                 </ul>
  1098.                 <div class="popup-tabs-container">
  1099.                     <!-- Tab -->
  1100.                     <div class="popup-tab-content" id="tabinfo">
  1101.                         <!-- Welcome Text -->
  1102.                         <div class="welcome-text">
  1103.                             <p class="margin-top-15">
  1104.                                 Votre compte est en pause à votre demande et sera réactivé le
  1105.                                 {{ app.user.society.pauseDate | date('d/m/Y') }}
  1106.                                 à {{ app.user.society.pauseDate | date('H:i') }}
  1107.                             </p>
  1108.                         </div>
  1109.                     </div>
  1110.                 </div>
  1111.             </div>
  1112.         </div>
  1113.     {% endif %}
  1114. {% endblock %}
  1115. {% block javascripts %}
  1116.     <script>
  1117.         $(function () {
  1118.             $('#location').change(function () {
  1119.                 var location = $(this).val();
  1120.                 var newLocation = location;
  1121.                 if (location.length > 1) {
  1122.                     newLocation = newLocation.filter((value) => value !== 'Toute la France');
  1123.                 }
  1124.                 $(this).selectpicker('val', newLocation);
  1125.             });
  1126.             if ($('#small-dialog').length > 0) {
  1127.                 $.magnificPopup.open({
  1128.                     items: {
  1129.                         src: '#small-dialog'
  1130.                     },
  1131.                     type: 'inline',
  1132.                     fixedContentPos: false,
  1133.                     fixedBgPos: true,
  1134.                     overflowY: 'auto',
  1135.                     closeBtnInside: true,
  1136.                     preloader: false,
  1137.                     midClick: true,
  1138.                     removalDelay: 300,
  1139.                     mainClass: 'my-mfp-zoom-in'
  1140.                 });
  1141.             }
  1142.             if ($('#pause-info-dialog').length > 0) {
  1143.                 $.magnificPopup.open({
  1144.                     items: {
  1145.                         src: '#pause-info-dialog'
  1146.                     },
  1147.                     type: 'inline',
  1148.                     fixedContentPos: false,
  1149.                     fixedBgPos: true,
  1150.                     overflowY: 'auto',
  1151.                     closeBtnInside: true,
  1152.                     preloader: false,
  1153.                     midClick: true,
  1154.                     removalDelay: 300,
  1155.                     mainClass: 'my-mfp-zoom-in'
  1156.                 });
  1157.             }
  1158.             if ($('#recup-dialog').length > 0) {
  1159.                 $.magnificPopup.open({
  1160.                     items: {
  1161.                         src: '#recup-dialog'
  1162.                     },
  1163.                     type: 'inline',
  1164.                     fixedContentPos: false,
  1165.                     fixedBgPos: true,
  1166.                     overflowY: 'auto',
  1167.                     closeBtnInside: true,
  1168.                     preloader: false,
  1169.                     midClick: true,
  1170.                     removalDelay: 300,
  1171.                     mainClass: 'my-mfp-zoom-in'
  1172.                 });
  1173.             }
  1174.         })
  1175.     </script>
  1176.     {# ---- SCRICP FORMATAGE RECHERCHE --- #}
  1177.     {% if app.user %}
  1178.         {{ include('macro/_mission-search.html.twig') }}
  1179.     {% endif %}
  1180. {% endblock %}