diff --git a/labonneboite/common/contact_mode.py b/labonneboite/common/contact_mode.py index 71760c99b..5a96a0a92 100644 --- a/labonneboite/common/contact_mode.py +++ b/labonneboite/common/contact_mode.py @@ -1,14 +1,42 @@ # coding: utf8 -# Contact modes -CONTACT_MODE_STAGES = { - "Se présenter spontanément": [ + +CONTACT_MODE_MAIL = 'mail' +CONTACT_MODE_EMAIL = 'email' +CONTACT_MODE_OFFICE = 'office' +CONTACT_MODE_WEBSITE = 'website' +CONTACT_MODE_PHONE = 'phone' + +# FIXME - ask teammates to validate +# Contact modes human readable labels as displayed in the API result and the frontend. +CONTACT_MODE_LABELS = { + CONTACT_MODE_OFFICE: "Se présenter spontanément", + CONTACT_MODE_EMAIL: "Envoyer un CV et une lettre de motivation par email", + CONTACT_MODE_MAIL: "Envoyer un CV et une lettre de motivation par courrier postal", + CONTACT_MODE_PHONE: "Contacter par téléphone", + CONTACT_MODE_WEBSITE: "Candidater depuis notre site web", +} + +# Keywords designed to correctly match contact_modes based on real data +# observed in production in etablissements.contact_mode +CONTACT_MODE_KEYWORDS = { + CONTACT_MODE_OFFICE: ["sur place", "Présentez vous", "spontané"], + CONTACT_MODE_EMAIL: ["mail", "@"], + CONTACT_MODE_MAIL: ["courrier"], + CONTACT_MODE_PHONE: ["phone"], + CONTACT_MODE_WEBSITE: ["site"], +} + +# FIXME - ask teammates to fill up remaining codes - also need fallback value! +# Steps for each contact mode as displayed in the office downloadable PDF +CONTACT_MODE_STEPS = { + CONTACT_MODE_OFFICE: [ "Se présenter à l'adresse indiquée avec CV et photo", "Demander le nom d'un contact pour relancer", "Relancer votre interlocuteur par téléphone", "Déclarer votre reprise d'emploi à Pôle emploi :-)", ], - "Envoyer un CV et une lettre de motivation": [ + CONTACT_MODE_EMAIL: [ ("Rechercher le nom d'un contact dans l'entreprise (google, kompass, linkedin, viadeo, votre réseau) " "pour lui adresser votre courrier/email"), ("Rechercher des informations économiques (projet, évolution) sur l'entreprise afin de personnaliser " @@ -20,4 +48,4 @@ ] } -CONTACT_MODE_DEFAULT = "Envoyer un CV et une lettre de motivation" + diff --git a/labonneboite/common/data/contact_modes.csv b/labonneboite/common/data/contact_modes.csv deleted file mode 100644 index be5116dc2..000000000 --- a/labonneboite/common/data/contact_modes.csv +++ /dev/null @@ -1,1289 +0,0 @@ -naf_prefix,rome,contact_mode -01,A1101,Envoyer un CV et une lettre de motivation -01,A1202,Envoyer un CV et une lettre de motivation -01,A1204,Envoyer un CV et une lettre de motivation -01,A1301,Envoyer un CV et une lettre de motivation -01,A1302,Envoyer un CV et une lettre de motivation -01,A1303,Envoyer un CV et une lettre de motivation -01,A1401,Envoyer un CV et une lettre de motivation -01,A1402,Envoyer un CV et une lettre de motivation -01,A1403,Envoyer un CV et une lettre de motivation -01,A1405,Envoyer un CV et une lettre de motivation -01,A1407,Envoyer un CV et une lettre de motivation -01,A1408,Envoyer un CV et une lettre de motivation -01,A1409,Envoyer un CV et une lettre de motivation -01,A1410,Envoyer un CV et une lettre de motivation -01,A1411,Envoyer un CV et une lettre de motivation -01,A1414,Envoyer un CV et une lettre de motivation -01,A1416,Envoyer un CV et une lettre de motivation -01,D1209,Envoyer un CV et une lettre de motivation -01,I1603,Envoyer un CV et une lettre de motivation -02,A1101,Envoyer un CV et une lettre de motivation -02,A1201,Envoyer un CV et une lettre de motivation -02,A1202,Envoyer un CV et une lettre de motivation -02,A1203,Envoyer un CV et une lettre de motivation -02,A1204,Envoyer un CV et une lettre de motivation -02,A1205,Envoyer un CV et une lettre de motivation -02,A1303,Envoyer un CV et une lettre de motivation -03,A1403,Envoyer un CV et une lettre de motivation -03,A1404,Envoyer un CV et une lettre de motivation -03,A1406,Envoyer un CV et une lettre de motivation -03,A1415,Envoyer un CV et une lettre de motivation -03,D1105,Envoyer un CV et une lettre de motivation -03,I1502,Envoyer un CV et une lettre de motivation -03,I1605,Envoyer un CV et une lettre de motivation -05,F1203,Envoyer un CV et une lettre de motivation -05,F1302,Envoyer un CV et une lettre de motivation -05,F1402,Envoyer un CV et une lettre de motivation -06,F1203,Envoyer un CV et une lettre de motivation -06,F1302,Envoyer un CV et une lettre de motivation -06,F1401,Envoyer un CV et une lettre de motivation -07,F1203,Envoyer un CV et une lettre de motivation -07,F1302,Envoyer un CV et une lettre de motivation -07,F1402,Envoyer un CV et une lettre de motivation -08,A1417,Envoyer un CV et une lettre de motivation -08,F1203,Envoyer un CV et une lettre de motivation -08,F1302,Envoyer un CV et une lettre de motivation -08,F1402,Envoyer un CV et une lettre de motivation -09,F1105,Envoyer un CV et une lettre de motivation -09,F1107,Envoyer un CV et une lettre de motivation -09,F1203,Envoyer un CV et une lettre de motivation -09,F1302,Envoyer un CV et une lettre de motivation -09,F1401,Envoyer un CV et une lettre de motivation -09,F1402,Envoyer un CV et une lettre de motivation -10,A1412, -10,D1101,Se présenter spontanément -10,D1102,Se présenter spontanément -10,D1103,Se présenter spontanément -10,D1104,Se présenter spontanément -10,D1105,Se présenter spontanément -10,G1601,Envoyer un CV et une lettre de motivation -10,G1602,Envoyer un CV et une lettre de motivation -10,H1201,Envoyer un CV et une lettre de motivation -10,H1505,Envoyer un CV et une lettre de motivation -10,H2101,Envoyer un CV et une lettre de motivation -10,H2102,Envoyer un CV et une lettre de motivation -10,H2504,Envoyer un CV et une lettre de motivation -10,H3301,Envoyer un CV et une lettre de motivation -10,H3302,Envoyer un CV et une lettre de motivation -10,H3303,Envoyer un CV et une lettre de motivation -10,I1305,Envoyer un CV et une lettre de motivation -10,I1306,Envoyer un CV et une lettre de motivation -10,J1402,Envoyer un CV et une lettre de motivation -11,A1413,Envoyer un CV et une lettre de motivation -11,G1804,Envoyer un CV et une lettre de motivation -11,H1505,Envoyer un CV et une lettre de motivation -11,H2102,Envoyer un CV et une lettre de motivation -11,H2504,Envoyer un CV et une lettre de motivation -11,H3301,Envoyer un CV et une lettre de motivation -11,H3302,Envoyer un CV et une lettre de motivation -12,H2504,Envoyer un CV et une lettre de motivation -12,H3303,Envoyer un CV et une lettre de motivation -13,B1804,Envoyer un CV et une lettre de motivation -13,B1805,Envoyer un CV et une lettre de motivation -13,B1806,Envoyer un CV et une lettre de motivation -13,H1201,Envoyer un CV et une lettre de motivation -13,H1205,Envoyer un CV et une lettre de motivation -13,H2402,Se présenter spontanément -13,H2403,Se présenter spontanément -13,H2404,Se présenter spontanément -13,H2405,Se présenter spontanément -13,H2406,Se présenter spontanément -13,H2408,Se présenter spontanément -13,H2410,Se présenter spontanément -13,H2411,Envoyer un CV et une lettre de motivation -13,H2413,Envoyer un CV et une lettre de motivation -13,H2415,Envoyer un CV et une lettre de motivation -13,H2505,Envoyer un CV et une lettre de motivation -13,H3303, -14,B1801,Se présenter spontanément -14,B1803,Se présenter spontanément -14,B1804,Se présenter spontanément -14,B1805,Se présenter spontanément -14,H1205,Se présenter spontanément -14,H2402,Se présenter spontanément -14,H2409,Se présenter spontanément -14,H2410,Se présenter spontanément -14,H2411,Se présenter spontanément -14,H2412,Se présenter spontanément -14,H2414,Se présenter spontanément -14,H2415,Se présenter spontanément -14,H2505,Se présenter spontanément -14,L1102,Se présenter spontanément -15,B1802,Se présenter spontanément -15,B1805,Se présenter spontanément -15,H1201,Se présenter spontanément -15,H1205,Se présenter spontanément -15,H2401,Se présenter spontanément -15,H2402,Se présenter spontanément -15,H2407,Se présenter spontanément -15,H2409,Se présenter spontanément -15,H2411,Se présenter spontanément -15,H2412,Se présenter spontanément -15,H2414,Se présenter spontanément -15,H2415,Se présenter spontanément -15,H2505,Envoyer un CV et une lettre de motivation -15,H3201,Se présenter spontanément -15,H3202,Se présenter spontanément -15,H3203,Se présenter spontanément -15,H3302,Se présenter spontanément -15,H3303,Se présenter spontanément -16,B1302,Envoyer un CV et une lettre de motivation -16,B1303,Envoyer un CV et une lettre de motivation -16,B1401,Envoyer un CV et une lettre de motivation -16,F1501,Envoyer un CV et une lettre de motivation -16,H1201,Envoyer un CV et une lettre de motivation -16,H2201,Envoyer un CV et une lettre de motivation -16,H2202,Envoyer un CV et une lettre de motivation -16,H2203,Envoyer un CV et une lettre de motivation -16,H2204,Envoyer un CV et une lettre de motivation -16,H2205,Envoyer un CV et une lettre de motivation -16,H2206,Envoyer un CV et une lettre de motivation -16,H2208,Envoyer un CV et une lettre de motivation -16,H2209,Envoyer un CV et une lettre de motivation -16,H2903,Envoyer un CV et une lettre de motivation -16,H2906,Envoyer un CV et une lettre de motivation -16,H3301,Envoyer un CV et une lettre de motivation -16,H3302,Envoyer un CV et une lettre de motivation -17,E1301,Se présenter spontanément -17,E1303,Se présenter spontanément -17,E1304,Se présenter spontanément -17,E1306,Se présenter spontanément -17,H2504,Se présenter spontanément -17,H3101,Se présenter spontanément -17,H3102,Se présenter spontanément -17,H3301,Se présenter spontanément -17,H3303,Se présenter spontanément -18,B1402,Se présenter spontanément -18,E1105,Se présenter spontanément -18,E1106,Se présenter spontanément -18,E1301,Se présenter spontanément -18,E1302,Se présenter spontanément -18,E1303,Se présenter spontanément -18,E1304,Se présenter spontanément -18,E1305,Se présenter spontanément -18,E1306,Se présenter spontanément -18,E1307,Se présenter spontanément -18,E1308,Se présenter spontanément -19,H2504,Envoyer un CV et une lettre de motivation -19,H2701,Envoyer un CV et une lettre de motivation -20,H1201,Envoyer un CV et une lettre de motivation -20,H1505,Envoyer un CV et une lettre de motivation -20,H2301,Envoyer un CV et une lettre de motivation -20,H2504,Envoyer un CV et une lettre de motivation -20,H2701,Envoyer un CV et une lettre de motivation -20,H2902,Se présenter spontanément -20,H2903,Se présenter spontanément -20,H2907,Se présenter spontanément -20,H2909,Se présenter spontanément -20,H2911,Se présenter spontanément -20,H2914,Se présenter spontanément -20,H3301,Se présenter spontanément -20,H3302,Se présenter spontanément -20,H3303,Se présenter spontanément -20,I1306,Se présenter spontanément -21,D1405,Envoyer un CV et une lettre de motivation -21,H2301,Envoyer un CV et une lettre de motivation -21,H2504,Envoyer un CV et une lettre de motivation -21,H3303,Envoyer un CV et une lettre de motivation -22,H1201,Envoyer un CV et une lettre de motivation -22,H2504,Envoyer un CV et une lettre de motivation -22,H2901,Se présenter spontanément -22,H2902,Se présenter spontanément -22,H2903,Se présenter spontanément -22,H2904,Se présenter spontanément -22,H2905,Se présenter spontanément -22,H2906,Se présenter spontanément -22,H2907,Se présenter spontanément -22,H2908,Se présenter spontanément -22,H2909,Se présenter spontanément -22,H2910,Se présenter spontanément -22,H2911,Se présenter spontanément -22,H3201,Se présenter spontanément -22,H3202,Se présenter spontanément -22,H3203,Se présenter spontanément -22,H3302,Se présenter spontanément -22,H3303,Se présenter spontanément -22,H3401,Se présenter spontanément -23,B1201,Se présenter spontanément -23,B1602,Se présenter spontanément -23,F1612,Se présenter spontanément -23,F1706,Se présenter spontanément -23,H2504,Envoyer un CV et une lettre de motivation -23,H2701,Se présenter spontanément -23,H2801,Se présenter spontanément -23,H2802,Se présenter spontanément -23,H2803,Se présenter spontanément -23,H2804,Se présenter spontanément -23,H2805,Se présenter spontanément -23,H2901,Se présenter spontanément -23,H2902,Se présenter spontanément -23,H2903,Se présenter spontanément -23,H2904,Se présenter spontanément -23,H2905,Se présenter spontanément -23,H2906,Se présenter spontanément -23,H2907,Se présenter spontanément -23,H2908,Se présenter spontanément -23,H2909,Se présenter spontanément -23,H2910,Se présenter spontanément -23,H2911,Se présenter spontanément -23,H3301,Se présenter spontanément -23,H3302,Se présenter spontanément -23,H3303,Se présenter spontanément -23,H3401,Se présenter spontanément -24,H2503,Se présenter spontanément -24,H2602,Se présenter spontanément -24,H2701,Se présenter spontanément -24,H2901,Se présenter spontanément -24,H2902,Se présenter spontanément -24,H2903,Se présenter spontanément -24,H2904,Se présenter spontanément -24,H2905,Se présenter spontanément -24,H2906,Se présenter spontanément -24,H2907,Se présenter spontanément -24,H2908,Se présenter spontanément -24,H2909,Se présenter spontanément -24,H2910,Se présenter spontanément -24,H2911,Se présenter spontanément -24,H2914,Se présenter spontanément -24,H3301,Se présenter spontanément -24,H3401,Se présenter spontanément -24,I1304,Se présenter spontanément -24,I1310,Se présenter spontanément -24,I1502,Se présenter spontanément -25,A1502,Se présenter spontanément -25,B1601,Se présenter spontanément -25,H2503,Se présenter spontanément -25,H2602,Se présenter spontanément -25,H2605,Se présenter spontanément -25,H2901,Se présenter spontanément -25,H2902,Se présenter spontanément -25,H2903,Se présenter spontanément -25,H2904,Se présenter spontanément -25,H2905,Se présenter spontanément -25,H2906,Se présenter spontanément -25,H2907,Se présenter spontanément -25,H2908,Se présenter spontanément -25,H2909,Se présenter spontanément -25,H2910,Se présenter spontanément -25,H2911,Se présenter spontanément -25,H2914,Se présenter spontanément -25,H3401,Se présenter spontanément -25,I1305,Se présenter spontanément -26,B1604,Se présenter spontanément -26,H1202,Envoyer un CV et une lettre de motivation -26,H1209,Se présenter spontanément -26,H1504,Se présenter spontanément -26,H2501,Envoyer un CV et une lettre de motivation -26,H2503,Se présenter spontanément -26,H2601,Se présenter spontanément -26,H2602,Se présenter spontanément -26,H2603,Se présenter spontanément -26,H2604,Se présenter spontanément -26,H2605,Se présenter spontanément -26,H2901,Se présenter spontanément -26,H2902,Se présenter spontanément -26,H2903,Se présenter spontanément -26,H2904,Se présenter spontanément -26,H2905,Se présenter spontanément -26,H2906,Se présenter spontanément -26,H2909,Se présenter spontanément -26,H2911,Se présenter spontanément -26,H3401,Se présenter spontanément -26,I1305,Se présenter spontanément -26,I1401,Envoyer un CV et une lettre de motivation -27,H1202,Envoyer un CV et une lettre de motivation -27,H1209,Envoyer un CV et une lettre de motivation -27,H1504,Envoyer un CV et une lettre de motivation -27,H2501,Envoyer un CV et une lettre de motivation -27,H2503,Se présenter spontanément -27,H2601,Se présenter spontanément -27,H2602,Se présenter spontanément -27,H2603,Se présenter spontanément -27,H2604,Se présenter spontanément -27,H2605,Se présenter spontanément -27,H2901,Se présenter spontanément -27,H2902,Se présenter spontanément -27,H2903,Se présenter spontanément -27,H2904,Se présenter spontanément -27,H2905,Se présenter spontanément -27,H2906,Se présenter spontanément -27,H2909,Se présenter spontanément -27,H2911,Se présenter spontanément -27,I1305,Se présenter spontanément -27,I1402,Se présenter spontanément -28,H2501,Envoyer un CV et une lettre de motivation -28,H2503,Se présenter spontanément -28,H2901,Se présenter spontanément -28,H2902,Se présenter spontanément -28,H2903,Se présenter spontanément -28,H2904,Se présenter spontanément -28,H2905,Se présenter spontanément -28,H2906,Se présenter spontanément -28,H2907,Se présenter spontanément -28,H2909,Se présenter spontanément -28,H2910,Se présenter spontanément -28,H2914,Se présenter spontanément -28,H3201,Se présenter spontanément -28,H3202,Se présenter spontanément -29,B1802,Se présenter spontanément -29,H2501,Envoyer un CV et une lettre de motivation -29,H2503,Se présenter spontanément -29,H2901,Se présenter spontanément -29,H2902,Se présenter spontanément -29,H2903,Se présenter spontanément -29,H2904,Se présenter spontanément -29,H2905,Se présenter spontanément -29,H2906,Se présenter spontanément -29,H2907,Se présenter spontanément -29,H2908,Se présenter spontanément -29,H2909,Se présenter spontanément -29,H2910,Se présenter spontanément -29,H2911,Se présenter spontanément -29,H2914,Se présenter spontanément -29,H3201,Se présenter spontanément -29,H3202,Se présenter spontanément -29,H3203,Se présenter spontanément -29,H3401,Se présenter spontanément -29,H3402,Se présenter spontanément -29,H3403,Se présenter spontanément -29,H3404,Se présenter spontanément -29,I1305,Se présenter spontanément -29,I1604,Se présenter spontanément -30,B1802,Se présenter spontanément -30,F1503,Se présenter spontanément -30,F1604,Se présenter spontanément -30,H2501,Envoyer un CV et une lettre de motivation -30,H2503,Se présenter spontanément -30,H2602,Se présenter spontanément -30,H2605,Se présenter spontanément -30,H2901,Se présenter spontanément -30,H2902,Se présenter spontanément -30,H2903,Se présenter spontanément -30,H2904,Se présenter spontanément -30,H2905,Se présenter spontanément -30,H2906,Se présenter spontanément -30,H2907,Se présenter spontanément -30,H2908,Se présenter spontanément -30,H2909,Se présenter spontanément -30,H2910,Se présenter spontanément -30,H2911,Se présenter spontanément -30,H2914,Se présenter spontanément -30,H3201,Se présenter spontanément -30,H3202,Se présenter spontanément -30,H3203,Se présenter spontanément -30,H3401,Se présenter spontanément -30,H3402,Se présenter spontanément -30,H3403,Se présenter spontanément -30,H3404,Se présenter spontanément -30,I1305,Se présenter spontanément -30,I1601,Se présenter spontanément -30,I1602,Se présenter spontanément -30,I1605,Se présenter spontanément -30,I1606,Se présenter spontanément -30,I1607,Se présenter spontanément -30,N2102,Envoyer un CV et une lettre de motivation -31,B1302,Se présenter spontanément -31,B1805,Se présenter spontanément -31,H1201,Se présenter spontanément -31,H2201,Se présenter spontanément -31,H2202,Se présenter spontanément -31,H2204,Envoyer un CV et une lettre de motivation -31,H2207,Se présenter spontanément -31,H2209,Se présenter spontanément -31,H2903,Se présenter spontanément -31,H2906,Se présenter spontanément -31,H3301,Se présenter spontanément -31,H3302,Se présenter spontanément -32,B1302,Se présenter spontanément -32,B1303,Se présenter spontanément -32,B1501,Se présenter spontanément -32,B1601,Se présenter spontanément -32,B1602,Se présenter spontanément -32,B1603,Se présenter spontanément -32,B1701,Envoyer un CV et une lettre de motivation -32,B1802,Se présenter spontanément -32,D1405,Envoyer un CV et une lettre de motivation -32,H2208,Se présenter spontanément -32,H2605,Se présenter spontanément -32,H2901,Se présenter spontanément -32,H2902,Se présenter spontanément -32,H2903,Se présenter spontanément -32,H2904,Se présenter spontanément -32,H2905,Se présenter spontanément -32,H2906,Se présenter spontanément -32,H2907,Se présenter spontanément -32,H2909,Se présenter spontanément -32,H2911,Se présenter spontanément -32,H3201,Se présenter spontanément -32,H3202,Se présenter spontanément -32,H3203,Se présenter spontanément -32,H3401,Se présenter spontanément -32,I1305,Se présenter spontanément -32,J1401,Envoyer un CV et une lettre de motivation -32,J1410,Envoyer un CV et une lettre de motivation -32,J1411,Envoyer un CV et une lettre de motivation -33,H2501,Envoyer un CV et une lettre de motivation -33,H2602,Se présenter spontanément -33,H2901,Se présenter spontanément -33,H2902,Se présenter spontanément -33,H2903,Se présenter spontanément -33,H2904,Se présenter spontanément -33,H2905,Se présenter spontanément -33,H2906,Se présenter spontanément -33,H2907,Se présenter spontanément -33,H2908,Se présenter spontanément -33,H2909,Se présenter spontanément -33,H2910,Se présenter spontanément -33,H2911,Se présenter spontanément -33,H2914,Se présenter spontanément -33,I1309,Se présenter spontanément -33,I1310,Se présenter spontanément -33,I1601,Se présenter spontanément -33,I1602,Se présenter spontanément -33,I1603,Se présenter spontanément -33,I1605,Se présenter spontanément -35,F1605,Envoyer un CV et une lettre de motivation -35,F1705,Envoyer un CV et une lettre de motivation -35,H2701,Envoyer un CV et une lettre de motivation -35,I1304,Envoyer un CV et une lettre de motivation -35,I1306,Envoyer un CV et une lettre de motivation -35,I1308,Envoyer un CV et une lettre de motivation -35,I1503,Envoyer un CV et une lettre de motivation -36,F1705,Envoyer un CV et une lettre de motivation -36,K2301,Envoyer un CV et une lettre de motivation -36,K2306,Envoyer un CV et une lettre de motivation -37,K2301,Envoyer un CV et une lettre de motivation -37,K2306,Envoyer un CV et une lettre de motivation -38,H1302,Envoyer un CV et une lettre de motivation -38,H1303,Envoyer un CV et une lettre de motivation -38,H2701,Envoyer un CV et une lettre de motivation -38,I1503,Envoyer un CV et une lettre de motivation -38,K2302,Envoyer un CV et une lettre de motivation -38,K2303,Envoyer un CV et une lettre de motivation -38,K2304,Envoyer un CV et une lettre de motivation -38,K2305,Envoyer un CV et une lettre de motivation -38,K2306,Envoyer un CV et une lettre de motivation -38,N4104,Envoyer un CV et une lettre de motivation -39,H1302,Envoyer un CV et une lettre de motivation -39,H1303,Envoyer un CV et une lettre de motivation -39,I1503,Envoyer un CV et une lettre de motivation -41,C1503,Envoyer un CV et une lettre de motivation -41,C1504,Envoyer un CV et une lettre de motivation -41,F1106,Envoyer un CV et une lettre de motivation -41,F1201,Envoyer un CV et une lettre de motivation -41,F1202,Envoyer un CV et une lettre de motivation -42,F1104,Envoyer un CV et une lettre de motivation -42,F1201,Envoyer un CV et une lettre de motivation -42,F1202,Envoyer un CV et une lettre de motivation -42,F1301,Envoyer un CV et une lettre de motivation -42,F1302,Envoyer un CV et une lettre de motivation -42,F1501,Envoyer un CV et une lettre de motivation -42,F1701,Envoyer un CV et une lettre de motivation -42,F1702,Envoyer un CV et une lettre de motivation -42,F1703,Envoyer un CV et une lettre de motivation -42,F1704,Envoyer un CV et une lettre de motivation -42,F1705,Envoyer un CV et une lettre de motivation -43,F1104,Envoyer un CV et une lettre de motivation -43,F1105,Envoyer un CV et une lettre de motivation -43,F1107,Envoyer un CV et une lettre de motivation -43,F1201,Envoyer un CV et une lettre de motivation -43,F1202,Envoyer un CV et une lettre de motivation -43,F1301,Envoyer un CV et une lettre de motivation -43,F1302,Envoyer un CV et une lettre de motivation -43,F1501,Envoyer un CV et une lettre de motivation -43,F1502,Envoyer un CV et une lettre de motivation -43,F1503,Envoyer un CV et une lettre de motivation -43,F1601,Envoyer un CV et une lettre de motivation -43,F1602,Envoyer un CV et une lettre de motivation -43,F1603,Envoyer un CV et une lettre de motivation -43,F1604,Envoyer un CV et une lettre de motivation -43,F1605,Envoyer un CV et une lettre de motivation -43,F1606,Envoyer un CV et une lettre de motivation -43,F1607,Envoyer un CV et une lettre de motivation -43,F1608,Envoyer un CV et une lettre de motivation -43,F1609,Envoyer un CV et une lettre de motivation -43,F1610,Envoyer un CV et une lettre de motivation -43,F1611,Envoyer un CV et une lettre de motivation -43,F1612,Envoyer un CV et une lettre de motivation -43,F1613,Envoyer un CV et une lettre de motivation -43,F1701,Envoyer un CV et une lettre de motivation -43,F1703,Envoyer un CV et une lettre de motivation -43,F1704,Envoyer un CV et une lettre de motivation -43,F1705,Envoyer un CV et une lettre de motivation -43,H2206,Envoyer un CV et une lettre de motivation -43,I1301,Envoyer un CV et une lettre de motivation -43,I1302,Envoyer un CV et une lettre de motivation -43,I1306,Envoyer un CV et une lettre de motivation -43,I1307,Envoyer un CV et une lettre de motivation -43,I1308,Envoyer un CV et une lettre de motivation -43,I1501,Envoyer un CV et une lettre de motivation -43,I1603,Envoyer un CV et une lettre de motivation -43,N1303,Envoyer un CV et une lettre de motivation -45,D1213,Se présenter spontanément -45,D1404,Se présenter spontanément -45,D1501,Se présenter spontanément -45,I1603,Se présenter spontanément -45,I1604,Se présenter spontanément -45,I1606,Se présenter spontanément -45,I1607,Se présenter spontanément -46,D1106,Se présenter spontanément -46,D1107,Se présenter spontanément -46,D1213,Se présenter spontanément -46,D1501,Se présenter spontanément -46,D1505,Se présenter spontanément -46,D1506,Se présenter spontanément -46,D1507,Se présenter spontanément -46,D1508,Se présenter spontanément -46,I1401,Se présenter spontanément -46,I1603,Se présenter spontanément -46,I1605,Se présenter spontanément -47,B1301,Se présenter spontanément -47,B1603,Se présenter spontanément -47,B1604,Se présenter spontanément -47,B1805,Se présenter spontanément -47,D1101,Se présenter spontanément -47,D1102,Se présenter spontanément -47,D1103,Se présenter spontanément -47,D1104,Se présenter spontanément -47,D1105,Se présenter spontanément -47,D1106,Se présenter spontanément -47,D1201,Se présenter spontanément -47,D1207,Se présenter spontanément -47,D1209,Se présenter spontanément -47,D1210,Se présenter spontanément -47,D1211,Se présenter spontanément -47,D1212,Se présenter spontanément -47,D1213,Se présenter spontanément -47,D1214,Se présenter spontanément -47,D1301,Se présenter spontanément -47,D1408,Se présenter spontanément -47,D1501,Se présenter spontanément -47,D1502,Se présenter spontanément -47,D1503,Se présenter spontanément -47,D1504,Se présenter spontanément -47,D1505,Se présenter spontanément -47,D1506,Se présenter spontanément -47,D1507,Se présenter spontanément -47,D1508,Se présenter spontanément -47,D1509,Envoyer un CV et une lettre de motivation -47,E1201,Se présenter spontanément -47,E1203,Se présenter spontanément -47,G1804,Se présenter spontanément -47,I1401,Envoyer un CV et une lettre de motivation -47,J1401,Se présenter spontanément -47,J1405,Se présenter spontanément -47,N1103,Se présenter spontanément -47,N1303,Envoyer un CV et une lettre de motivation -47,N4101,Envoyer un CV et une lettre de motivation -47,N4105,Envoyer un CV et une lettre de motivation -49,F1605,Se présenter spontanément -49,F1702,Se présenter spontanément -49,G1101,Se présenter spontanément -49,G1302,Envoyer un CV et une lettre de motivation -49,G1303,Se présenter spontanément -49,I1604,Se présenter spontanément -49,I1606,Se présenter spontanément -49,K1204,Envoyer un CV et une lettre de motivation -49,N1102,Se présenter spontanément -49,N1201,Envoyer un CV et une lettre de motivation -49,N1202,Envoyer un CV et une lettre de motivation -49,N1301,Envoyer un CV et une lettre de motivation -49,N1302,Envoyer un CV et une lettre de motivation -49,N4101,Envoyer un CV et une lettre de motivation -49,N4102,Envoyer un CV et une lettre de motivation -49,N4103,Envoyer un CV et une lettre de motivation -49,N4105,Envoyer un CV et une lettre de motivation -49,N4201,Envoyer un CV et une lettre de motivation -49,N4202,Envoyer un CV et une lettre de motivation -49,N4203,Envoyer un CV et une lettre de motivation -49,N4204,Envoyer un CV et une lettre de motivation -49,N4301,Envoyer un CV et une lettre de motivation -49,N4302,Envoyer un CV et une lettre de motivation -49,N4401,Envoyer un CV et une lettre de motivation -49,N4402,Envoyer un CV et une lettre de motivation -49,N4403,Envoyer un CV et une lettre de motivation -50,F1702,Envoyer un CV et une lettre de motivation -50,G1101,Envoyer un CV et une lettre de motivation -50,G1206,Envoyer un CV et une lettre de motivation -50,G1302,Envoyer un CV et une lettre de motivation -50,G1303,Envoyer un CV et une lettre de motivation -50,I1605,Envoyer un CV et une lettre de motivation -50,N1201,Envoyer un CV et une lettre de motivation -50,N1202,Envoyer un CV et une lettre de motivation -50,N1301,Envoyer un CV et une lettre de motivation -50,N1302,Envoyer un CV et une lettre de motivation -50,N3101,Envoyer un CV et une lettre de motivation -50,N3102,Envoyer un CV et une lettre de motivation -50,N3103,Envoyer un CV et une lettre de motivation -50,N3201,Envoyer un CV et une lettre de motivation -50,N3202,Envoyer un CV et une lettre de motivation -50,N3203,Envoyer un CV et une lettre de motivation -51,G1101,Envoyer un CV et une lettre de motivation -51,G1302,Envoyer un CV et une lettre de motivation -51,G1303,Envoyer un CV et une lettre de motivation -51,I1602,Envoyer un CV et une lettre de motivation -51,N1201,Envoyer un CV et une lettre de motivation -51,N1202,Envoyer un CV et une lettre de motivation -51,N1301,Envoyer un CV et une lettre de motivation -51,N1302,Envoyer un CV et une lettre de motivation -51,N2101,Envoyer un CV et une lettre de motivation -51,N2102,Envoyer un CV et une lettre de motivation -51,N2201,Envoyer un CV et une lettre de motivation -51,N2203,Envoyer un CV et une lettre de motivation -51,N2204,Envoyer un CV et une lettre de motivation -51,N2205,Envoyer un CV et une lettre de motivation -52,D1505,Envoyer un CV et une lettre de motivation -52,F1301,Envoyer un CV et une lettre de motivation -52,F1702,Envoyer un CV et une lettre de motivation -52,I1202,Envoyer un CV et une lettre de motivation -52,I1602,Envoyer un CV et une lettre de motivation -52,K2202,Envoyer un CV et une lettre de motivation -52,K2204,Envoyer un CV et une lettre de motivation -52,K2302,Envoyer un CV et une lettre de motivation -52,K2303,Envoyer un CV et une lettre de motivation -52,K2502,Envoyer un CV et une lettre de motivation -52,K2503,Envoyer un CV et une lettre de motivation -52,N1101,Envoyer un CV et une lettre de motivation -52,N1103,Envoyer un CV et une lettre de motivation -52,N1104,Envoyer un CV et une lettre de motivation -52,N1105,Envoyer un CV et une lettre de motivation -52,N1201,Envoyer un CV et une lettre de motivation -52,N1202,Envoyer un CV et une lettre de motivation -52,N1301,Envoyer un CV et une lettre de motivation -52,N1302,Envoyer un CV et une lettre de motivation -52,N1303,Envoyer un CV et une lettre de motivation -52,N2201,Envoyer un CV et une lettre de motivation -52,N2202,Envoyer un CV et une lettre de motivation -52,N2203,Envoyer un CV et une lettre de motivation -52,N2204,Envoyer un CV et une lettre de motivation -52,N2205,Envoyer un CV et une lettre de motivation -52,N3101,Envoyer un CV et une lettre de motivation -52,N3102,Envoyer un CV et une lettre de motivation -52,N3201,Envoyer un CV et une lettre de motivation -52,N3202,Envoyer un CV et une lettre de motivation -52,N3203,Envoyer un CV et une lettre de motivation -52,N4201,Envoyer un CV et une lettre de motivation -52,N4203,Envoyer un CV et une lettre de motivation -52,N4403,Envoyer un CV et une lettre de motivation -53,M1603,Envoyer un CV et une lettre de motivation -53,N4104,Envoyer un CV et une lettre de motivation -53,N4105,Envoyer un CV et une lettre de motivation -53,N4201,Envoyer un CV et une lettre de motivation -53,N4202,Envoyer un CV et une lettre de motivation -53,N4203,Envoyer un CV et une lettre de motivation -55,D1205,Se présenter spontanément -55,G1401,Se présenter spontanément -55,G1402,Envoyer un CV et une lettre de motivation -55,G1403,Envoyer un CV et une lettre de motivation -55,G1501,Se présenter spontanément -55,G1502,Se présenter spontanément -55,G1503,Se présenter spontanément -55,G1701,Se présenter spontanément -55,G1702,Se présenter spontanément -55,G1703,Se présenter spontanément -55,G1803,Se présenter spontanément -55,K1202,Se présenter spontanément -55,K2201,Se présenter spontanément -56,D1205,Se présenter spontanément -56,G1401,Se présenter spontanément -56,G1402,Envoyer un CV et une lettre de motivation -56,G1404,Envoyer un CV et une lettre de motivation -56,G1601,Se présenter spontanément -56,G1602,Se présenter spontanément -56,G1603,Se présenter spontanément -56,G1604,Se présenter spontanément -56,G1605,Se présenter spontanément -56,G1702,Se présenter spontanément -56,G1801,Se présenter spontanément -56,G1802,Se présenter spontanément -56,G1803,Se présenter spontanément -56,G1804,Se présenter spontanément -56,J1402,Se présenter spontanément -56,K2201,Se présenter spontanément -56,N4104,Se présenter spontanément -58,E1101,Envoyer un CV et une lettre de motivation -58,E1102,Envoyer un CV et une lettre de motivation -58,E1103,Envoyer un CV et une lettre de motivation -58,E1104,Envoyer un CV et une lettre de motivation -58,E1105,Envoyer un CV et une lettre de motivation -58,E1106,Envoyer un CV et une lettre de motivation -58,E1107,Envoyer un CV et une lettre de motivation -58,E1205,Envoyer un CV et une lettre de motivation -58,E1305,Envoyer un CV et une lettre de motivation -58,E1308,Envoyer un CV et une lettre de motivation -58,E1401,Envoyer un CV et une lettre de motivation -58,E1402,Envoyer un CV et une lettre de motivation -59,E1102,Envoyer un CV et une lettre de motivation -59,E1104,Envoyer un CV et une lettre de motivation -59,E1106,Envoyer un CV et une lettre de motivation -59,E1202,Envoyer un CV et une lettre de motivation -59,E1204,Envoyer un CV et une lettre de motivation -59,E1205,Envoyer un CV et une lettre de motivation -59,L1103,Envoyer un CV et une lettre de motivation -59,L1201,Envoyer un CV et une lettre de motivation -59,L1202,Envoyer un CV et une lettre de motivation -59,L1203,Envoyer un CV et une lettre de motivation -59,L1204,Envoyer un CV et une lettre de motivation -59,L1302,Envoyer un CV et une lettre de motivation -59,L1303,Envoyer un CV et une lettre de motivation -59,L1304,Envoyer un CV et une lettre de motivation -59,L1501,Envoyer un CV et une lettre de motivation -59,L1502,Envoyer un CV et une lettre de motivation -59,L1503,Envoyer un CV et une lettre de motivation -59,L1504,Envoyer un CV et une lettre de motivation -59,L1505,Envoyer un CV et une lettre de motivation -59,L1506,Envoyer un CV et une lettre de motivation -59,L1507,Envoyer un CV et une lettre de motivation -59,L1508,Envoyer un CV et une lettre de motivation -59,L1509,Envoyer un CV et une lettre de motivation -60,E1106,Envoyer un CV et une lettre de motivation -60,L1103,Envoyer un CV et une lettre de motivation -60,L1302,Envoyer un CV et une lettre de motivation -60,L1304,Envoyer un CV et une lettre de motivation -60,L1507,Envoyer un CV et une lettre de motivation -61,F1605,Envoyer un CV et une lettre de motivation -61,H1209,Envoyer un CV et une lettre de motivation -61,H1504,Envoyer un CV et une lettre de motivation -61,H2605,Envoyer un CV et une lettre de motivation -61,I1305,Envoyer un CV et une lettre de motivation -61,I1307,Envoyer un CV et une lettre de motivation -61,I1501,Envoyer un CV et une lettre de motivation -61,M1801,Envoyer un CV et une lettre de motivation -61,M1802,Envoyer un CV et une lettre de motivation -61,M1803,Envoyer un CV et une lettre de motivation -61,M1804,Envoyer un CV et une lettre de motivation -61,M1810,Envoyer un CV et une lettre de motivation -62,I1307,Envoyer un CV et une lettre de motivation -62,I1401,Envoyer un CV et une lettre de motivation -62,M1801,Envoyer un CV et une lettre de motivation -62,M1802,Envoyer un CV et une lettre de motivation -62,M1803,Envoyer un CV et une lettre de motivation -62,M1804,Envoyer un CV et une lettre de motivation -62,M1805,Envoyer un CV et une lettre de motivation -62,M1806,Envoyer un CV et une lettre de motivation -62,M1810,Envoyer un CV et une lettre de motivation -63,E1101,Envoyer un CV et une lettre de motivation -63,E1104,Envoyer un CV et une lettre de motivation -63,E1105,Envoyer un CV et une lettre de motivation -63,E1106,Envoyer un CV et une lettre de motivation -63,E1305,Envoyer un CV et une lettre de motivation -63,M1801,Envoyer un CV et une lettre de motivation -63,M1802,Envoyer un CV et une lettre de motivation -63,M1803,Envoyer un CV et une lettre de motivation -63,M1804,Envoyer un CV et une lettre de motivation -63,M1805,Envoyer un CV et une lettre de motivation -63,M1806,Envoyer un CV et une lettre de motivation -63,M1810,Envoyer un CV et une lettre de motivation -64,C1101,Envoyer un CV et une lettre de motivation -64,C1102,Envoyer un CV et une lettre de motivation -64,C1105,Envoyer un CV et une lettre de motivation -64,C1201,Envoyer un CV et une lettre de motivation -64,C1202,Envoyer un CV et une lettre de motivation -64,C1203,Envoyer un CV et une lettre de motivation -64,C1204,Envoyer un CV et une lettre de motivation -64,C1205,Envoyer un CV et une lettre de motivation -64,C1206,Envoyer un CV et une lettre de motivation -64,C1207,Envoyer un CV et une lettre de motivation -64,C1301,Envoyer un CV et une lettre de motivation -64,C1302,Envoyer un CV et une lettre de motivation -64,C1303,Envoyer un CV et une lettre de motivation -64,C1401,Envoyer un CV et une lettre de motivation -64,M1201,Envoyer un CV et une lettre de motivation -64,M1207,Envoyer un CV et une lettre de motivation -65,C1101,Envoyer un CV et une lettre de motivation -65,C1102,Envoyer un CV et une lettre de motivation -65,C1103,Envoyer un CV et une lettre de motivation -65,C1104,Envoyer un CV et une lettre de motivation -65,C1105,Envoyer un CV et une lettre de motivation -65,C1106,Envoyer un CV et une lettre de motivation -65,C1107,Envoyer un CV et une lettre de motivation -65,C1108,Envoyer un CV et une lettre de motivation -65,C1109,Envoyer un CV et une lettre de motivation -65,C1110,Envoyer un CV et une lettre de motivation -65,C1303,Envoyer un CV et une lettre de motivation -65,C1401,Envoyer un CV et une lettre de motivation -65,C1503,Envoyer un CV et une lettre de motivation -65,C1504,Envoyer un CV et une lettre de motivation -65,J1102,Envoyer un CV et une lettre de motivation -65,M1201,Envoyer un CV et une lettre de motivation -66,C1103,Envoyer un CV et une lettre de motivation -66,C1301,Envoyer un CV et une lettre de motivation -66,C1302,Envoyer un CV et une lettre de motivation -66,C1303,Envoyer un CV et une lettre de motivation -68,C1501,Envoyer un CV et une lettre de motivation -68,C1502,Envoyer un CV et une lettre de motivation -68,C1503,Envoyer un CV et une lettre de motivation -68,C1504,Envoyer un CV et une lettre de motivation -68,K2501,Envoyer un CV et une lettre de motivation -69,K1102,Envoyer un CV et une lettre de motivation -69,K1901,Envoyer un CV et une lettre de motivation -69,K1902,Envoyer un CV et une lettre de motivation -69,K1903,Envoyer un CV et une lettre de motivation -69,M1202,Envoyer un CV et une lettre de motivation -69,M1203,Envoyer un CV et une lettre de motivation -69,M1204,Envoyer un CV et une lettre de motivation -70,H1102,Envoyer un CV et une lettre de motivation -70,H1206,Envoyer un CV et une lettre de motivation -70,H1302,Envoyer un CV et une lettre de motivation -70,H1401,Envoyer un CV et une lettre de motivation -70,H1402,Envoyer un CV et une lettre de motivation -70,H1502,Envoyer un CV et une lettre de motivation -70,M1101,Envoyer un CV et une lettre de motivation -70,M1102,Envoyer un CV et une lettre de motivation -70,M1201,Envoyer un CV et une lettre de motivation -70,M1202,Envoyer un CV et une lettre de motivation -70,M1204,Envoyer un CV et une lettre de motivation -70,M1205,Envoyer un CV et une lettre de motivation -70,M1206,Envoyer un CV et une lettre de motivation -70,M1207,Envoyer un CV et une lettre de motivation -70,M1402,Envoyer un CV et une lettre de motivation -70,M1403,Envoyer un CV et une lettre de motivation -70,M1502,Envoyer un CV et une lettre de motivation -70,M1503,Envoyer un CV et une lettre de motivation -70,M1701,Envoyer un CV et une lettre de motivation -70,M1703,Envoyer un CV et une lettre de motivation -70,M1704,Envoyer un CV et une lettre de motivation -70,M1705,Envoyer un CV et une lettre de motivation -70,M1706,Envoyer un CV et une lettre de motivation -70,M1707,Envoyer un CV et une lettre de motivation -70,M1801,Envoyer un CV et une lettre de motivation -70,M1802,Envoyer un CV et une lettre de motivation -70,M1803,Envoyer un CV et une lettre de motivation -70,M1804,Envoyer un CV et une lettre de motivation -70,M1805,Envoyer un CV et une lettre de motivation -70,M1806,Envoyer un CV et une lettre de motivation -70,M1810,Envoyer un CV et une lettre de motivation -71,A1301,Envoyer un CV et une lettre de motivation -71,A1302,Envoyer un CV et une lettre de motivation -71,A1303,Envoyer un CV et une lettre de motivation -71,F1101,Envoyer un CV et une lettre de motivation -71,F1102,Envoyer un CV et une lettre de motivation -71,F1103,Envoyer un CV et une lettre de motivation -71,F1104,Envoyer un CV et une lettre de motivation -71,F1105,Envoyer un CV et une lettre de motivation -71,F1106,Envoyer un CV et une lettre de motivation -71,F1107,Envoyer un CV et une lettre de motivation -71,F1108,Envoyer un CV et une lettre de motivation -71,H1301,Envoyer un CV et une lettre de motivation -71,H1302,Envoyer un CV et une lettre de motivation -71,H1501,Envoyer un CV et une lettre de motivation -71,H1502,Envoyer un CV et une lettre de motivation -71,H1503,Envoyer un CV et une lettre de motivation -71,H1504,Envoyer un CV et une lettre de motivation -71,H1506,Envoyer un CV et une lettre de motivation -71,I1604,Envoyer un CV et une lettre de motivation -71,K1802,Envoyer un CV et une lettre de motivation -71,K2401,Envoyer un CV et une lettre de motivation -71,K2402,Envoyer un CV et une lettre de motivation -71,M1808,Envoyer un CV et une lettre de motivation -72,H1206,Envoyer un CV et une lettre de motivation -72,H1501,Envoyer un CV et une lettre de motivation -72,H1503,Envoyer un CV et une lettre de motivation -72,H1505,Envoyer un CV et une lettre de motivation -72,I1502,Envoyer un CV et une lettre de motivation -72,I1503,Envoyer un CV et une lettre de motivation -72,J1101,Envoyer un CV et une lettre de motivation -72,J1201,Envoyer un CV et une lettre de motivation -72,J1302,Envoyer un CV et une lettre de motivation -72,K2401,Envoyer un CV et une lettre de motivation -72,K2402,Envoyer un CV et une lettre de motivation -73,E1101,Envoyer un CV et une lettre de motivation -73,E1104,Envoyer un CV et une lettre de motivation -73,E1107,Envoyer un CV et une lettre de motivation -73,E1201,Envoyer un CV et une lettre de motivation -73,E1205,Envoyer un CV et une lettre de motivation -73,E1306,Envoyer un CV et une lettre de motivation -73,E1401,Envoyer un CV et une lettre de motivation -73,E1402,Envoyer un CV et une lettre de motivation -73,I1201,Envoyer un CV et une lettre de motivation -73,K1601,Envoyer un CV et une lettre de motivation -73,L1102,Envoyer un CV et une lettre de motivation -73,L1501,Envoyer un CV et une lettre de motivation -73,M1401,Envoyer un CV et une lettre de motivation -73,M1403,Envoyer un CV et une lettre de motivation -73,M1404,Envoyer un CV et une lettre de motivation -73,M1603,Envoyer un CV et une lettre de motivation -73,M1702,Envoyer un CV et une lettre de motivation -73,M1705,Envoyer un CV et une lettre de motivation -74,B1301,Envoyer un CV et une lettre de motivation -74,B1805,Envoyer un CV et une lettre de motivation -74,D1201,Envoyer un CV et une lettre de motivation -74,E1108,Envoyer un CV et une lettre de motivation -74,E1201,Envoyer un CV et une lettre de motivation -74,E1203,Envoyer un CV et une lettre de motivation -74,E1205,Envoyer un CV et une lettre de motivation -74,F1102,Envoyer un CV et une lettre de motivation -74,F1108,Envoyer un CV et une lettre de motivation -74,F1201,Envoyer un CV et une lettre de motivation -74,F1202,Envoyer un CV et une lettre de motivation -74,F1204,Envoyer un CV et une lettre de motivation -74,H1204,Envoyer un CV et une lettre de motivation -74,H1301,Envoyer un CV et une lettre de motivation -74,H2411,Envoyer un CV et une lettre de motivation -74,H2412,Envoyer un CV et une lettre de motivation -74,L1102,Envoyer un CV et une lettre de motivation -74,L1303,Envoyer un CV et une lettre de motivation -74,L1501,Envoyer un CV et une lettre de motivation -74,M1702,Envoyer un CV et une lettre de motivation -74,M1809,Envoyer un CV et une lettre de motivation -75,A1501,Se présenter spontanément -75,A1504,Se présenter spontanément -77,D1204,Se présenter spontanément -77,I1601,Se présenter spontanément -77,I1603,Se présenter spontanément -78,K1304,Envoyer un CV et une lettre de motivation -78,K1305,Envoyer un CV et une lettre de motivation -78,K1801,Envoyer un CV et une lettre de motivation -78,K2101,Envoyer un CV et une lettre de motivation -78,K2112,Envoyer un CV et une lettre de motivation -78,L1102,Envoyer un CV et une lettre de motivation -78,L1303,Envoyer un CV et une lettre de motivation -78,L1501,Envoyer un CV et une lettre de motivation -78,M1501,Envoyer un CV et une lettre de motivation -78,M1502,Envoyer un CV et une lettre de motivation -78,M1503,Envoyer un CV et une lettre de motivation -79,D1408,Envoyer un CV et une lettre de motivation -79,G1101,Envoyer un CV et une lettre de motivation -79,G1102,Envoyer un CV et une lettre de motivation -79,G1301,Envoyer un CV et une lettre de motivation -79,G1302,Envoyer un CV et une lettre de motivation -79,G1303,Envoyer un CV et une lettre de motivation -79,N4103,Envoyer un CV et une lettre de motivation -80,I1307,Envoyer un CV et une lettre de motivation -80,K2502,Envoyer un CV et une lettre de motivation -80,K2503,Se présenter spontanément -81,A1203,Se présenter spontanément -81,I1202,Se présenter spontanément -81,I1203,Se présenter spontanément -81,I1501,Se présenter spontanément -81,K1304,Se présenter spontanément -81,K2202,Se présenter spontanément -81,K2203,Envoyer un CV et une lettre de motivation -81,K2204,Se présenter spontanément -81,K2302,Envoyer un CV et une lettre de motivation -81,K2303,Se présenter spontanément -81,K2305,Se présenter spontanément -81,K2501,Se présenter spontanément -82,D1401,Envoyer un CV et une lettre de motivation -82,D1408,Envoyer un CV et une lettre de motivation -82,E1107,Envoyer un CV et une lettre de motivation -82,E1307,Envoyer un CV et une lettre de motivation -82,F1501,Envoyer un CV et une lettre de motivation -82,F1502,Envoyer un CV et une lettre de motivation -82,F1604,Envoyer un CV et une lettre de motivation -82,H3301,Envoyer un CV et une lettre de motivation -82,H3302,Envoyer un CV et une lettre de motivation -82,I1401,Envoyer un CV et une lettre de motivation -82,M1203,Envoyer un CV et une lettre de motivation -82,M1501,Envoyer un CV et une lettre de motivation -82,M1601,Envoyer un CV et une lettre de motivation -82,M1602,Envoyer un CV et une lettre de motivation -82,M1603,Envoyer un CV et une lettre de motivation -82,M1604,Envoyer un CV et une lettre de motivation -82,M1605,Envoyer un CV et une lettre de motivation -82,M1606,Envoyer un CV et une lettre de motivation -82,M1607,Envoyer un CV et une lettre de motivation -82,M1608,Envoyer un CV et une lettre de motivation -84,C1106,Envoyer un CV et une lettre de motivation -84,C1107,Envoyer un CV et une lettre de motivation -84,C1109,Envoyer un CV et une lettre de motivation -84,C1401,Envoyer un CV et une lettre de motivation -84,G1102,Envoyer un CV et une lettre de motivation -84,I1502,Envoyer un CV et une lettre de motivation -84,K1101,Envoyer un CV et une lettre de motivation -84,K1401Conception,Envoyer un CV et une lettre de motivation -84,K1402,Envoyer un CV et une lettre de motivation -84,K1403,Envoyer un CV et une lettre de motivation -84,K1404,Envoyer un CV et une lettre de motivation -84,K1405,Envoyer un CV et une lettre de motivation -84,K1501,Envoyer un CV et une lettre de motivation -84,K1502,Envoyer un CV et une lettre de motivation -84,K1503,Envoyer un CV et une lettre de motivation -84,K1504,Envoyer un CV et une lettre de motivation -84,K1505,Envoyer un CV et une lettre de motivation -84,K1601,Envoyer un CV et une lettre de motivation -84,K1602,Envoyer un CV et une lettre de motivation -84,K1701,Envoyer un CV et une lettre de motivation -84,K1702,Envoyer un CV et une lettre de motivation -84,K1703,Envoyer un CV et une lettre de motivation -84,K1704,Envoyer un CV et une lettre de motivation -84,K1705,Envoyer un CV et une lettre de motivation -84,K1706,Envoyer un CV et une lettre de motivation -84,K1707,Envoyer un CV et une lettre de motivation -84,K1801,Envoyer un CV et une lettre de motivation -84,K1802,Envoyer un CV et une lettre de motivation -84,K1901,Envoyer un CV et une lettre de motivation -84,K1902,Envoyer un CV et une lettre de motivation -84,K1904,Envoyer un CV et une lettre de motivation -84,M1609,Envoyer un CV et une lettre de motivation -84,M1807,Envoyer un CV et une lettre de motivation -84,M1808,Envoyer un CV et une lettre de motivation -84,M1809,Envoyer un CV et une lettre de motivation -84,N2202,Envoyer un CV et une lettre de motivation -85,D1208,Envoyer un CV et une lettre de motivation -85,J1502,Envoyer un CV et une lettre de motivation -85,K1203,Envoyer un CV et une lettre de motivation -85,K1303,Envoyer un CV et une lettre de motivation -85,K2101,Envoyer un CV et une lettre de motivation -85,K2102,Envoyer un CV et une lettre de motivation -85,K2103,Envoyer un CV et une lettre de motivation -85,K2104,Envoyer un CV et une lettre de motivation -85,K2105,Envoyer un CV et une lettre de motivation -85,K2106,Envoyer un CV et une lettre de motivation -85,K2107,Envoyer un CV et une lettre de motivation -85,K2108,Envoyer un CV et une lettre de motivation -85,K2109,Envoyer un CV et une lettre de motivation -85,K2110,Envoyer un CV et une lettre de motivation -85,K2111,Envoyer un CV et une lettre de motivation -85,K2112,Envoyer un CV et une lettre de motivation -85,K2401,Envoyer un CV et une lettre de motivation -85,K2402,Envoyer un CV et une lettre de motivation -85,K2501,Envoyer un CV et une lettre de motivation -85,L1201,Envoyer un CV et une lettre de motivation -85,L1202,Envoyer un CV et une lettre de motivation -85,L1203,Envoyer un CV et une lettre de motivation -85,L1204,Envoyer un CV et une lettre de motivation -85,L1301,Envoyer un CV et une lettre de motivation -86,D1203,Envoyer un CV et une lettre de motivation -86,D1208,Envoyer un CV et une lettre de motivation -86,I1308,Envoyer un CV et une lettre de motivation -86,J1101,Envoyer un CV et une lettre de motivation -86,J1102,Envoyer un CV et une lettre de motivation -86,J1103,Envoyer un CV et une lettre de motivation -86,J1104,Envoyer un CV et une lettre de motivation -86,J1201,Envoyer un CV et une lettre de motivation -86,J1202,Envoyer un CV et une lettre de motivation -86,J1301,Envoyer un CV et une lettre de motivation -86,J1302,Envoyer un CV et une lettre de motivation -86,J1303,Envoyer un CV et une lettre de motivation -86,J1304,Envoyer un CV et une lettre de motivation -86,J1305,Envoyer un CV et une lettre de motivation -86,J1306,Envoyer un CV et une lettre de motivation -86,J1307,Envoyer un CV et une lettre de motivation -86,J1401,Envoyer un CV et une lettre de motivation -86,J1402,Envoyer un CV et une lettre de motivation -86,J1403,Envoyer un CV et une lettre de motivation -86,J1404,Envoyer un CV et une lettre de motivation -86,J1406,Envoyer un CV et une lettre de motivation -86,J1407,Envoyer un CV et une lettre de motivation -86,J1408,Envoyer un CV et une lettre de motivation -86,J1409,Envoyer un CV et une lettre de motivation -86,J1410,Envoyer un CV et une lettre de motivation -86,J1411,Envoyer un CV et une lettre de motivation -86,J1412,Envoyer un CV et une lettre de motivation -86,J1501,Envoyer un CV et une lettre de motivation -86,J1502,Envoyer un CV et une lettre de motivation -86,J1503,Envoyer un CV et une lettre de motivation -86,J1504,Envoyer un CV et une lettre de motivation -86,J1505,Envoyer un CV et une lettre de motivation -86,J1506,Envoyer un CV et une lettre de motivation -86,J1507,Envoyer un CV et une lettre de motivation -86,K1101,Envoyer un CV et une lettre de motivation -86,K1102,Envoyer un CV et une lettre de motivation -86,K1104,Envoyer un CV et une lettre de motivation -86,K1202,Envoyer un CV et une lettre de motivation -86,K1203,Envoyer un CV et une lettre de motivation -86,K1301,Envoyer un CV et une lettre de motivation -86,K1403,Envoyer un CV et une lettre de motivation -86,K2201,Envoyer un CV et une lettre de motivation -86,K2502,Envoyer un CV et une lettre de motivation -86,K2503,Envoyer un CV et une lettre de motivation -86,M1609,Envoyer un CV et une lettre de motivation -86,N1303,Envoyer un CV et une lettre de motivation -86,N4104,Envoyer un CV et une lettre de motivation -86,N4202,Envoyer un CV et une lettre de motivation -86,N4204,Envoyer un CV et une lettre de motivation -87,G1202,Envoyer un CV et une lettre de motivation -87,G1203,Envoyer un CV et une lettre de motivation -87,G1204,Envoyer un CV et une lettre de motivation -87,J1301,Envoyer un CV et une lettre de motivation -87,J1403,Envoyer un CV et une lettre de motivation -87,J1404,Envoyer un CV et une lettre de motivation -87,J1406,Envoyer un CV et une lettre de motivation -87,J1412,Envoyer un CV et une lettre de motivation -87,J1501,Envoyer un CV et une lettre de motivation -87,J1506,Envoyer un CV et une lettre de motivation -87,K1104,Envoyer un CV et une lettre de motivation -87,K1201,Envoyer un CV et une lettre de motivation -87,K1202,Envoyer un CV et une lettre de motivation -87,K1203,Envoyer un CV et une lettre de motivation -87,K1206,Envoyer un CV et une lettre de motivation -87,K1207,Envoyer un CV et une lettre de motivation -87,K1301,Envoyer un CV et une lettre de motivation -87,K1302,Envoyer un CV et une lettre de motivation -87,K1303,Envoyer un CV et une lettre de motivation -87,K1305,Envoyer un CV et une lettre de motivation -87,K1403,Envoyer un CV et une lettre de motivation -87,M1609,Envoyer un CV et une lettre de motivation -88,G1202,Envoyer un CV et une lettre de motivation -88,G1203,Envoyer un CV et une lettre de motivation -88,G1204,Envoyer un CV et une lettre de motivation -88,K1101,Envoyer un CV et une lettre de motivation -88,K1102,Envoyer un CV et une lettre de motivation -88,K1104,Envoyer un CV et une lettre de motivation -88,K1201,Envoyer un CV et une lettre de motivation -88,K1202,Envoyer un CV et une lettre de motivation -88,K1203,Envoyer un CV et une lettre de motivation -88,K1204,Envoyer un CV et une lettre de motivation -88,K1205,Envoyer un CV et une lettre de motivation -88,K1206,Envoyer un CV et une lettre de motivation -88,K1207,Envoyer un CV et une lettre de motivation -88,K1301,Envoyer un CV et une lettre de motivation -88,K1302,Envoyer un CV et une lettre de motivation -88,K1303,Envoyer un CV et une lettre de motivation -88,K1305,Envoyer un CV et une lettre de motivation -90,A1501,Envoyer un CV et une lettre de motivation -90,B1101,Envoyer un CV et une lettre de motivation -90,B1303,Envoyer un CV et une lettre de motivation -90,B1601,Envoyer un CV et une lettre de motivation -90,B1801,Envoyer un CV et une lettre de motivation -90,B1804,Envoyer un CV et une lettre de motivation -90,B1806,Envoyer un CV et une lettre de motivation -90,D1505,Envoyer un CV et une lettre de motivation -90,E1102,Envoyer un CV et une lettre de motivation -90,F1601,Envoyer un CV et une lettre de motivation -90,F1602,Envoyer un CV et une lettre de motivation -90,G1205,Envoyer un CV et une lettre de motivation -90,L1101,Envoyer un CV et une lettre de motivation -90,L1102,Envoyer un CV et une lettre de motivation -90,L1103,Envoyer un CV et une lettre de motivation -90,L1201,Envoyer un CV et une lettre de motivation -90,L1202,Envoyer un CV et une lettre de motivation -90,L1203,Envoyer un CV et une lettre de motivation -90,L1204,Envoyer un CV et une lettre de motivation -90,L1301,Envoyer un CV et une lettre de motivation -90,L1302,Envoyer un CV et une lettre de motivation -90,L1303,Envoyer un CV et une lettre de motivation -90,L1501,Envoyer un CV et une lettre de motivation -90,L1502,Envoyer un CV et une lettre de motivation -90,L1503,Envoyer un CV et une lettre de motivation -90,L1504,Envoyer un CV et une lettre de motivation -90,L1505,Envoyer un CV et une lettre de motivation -90,L1506,Envoyer un CV et une lettre de motivation -90,L1507,Envoyer un CV et une lettre de motivation -90,L1508,Envoyer un CV et une lettre de motivation -90,L1509,Envoyer un CV et une lettre de motivation -91,A1204,Envoyer un CV et une lettre de motivation -91,A1408,Envoyer un CV et une lettre de motivation -91,A1501,Envoyer un CV et une lettre de motivation -91,A1504,Envoyer un CV et une lettre de motivation -91,B1101,Envoyer un CV et une lettre de motivation -91,B1301,Envoyer un CV et une lettre de motivation -91,B1402,Envoyer un CV et une lettre de motivation -91,B1701,Envoyer un CV et une lettre de motivation -91,B1804,Envoyer un CV et une lettre de motivation -91,F1601,Envoyer un CV et une lettre de motivation -91,F1602,Envoyer un CV et une lettre de motivation -91,G1201,Envoyer un CV et une lettre de motivation -91,G1202,Envoyer un CV et une lettre de motivation -91,G1205,Envoyer un CV et une lettre de motivation -91,I1501,Envoyer un CV et une lettre de motivation -91,K1601,Envoyer un CV et une lettre de motivation -91,K1602,Envoyer un CV et une lettre de motivation -91,K2401,Envoyer un CV et une lettre de motivation -91,K2402,Envoyer un CV et une lettre de motivation -91,K2501,Envoyer un CV et une lettre de motivation -91,K2502,Envoyer un CV et une lettre de motivation -91,K2503,Envoyer un CV et une lettre de motivation -92,G1206,Envoyer un CV et une lettre de motivation -92,G1403,Envoyer un CV et une lettre de motivation -92,G1702,Envoyer un CV et une lettre de motivation -92,G1801,Envoyer un CV et une lettre de motivation -92,K2502,Envoyer un CV et une lettre de motivation -92,K2503,Envoyer un CV et une lettre de motivation -93,A1502,Envoyer un CV et une lettre de motivation -93,D1505,Envoyer un CV et une lettre de motivation -93,G1201,Envoyer un CV et une lettre de motivation -93,G1203,Envoyer un CV et une lettre de motivation -93,G1204,Envoyer un CV et une lettre de motivation -93,G1205,Envoyer un CV et une lettre de motivation -93,G1403,Envoyer un CV et une lettre de motivation -93,G1702,Envoyer un CV et une lettre de motivation -93,I1604,Envoyer un CV et une lettre de motivation -93,I1606,Envoyer un CV et une lettre de motivation -93,I1607,Envoyer un CV et une lettre de motivation -93,J1404,Envoyer un CV et une lettre de motivation -93,J1408,Envoyer un CV et une lettre de motivation -93,K1103,Envoyer un CV et une lettre de motivation -93,K2501,Envoyer un CV et une lettre de motivation -93,K2502,Envoyer un CV et une lettre de motivation -93,K2503,Envoyer un CV et une lettre de motivation -93,L1101,Envoyer un CV et une lettre de motivation -93,L1103,Envoyer un CV et une lettre de motivation -93,L1201,Envoyer un CV et une lettre de motivation -93,L1202,Envoyer un CV et une lettre de motivation -93,L1203,Envoyer un CV et une lettre de motivation -93,L1204,Envoyer un CV et une lettre de motivation -93,L1301,Envoyer un CV et une lettre de motivation -93,L1302,Envoyer un CV et une lettre de motivation -93,L1303,Envoyer un CV et une lettre de motivation -93,L1401,Envoyer un CV et une lettre de motivation -93,L1501,Envoyer un CV et une lettre de motivation -93,L1502,Envoyer un CV et une lettre de motivation -93,L1503,Envoyer un CV et une lettre de motivation -93,L1504,Envoyer un CV et une lettre de motivation -93,L1505,Envoyer un CV et une lettre de motivation -93,L1506,Envoyer un CV et une lettre de motivation -93,L1508,Envoyer un CV et une lettre de motivation -93,L1509,Envoyer un CV et une lettre de motivation -94,A1204,Envoyer un CV et une lettre de motivation -94,A1501,Envoyer un CV et une lettre de motivation -94,A1504,Envoyer un CV et une lettre de motivation -94,E1103,Envoyer un CV et une lettre de motivation -94,G1102,Envoyer un CV et une lettre de motivation -94,G1201,Envoyer un CV et une lettre de motivation -94,G1202,Envoyer un CV et une lettre de motivation -94,G1203,Envoyer un CV et une lettre de motivation -94,G1204,Envoyer un CV et une lettre de motivation -94,K1103,Envoyer un CV et une lettre de motivation -94,K1201,Envoyer un CV et une lettre de motivation -94,K1204,Envoyer un CV et une lettre de motivation -94,K1205,Envoyer un CV et une lettre de motivation -94,K1206,Envoyer un CV et une lettre de motivation -94,K1207,Envoyer un CV et une lettre de motivation -94,K1801,Envoyer un CV et une lettre de motivation -94,K1802,Envoyer un CV et une lettre de motivation -94,K1903,Envoyer un CV et une lettre de motivation -94,K2304,Envoyer un CV et une lettre de motivation -94,M1403,Envoyer un CV et une lettre de motivation -95,B1402,Se présenter spontanément -95,B1501,Se présenter spontanément -95,B1603,Se présenter spontanément -95,B1604,Se présenter spontanément -95,B1806,Se présenter spontanément -95,D1206,Se présenter spontanément -95,D1207,Se présenter spontanément -95,D1212,Se présenter spontanément -95,I1303,Se présenter spontanément -95,I1401,Se présenter spontanément -95,I1402,Se présenter spontanément -96,A1502,Envoyer un CV et une lettre de motivation -96,A1503,Envoyer un CV et une lettre de motivation -96,D1202,Envoyer un CV et une lettre de motivation -96,D1203,Envoyer un CV et une lettre de motivation -96,D1205,Envoyer un CV et une lettre de motivation -96,D1207,Envoyer un CV et une lettre de motivation -96,D1208,Envoyer un CV et une lettre de motivation -96,F1612,Envoyer un CV et une lettre de motivation -96,H2505,Envoyer un CV et une lettre de motivation -96,K1103,Envoyer un CV et une lettre de motivation -96,K2201,Envoyer un CV et une lettre de motivation -96,K2601,Envoyer un CV et une lettre de motivation -96,K2602,Envoyer un CV et une lettre de motivation -96,K2603,Envoyer un CV et une lettre de motivation -97,A1203,Envoyer un CV et une lettre de motivation -97,A1403,Envoyer un CV et une lettre de motivation -97,G1501,Envoyer un CV et une lettre de motivation -97,G1602,Envoyer un CV et une lettre de motivation -97,G1702,Envoyer un CV et une lettre de motivation -97,G1802,Envoyer un CV et une lettre de motivation -97,G1803,Envoyer un CV et une lettre de motivation -97,K1302,Envoyer un CV et une lettre de motivation -97,K1303,Envoyer un CV et une lettre de motivation -97,K1304,Envoyer un CV et une lettre de motivation -97,K2107,Envoyer un CV et une lettre de motivation -97,K2501,Envoyer un CV et une lettre de motivation -97,K2503,Envoyer un CV et une lettre de motivation -97,M1607,Envoyer un CV et une lettre de motivation -97,N4102,Envoyer un CV et une lettre de motivation diff --git a/labonneboite/common/load_data.py b/labonneboite/common/load_data.py index f8fbb0b46..5daf7cb05 100644 --- a/labonneboite/common/load_data.py +++ b/labonneboite/common/load_data.py @@ -89,15 +89,6 @@ def load_city_codes(): return commune_id_to_commune_name -@lru_cache(maxsize=None) -def load_contact_modes(): - # use comma delimiter instead of pipe so that it is recognized by github - # and can easily be edited online by the intrapreneurs - rows = load_csv_file("contact_modes.csv", delimiter=',') - naf_prefix_to_rome_to_contact_mode = load_rows_as_dict_of_dict(rows) - return naf_prefix_to_rome_to_contact_mode - - @lru_cache(maxsize=None) def load_ogr_labels(): rows = load_csv_file("ogr_labels.csv") diff --git a/labonneboite/common/models/office.py b/labonneboite/common/models/office.py index 880bc4357..054526ceb 100644 --- a/labonneboite/common/models/office.py +++ b/labonneboite/common/models/office.py @@ -4,22 +4,22 @@ import logging from urllib.parse import urlencode +from functools import lru_cache from babel.dates import format_date from slugify import slugify from flask import url_for from sqlalchemy import Column, Integer, String, Float, Boolean from sqlalchemy.dialects import mysql from sqlalchemy import PrimaryKeyConstraint, Index -from sqlalchemy.dialects import mysql - -from functools import lru_cache from labonneboite.common import encoding as encoding_util from labonneboite.common import scoring as scoring_util from labonneboite.common import hiring_type_util +from labonneboite.common.contact_mode import (CONTACT_MODE_MAIL, CONTACT_MODE_EMAIL, + CONTACT_MODE_OFFICE, CONTACT_MODE_WEBSITE, CONTACT_MODE_PHONE, + CONTACT_MODE_LABELS, CONTACT_MODE_STEPS, CONTACT_MODE_KEYWORDS) from labonneboite.common.database import Base, db_session, DATABASE from labonneboite.common.load_data import load_city_codes -from labonneboite.common import util from labonneboite.common.models.base import CRUDMixin from labonneboite.conf import settings from labonneboite.importer import settings as importer_settings @@ -186,7 +186,8 @@ def as_json(self, 'siret': self.siret, 'stars': self.get_stars_for_rome_code(rome_code, hiring_type), 'url': self.get_url_for_rome_code(rome_code, alternance, **extra_query_string), - 'contact_mode': util.get_contact_mode_for_rome_and_office(rome_code, self), + 'contact_mode': self.recommended_contact_mode_label, + 'contact_mode_code': self.recommended_contact_mode, 'social_network': self.social_network or '', 'alternance': self.qualifies_for_alternance(), } @@ -235,6 +236,7 @@ def address_as_text(self): @property def phone(self): + # FIXME ''.isspace() == False o_O has_phone = self.tel and not self.tel.isspace() if has_phone: # not sure why, the import botched the phone number... @@ -254,6 +256,50 @@ def name(self): result = 'sans nom' return encoding_util.sanitize_string(result) + @property + # pylint: disable=R0911 + def recommended_contact_mode(self): + # Attempt 1 - guess smartly from human input self.contact_mode + # pylint: disable=R0101 + if self.contact_mode and self.contact_mode.strip(): + for contact_mode, keywords in CONTACT_MODE_KEYWORDS.items(): + for keyword in keywords: + if keyword in self.contact_mode: + if contact_mode == CONTACT_MODE_EMAIL: + if self.email and self.email.strip(): + return contact_mode + elif contact_mode == CONTACT_MODE_PHONE: + if self.tel and self.tel.strip(): + return contact_mode + elif contact_mode == CONTACT_MODE_WEBSITE: + if self.website and self.website.strip(): + return contact_mode + else: + return contact_mode + + # Attempt 2 - set contact_mode based on available data. + # Email has precedence over phone, which has precedence over website. + if self.email and self.email.strip(): + return CONTACT_MODE_EMAIL + elif self.tel and self.tel.strip(): + return CONTACT_MODE_PHONE + elif self.website and self.website.strip(): + return CONTACT_MODE_WEBSITE + else: + return None + + @property + def recommended_contact_mode_label(self): + try: + return CONTACT_MODE_LABELS[self.recommended_contact_mode] + except KeyError: + return '' + + @property + def recommended_contact_steps(self): + contact_mode = self.recommended_contact_mode + return CONTACT_MODE_STEPS.get(contact_mode, [self.recommended_contact_mode_label]) + @property def google_url(self): google_search = "%s+%s" % (self.name.replace(' ', '+'), self.city.replace(' ', '+')) diff --git a/labonneboite/common/pdf.py b/labonneboite/common/pdf.py index 9f067c200..b0ebe1206 100644 --- a/labonneboite/common/pdf.py +++ b/labonneboite/common/pdf.py @@ -65,10 +65,7 @@ def render_favorites(offices): Return: a file-like object. """ - companies = [ - (company, util.get_contact_mode_for_rome_and_office(None, company)) for company in offices - ] pdf_data = render_template( - 'office/pdf_list.html', companies=companies, + 'office/pdf_list.html', offices=offices, ) return convert_to_pdf(pdf_data) diff --git a/labonneboite/common/search.py b/labonneboite/common/search.py index 8907a66b1..a78a5cf44 100644 --- a/labonneboite/common/search.py +++ b/labonneboite/common/search.py @@ -758,9 +758,6 @@ def get_offices_from_es_and_db(json_body, sort, rome_codes, hiring_type): rome_with_highest_score = max(scores_of_searched_romes, key=scores_of_searched_romes.get) # Store it as an extra attribute. office.matched_rome = rome_with_highest_score - rome_code_for_contact_mode = rome_with_highest_score - else: - rome_code_for_contact_mode = rome_codes[0] # Set boost flag office.boost = False @@ -770,9 +767,6 @@ def get_offices_from_es_and_db(json_body, sort, rome_codes, hiring_type): romes_intersection = set(rome_codes).intersection(boost_romes) office.boost = bool(romes_intersection) - # Set contact mode and position - office.contact_mode = util.get_contact_mode_for_rome_and_office(rome_code_for_contact_mode, office) - try: aggregations = res['aggregations'] except KeyError: diff --git a/labonneboite/common/util.py b/labonneboite/common/util.py index 62f4d7be0..73fb95289 100644 --- a/labonneboite/common/util.py +++ b/labonneboite/common/util.py @@ -9,8 +9,6 @@ from flask import request -from labonneboite.common.contact_mode import CONTACT_MODE_DEFAULT -from labonneboite.common.load_data import load_contact_modes from labonneboite.conf import settings logger = logging.getLogger('main') @@ -113,22 +111,6 @@ def is_safe_url(url, allowed_hosts=None): return (not scheme or scheme in valid_schemes) -def get_contact_mode_for_rome_and_office(rome, office): - if office.contact_mode: - return office.contact_mode - - naf_prefix = office.naf[:2] - naf_prefix_to_rome_to_contact_mode = load_contact_modes() - try: - return naf_prefix_to_rome_to_contact_mode[naf_prefix][rome] - except KeyError: - pass - try: - return list(naf_prefix_to_rome_to_contact_mode[naf_prefix].values())[0] - except (KeyError, IndexError): - return CONTACT_MODE_DEFAULT - - def unique_elements(iterable, key=None): """ Filter elements from an iterable so that only unique items are preserved. diff --git a/labonneboite/importer/jobs/extract_etablissements.py b/labonneboite/importer/jobs/extract_etablissements.py index a016c6220..29e6f4c96 100644 --- a/labonneboite/importer/jobs/extract_etablissements.py +++ b/labonneboite/importer/jobs/extract_etablissements.py @@ -17,7 +17,7 @@ def has_text_content(s): - return s is not None and len(s) > 0 and not s.isspace() + return s and s.strip() def merge_and_normalize_websites(websites): diff --git a/labonneboite/tests/app/test_contact_mode.py b/labonneboite/tests/app/test_contact_mode.py index 57f970bfd..82fa7752b 100644 --- a/labonneboite/tests/app/test_contact_mode.py +++ b/labonneboite/tests/app/test_contact_mode.py @@ -1,8 +1,8 @@ # coding: utf8 import unittest -from labonneboite.common import util -from labonneboite.common.load_data import load_contact_modes +from labonneboite.common.contact_mode import (CONTACT_MODE_MAIL, CONTACT_MODE_EMAIL, + CONTACT_MODE_OFFICE, CONTACT_MODE_WEBSITE, CONTACT_MODE_PHONE) from labonneboite.common.models import Office class ContactModeTest(unittest.TestCase): @@ -11,47 +11,75 @@ def test_contact_mode(self): """ Ensure contact_mode works in all edge cases. """ - contact_mode_dict = load_contact_modes() - - # Case 1 : naf and rome are in contact_mode mapping - office1 = Office() - rome = 'H2504' - office1.naf = '1712Z' - naf_prefix = office1.naf[:2] - - self.assertIn(naf_prefix, contact_mode_dict) - self.assertIn(rome, contact_mode_dict[naf_prefix]) - contact_mode = util.get_contact_mode_for_rome_and_office(rome, office1) - self.assertEqual(contact_mode, 'Se présenter spontanément') - - # Case 2 : naf is in contact_mode mapping but rome is not - office2 = Office() - rome = 'D1408' - office2.naf = '1712Z' - naf_prefix = office2.naf[:2] - - self.assertIn(naf_prefix, contact_mode_dict) - self.assertNotIn(rome, contact_mode_dict[naf_prefix]) - contact_mode = util.get_contact_mode_for_rome_and_office(rome, office2) - self.assertEqual(contact_mode, 'Se présenter spontanément') - - # Case 3 : naf is not in contact_mode mapping - office3 = Office() - rome = 'D1408' - office3.naf = '9900Z' - naf_prefix = office3.naf[:2] - - self.assertNotIn(naf_prefix, contact_mode_dict) - contact_mode = util.get_contact_mode_for_rome_and_office(rome, office3) - self.assertEqual(contact_mode, 'Envoyer un CV et une lettre de motivation') - - # Case 4 : custom contact_mode - custom_contact_mode = 'Send a Fax' - - office4 = Office() - rome = 'D1408' - office4.naf = '1712Z' - office4.contact_mode = custom_contact_mode - - contact_mode = util.get_contact_mode_for_rome_and_office(rome, office4) - self.assertEqual(contact_mode, custom_contact_mode) + # office has no data at all + office = Office() + self.assertEqual(office.recommended_contact_mode, None) + self.assertEqual(office.recommended_contact_mode_label, '') + + # office has a contact_mode suggesting email but has no data + office = Office() + office.contact_mode = 'Contactez nous par mail' + office.email = '' + self.assertEqual(office.recommended_contact_mode, None) + + # office has a contact_mode suggesting email and has data + office = Office() + office.contact_mode = 'Contactez nous par mail' + office.email = 'pouac@plonk.fr' + self.assertEqual(office.recommended_contact_mode, CONTACT_MODE_EMAIL) + + # office has a contact_mode suggesting phone but has no data + office = Office() + office.contact_mode = 'Contactez nous par téléphone' + office.tel = '' + self.assertEqual(office.recommended_contact_mode, None) + + # office has a contact_mode suggesting phone and has data + office = Office() + office.contact_mode = 'Contactez nous par téléphone' + office.tel = '0199009900' + self.assertEqual(office.recommended_contact_mode, CONTACT_MODE_PHONE) + + # office has a contact_mode suggesting website but has no data + office = Office() + office.contact_mode = 'Déposez votre CV sur notre site internet' + office.website = '' + self.assertEqual(office.recommended_contact_mode, None) + + # office has a contact_mode suggesting website and has data + office = Office() + office.contact_mode = 'Déposez votre CV sur notre site internet' + office.website = 'http://www.pouac.fr' + self.assertEqual(office.recommended_contact_mode, CONTACT_MODE_WEBSITE) + + # office has a contact_mode suggesting postal mail + office = Office() + office.contact_mode = 'Envoyez votre CV par courrier' + self.assertEqual(office.recommended_contact_mode, CONTACT_MODE_MAIL) + + # office has a contact_mode suggesting showing up + office = Office() + office.contact_mode = 'Présentez vous directement à notre entreprise' + self.assertEqual(office.recommended_contact_mode, CONTACT_MODE_OFFICE) + + # in absence of contact_mode, email has precedence over phone + office = Office() + office.email = 'pouac@plonk.fr' + office.tel = '0199009900' + self.assertEqual(office.recommended_contact_mode, CONTACT_MODE_EMAIL) + + # in absence of contact_mode and email, phone has precedence over website + office = Office() + office.email = '' + office.tel = '0199009900' + office.website = 'http://www.pouac.fr' + self.assertEqual(office.recommended_contact_mode, CONTACT_MODE_PHONE) + + # only a website + office = Office() + office.email = '' + office.tel = '' + office.website = 'http://www.pouac.fr' + self.assertEqual(office.recommended_contact_mode, CONTACT_MODE_WEBSITE) + + diff --git a/labonneboite/tests/web/api/test_api.py b/labonneboite/tests/web/api/test_api.py index 38c25cdc0..fd951f68f 100644 --- a/labonneboite/tests/web/api/test_api.py +++ b/labonneboite/tests/web/api/test_api.py @@ -983,6 +983,7 @@ def test_contact_mode(self): self.assertEqual(len(data['companies']), 1) self.assertEqual(data['companies'][0]['siret'], '00000000000004') self.assertEqual(data['companies'][0]['contact_mode'], 'Envoyer un CV et une lettre de motivation') + self.assertEqual(data['companies'][0]['contact_mode_code'], 'email') def test_flag_alternance(self): diff --git a/labonneboite/web/admin/views/office_admin_update.py b/labonneboite/web/admin/views/office_admin_update.py index 6e2c7e5b0..ad898e82e 100644 --- a/labonneboite/web/admin/views/office_admin_update.py +++ b/labonneboite/web/admin/views/office_admin_update.py @@ -12,6 +12,8 @@ from labonneboite.common import mapping as mapping_util from labonneboite.common import models from labonneboite.common.siret import is_siret +from labonneboite.common.contact_mode import (CONTACT_MODE_MAIL, CONTACT_MODE_EMAIL, + CONTACT_MODE_OFFICE, CONTACT_MODE_WEBSITE, CONTACT_MODE_PHONE) from labonneboite.web.admin.forms import nospace_filter, phone_validator, strip_filter from labonneboite.web.admin.utils import datetime_format, AdminModelViewMixin from labonneboite.conf import settings @@ -22,14 +24,14 @@ UPDATE_STYLE = 'border: solid 5px green' DESCRIPTION_TEMPLATE = 'Ancienne valeur : {}
{}' -CONTACT_MODES_ITEMS = ( - ('email', 'Envoyez votre candidature par mail'), - ('mail', 'Envoyez votre candidature par courrier'), - ('office', 'Présentez vous directement à l\'entreprise'), - ('website', 'Postulez via le site internet de l\'entreprise'), - ('phone', 'Contactez l\'entreprise par téléphone'), -) -CONTACT_MODES = dict(CONTACT_MODES_ITEMS) +# FIXME +CONTACT_MODES = { + 'CONTACT_MODE_EMAIL': 'Envoyez votre candidature par email', + 'CONTACT_MODE_MAIL': 'Envoyez votre candidature par courrier', + 'CONTACT_MODE_OFFICE': 'Présentez vous directement à l\'entreprise', + 'CONTACT_MODE_WEBSITE': 'Postulez via le site internet de l\'entreprise', + 'CONTACT_MODE_PHONE': 'Contactez l\'entreprise par téléphone', +} HIDE_CHECKBOXES = { 'new_email': 'remove_email', diff --git a/labonneboite/web/contact_form/forms.py b/labonneboite/web/contact_form/forms.py index 677d4aee4..a00c43286 100644 --- a/labonneboite/web/contact_form/forms.py +++ b/labonneboite/web/contact_form/forms.py @@ -5,18 +5,20 @@ from wtforms import BooleanField, StringField, TextAreaField, HiddenField, RadioField from wtforms import validators from wtforms.fields.html5 import EmailField, TelField -from wtforms.validators import DataRequired, Email, Optional, Regexp, URL, Length +from wtforms.validators import DataRequired, Email, Optional, Regexp, URL from labonneboite.common.load_data import ROME_CODES - -CONTACT_MODES = ( - ('mail', 'Par courrier'), - ('email', 'Par email'), - ('phone', 'Par téléphone'), - ('office', 'Sur place'), - ('website', 'Via votre site internet'), +from labonneboite.common.contact_mode import (CONTACT_MODE_MAIL, CONTACT_MODE_EMAIL, + CONTACT_MODE_OFFICE, CONTACT_MODE_WEBSITE, CONTACT_MODE_PHONE) + +CONTACT_MODES_SORTED_LABELS = ( + (CONTACT_MODE_MAIL, 'Par courrier'), + (CONTACT_MODE_EMAIL, 'Par email'), + (CONTACT_MODE_PHONE, 'Par téléphone'), + (CONTACT_MODE_OFFICE, 'Sur place'), + (CONTACT_MODE_WEBSITE, 'Via votre site internet'), ) -CONTACT_MODES_LABELS = dict(CONTACT_MODES) +CONTACT_MODES_LABELS = dict(CONTACT_MODES_SORTED_LABELS) PHONE_REGEX = "^(0|\+33)[1-9]([-. ]?[0-9]{2}){4}$" @@ -74,7 +76,7 @@ class OfficeUpdateJobsForm(OfficeHiddenIdentificationForm): class OfficeUpdateCoordinatesForm(OfficeHiddenIdentificationForm): # Note : we add new_ to avoid conflict with request.args - new_contact_mode = RadioField('Mode de contact à privilégier', choices=CONTACT_MODES, default='email') + new_contact_mode = RadioField('Mode de contact à privilégier', choices=CONTACT_MODES_SORTED_LABELS, default='email') new_website = StringField( 'Site Internet', validators=[URL(), Optional()], render_kw={"placeholder": "http://exemple.com"} diff --git a/labonneboite/web/office/views.py b/labonneboite/web/office/views.py index bb42bad12..51892771f 100644 --- a/labonneboite/web/office/views.py +++ b/labonneboite/web/office/views.py @@ -13,8 +13,6 @@ from labonneboite.common import activity from labonneboite.common import pdf as pdf_util -from labonneboite.common import util -from labonneboite.common.contact_mode import CONTACT_MODE_STAGES from labonneboite.web.utils import fix_csrf_session from labonneboite.common.models import Office @@ -89,12 +87,7 @@ def office_detail_html(office): """ Return the html corresponding to the office details. """ - contact_mode = util.get_contact_mode_for_rome_and_office(None, office) - return render_template('office/pdf_detail.html', **{ - 'company': office, - 'contact_mode': contact_mode, - 'stages': CONTACT_MODE_STAGES.get(contact_mode, [contact_mode]), - }) + return render_template('office/pdf_detail.html', **{'office': office,}) @officeBlueprint.route('/events/toggle-details/', methods=['POST']) diff --git a/labonneboite/web/templates/includes/office/info_table.html b/labonneboite/web/templates/includes/office/info_table.html index 4e02941a0..f18ecf8c7 100644 --- a/labonneboite/web/templates/includes/office/info_table.html +++ b/labonneboite/web/templates/includes/office/info_table.html @@ -1,21 +1,21 @@ -
{{ company.name }} en un clin d'oeil
+
{{ office.name }} en un clin d'oeil
- Secteur d'activités {{ company.naf_text }}
- Nombre de salariés {{ company.headcount_text }}
+ Secteur d'activités {{ office.naf_text }}
+ Nombre de salariés {{ office.headcount_text }}
- {% if company.email %}{{ company.email }}
{% endif %} - {% if company.website %}{{ company.website }}
{% endif %} - {% if company.phone %}Téléphone : {{ company.phone }}
{% endif %} + {% if office.email %}{{ office.email }}
{% endif %} + {% if office.website %}{{ office.website }}
{% endif %} + {% if office.phone %}Téléphone : {{ office.phone }}
{% endif %} Adresse - {% for field in company.address_fields %} + {% for field in office.address_fields %} {{ field }}
{% endfor %}
-
Mode de contact à privilégier : {{ contact_mode }}
+
Mode de contact à privilégier : {{ office.recommended_contact_mode_label }}
diff --git a/labonneboite/web/templates/office/pdf_detail.html b/labonneboite/web/templates/office/pdf_detail.html index 3e165de44..a917fcbbd 100644 --- a/labonneboite/web/templates/office/pdf_detail.html +++ b/labonneboite/web/templates/office/pdf_detail.html @@ -9,11 +9,11 @@ {% include "includes/office/pdf_header.html" %} -

L'entreprise {{ company.name }} est recommandée (*) par La Bonne Boite

+

L'entreprise {{ office.name }} est recommandée (*) par La Bonne Boite

{% include "includes/office/info_table.html" %} -

La voie du succès pour travailler chez {{ company.name }}

+

La voie du succès pour travailler chez {{ office.name }}

@@ -28,10 +28,10 @@

La voie du succès pour travailler chez {{ compan

- {% for stage in stages %} + {% for contact_step in office.recommended_contact_steps %} - + diff --git a/labonneboite/web/templates/office/pdf_list.html b/labonneboite/web/templates/office/pdf_list.html index b295bd614..b9d62c4a2 100644 --- a/labonneboite/web/templates/office/pdf_list.html +++ b/labonneboite/web/templates/office/pdf_list.html @@ -9,9 +9,9 @@ {% include "includes/office/pdf_header.html" %} - {% for company, contact_mode in companies %} - {% include "includes/office/info_table.html" %} -
+ {% for office in offices %} + {% include "includes/office/info_table.html" %} +
{% endfor %}
Bravo, vous avez déjà réussi la première étape !
{{ loop.index + 1 }}{{ stage }}{{ contact_step }} ................. .................