diff --git a/modules/popolemploi/backend.py b/modules/popolemploi/backend.py index 57349790..798f17b6 100644 --- a/modules/popolemploi/backend.py +++ b/modules/popolemploi/backend.py @@ -39,143 +39,142 @@ class PopolemploiBackend(BaseBackend, ICapJob): BROWSER = PopolemploiBrowser places_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ - '': u'Tout type de lieux', - 'FRANCE_01': u'France entière', - 'REGION_42': u'Alsace', - 'DEPARTEMENT_67': u'-- Rhin (Bas) (67)', - 'DEPARTEMENT_68': u'-- Rhin (Haut) (68)', - 'REGION_72': u'Aquitaine', - 'DEPARTEMENT_24': u'-- Dordogne (24)', - 'DEPARTEMENT_33': u'-- Gironde (33)', - 'DEPARTEMENT_40': u'-- Landes (40)', - 'DEPARTEMENT_47': u'-- Lot et Garonne (47)', - 'DEPARTEMENT_64': u'-- Pyrénées Atlantiques (64)', - 'REGION_83': u'Auvergne', - 'DEPARTEMENT_03': u'-- Allier (03)', - 'DEPARTEMENT_15': u'-- Cantal (15)', - 'DEPARTEMENT_43': u'-- Loire (Haute) (43)', - 'DEPARTEMENT_63': u'-- Puy de Dôme (63)', - 'REGION_26': u'Bourgogne', - 'DEPARTEMENT_21': u'-- Côte d\'Or (21)', - 'DEPARTEMENT_58': u'-- Nièvre (58)', - 'DEPARTEMENT_71': u'-- Saône et Loire (71)', - 'DEPARTEMENT_89': u'-- Yonne (89)', - 'REGION_53': u'Bretagne', - 'DEPARTEMENT_22': u'-- Côtes d\'Armor (22)', - 'DEPARTEMENT_29': u'-- Finistère (29)', - 'DEPARTEMENT_35': u'-- Ille et Vilaine (35)', - 'DEPARTEMENT_56': u'-- Morbihan (56)', - 'REGION_24': u'Centre', - 'DEPARTEMENT_18': u'-- Cher (18)', - 'DEPARTEMENT_28': u'-- Eure etLoir (28)', - 'DEPARTEMENT_36': u'-- Indre (36)', - 'DEPARTEMENT_37': u'-- Indre et Loire (37)', - 'DEPARTEMENT_41': u'-- Loir et Cher (41)', - 'DEPARTEMENT_45': u'-- Loiret (45)', - 'REGION_21': u'Champagne Ardenne', - 'DEPARTEMENT_08': u'-- Ardennes (08)', - 'DEPARTEMENT_10': u'-- Aube (10)', - 'DEPARTEMENT_51': u'-- Marne (51)', - 'DEPARTEMENT_52': u'-- Marne (Haute) (52)', - 'REGION_94': u'Corse', - 'DEPARTEMENT_2A': u'-- Corse du Sud (2A)', - 'DEPARTEMENT_2B': u'-- Haute Corse (2B)', - 'REGION_43': u'Franche Comté', - 'DEPARTEMENT_90': u'-- Belfort (Territoire de) (90)', - 'DEPARTEMENT_25': u'-- Doubs (25)', - 'DEPARTEMENT_39': u'-- Jura (39)', - 'DEPARTEMENT_70': u'-- Saône (Haute) (70)', - 'REGION_11': u'Ile de France', - 'DEPARTEMENT_91': u'-- Essonne (91)', - 'DEPARTEMENT_92': u'-- Hauts de Seine (92)', - 'DEPARTEMENT_75': u'-- Paris (Dept.) (75)', - 'DEPARTEMENT_93': u'-- Seine Saint Denis (93)', - 'DEPARTEMENT_77': u'-- Seine et Marne (77)', - 'DEPARTEMENT_95': u'-- Val d\'Oise (95)', - 'DEPARTEMENT_94': u'-- Val de Marne (94)', - 'DEPARTEMENT_78': u'-- Yvelines (78)', - 'REGION_91': u'Languedoc Roussillon', - 'DEPARTEMENT_11': u'-- Aude (11)', - 'DEPARTEMENT_30': u'-- Gard (30)', - 'DEPARTEMENT_34': u'-- Hérault (34)', - 'DEPARTEMENT_48': u'-- Lozère (48)', - 'DEPARTEMENT_66': u'-- Pyrénées Orientales (66)', - 'REGION_74': u'Limousin', - 'DEPARTEMENT_19': u'-- Corrèze (19)', - 'DEPARTEMENT_23': u'-- Creuse (23)', - 'DEPARTEMENT_87': u'-- Vienne (Haute) (87)', - 'REGION_41': u'Lorraine', - 'DEPARTEMENT_54': u'-- Meurthe et Moselle (54)', - 'DEPARTEMENT_55': u'-- Meuse (55)', - 'DEPARTEMENT_57': u'-- Moselle (57)', - 'DEPARTEMENT_88': u'-- Vosges (88)', - 'REGION_73': u'Midi Pyrénées', - 'DEPARTEMENT_09': u'-- Ariège (09)', - 'DEPARTEMENT_12': u'-- Aveyron (12)', - 'DEPARTEMENT_31': u'-- Garonne (Haute) (31)', - 'DEPARTEMENT_32': u'-- Gers (32)', - 'DEPARTEMENT_46': u'-- Lot (46)', - 'DEPARTEMENT_65': u'-- Pyrénées (Hautes) (65)', - 'DEPARTEMENT_81': u'-- Tarn (81)', - 'DEPARTEMENT_82': u'-- Tarn et Garonne (82)', - 'REGION_31': u'Nord Pas de Calais', - 'DEPARTEMENT_59': u'-- Nord (59)', - 'DEPARTEMENT_62': u'-- Pas de Calais (62)', - 'REGION_25': u'Normandie (Basse)', - 'DEPARTEMENT_14': u'-- Calvados (14)', - 'DEPARTEMENT_50': u'-- Manche (50)', - 'DEPARTEMENT_61': u'-- Orne (61)', - 'REGION_23': u'Normandie (Haute)', - 'DEPARTEMENT_27': u'-- Eure (27)', - 'DEPARTEMENT_76': u'-- Seine Maritime (76)', - 'REGION_52': u'Pays de la Loire', - 'DEPARTEMENT_44': u'-- Loire Atlantique (44)', - 'DEPARTEMENT_49': u'-- Maine et Loire (49)', - 'DEPARTEMENT_53': u'-- Mayenne (53)', - 'DEPARTEMENT_72': u'-- Sarthe (72)', - 'DEPARTEMENT_85': u'-- Vendée (85)', - 'REGION_22': u'Picardie', - 'DEPARTEMENT_02': u'-- Aisne (02)', - 'DEPARTEMENT_60': u'-- Oise (60)', - 'DEPARTEMENT_80': u'-- Somme (80)', - 'REGION_54': u'Poitou Charentes', - 'DEPARTEMENT_16': u'-- Charente (16)', - 'DEPARTEMENT_17': u'-- Charente Maritime (17)', - 'DEPARTEMENT_79': u'-- Sèvres (Deux) (79)', - 'DEPARTEMENT_86': u'-- Vienne (86)', - 'REGION_93': u'Provence Alpes Côte d\'Azur', - 'DEPARTEMENT_05': u'-- Alpes (Hautes) (05)', - 'DEPARTEMENT_06': u'-- Alpes Maritimes (06)', - 'DEPARTEMENT_04': u'-- Alpes de Haute Provence (04)', - 'DEPARTEMENT_13': u'-- Bouches du Rhône (13)', - 'DEPARTEMENT_83': u'-- Var (83)', - 'DEPARTEMENT_84': u'-- Vaucluse (84)', - 'REGION_82': u'Rhône Alpes', - 'DEPARTEMENT_01': u'-- Ain (01)', - 'DEPARTEMENT_07': u'-- Ardèche (07)', - 'DEPARTEMENT_26': u'-- Drôme (26)', - 'DEPARTEMENT_38': u'-- Isère (38)', - 'DEPARTEMENT_42': u'-- Loire (42)', - 'DEPARTEMENT_69': u'-- Rhône (69)', - 'DEPARTEMENT_73': u'-- Savoie (73)', - 'DEPARTEMENT_74': u'-- Savoie (Haute) (74)', - 'REGION_96': u'Région Antilles / Guyane', - 'DEPARTEMENT_971': u'-- Guadeloupe (971)', - 'DEPARTEMENT_973': u'-- Guyane (973)', - 'DEPARTEMENT_972': u'-- Martinique (972)', - 'DEPARTEMENT_977': u'-- Saint Barthélémy (977)', - 'DEPARTEMENT_978': u'-- Saint Martin (978)', - 'REGION_98': u'Région Atlantique Nord', - 'DEPARTEMENT_975': u'-- Saint Pierre et Miquelon (975)', - 'REGION_95': u'Région Pacifique', - 'DEPARTEMENT_989': u'-- Ile de Clipperton (989)', - 'DEPARTEMENT_988': u'-- Nouvelle Calédonie (988)', - 'DEPARTEMENT_987': u'-- Polynésie française (987)', - 'DEPARTEMENT_984': u'-- Terres australes/antarctiques (984)', - 'DEPARTEMENT_986': u'-- Wallis et Futuna (986)', - 'REGION_97': u'Région Réunion / Mayotte', - 'DEPARTEMENT_976': u'-- Mayotte (976)', - 'DEPARTEMENT_974': u'-- Réunion (974)', + '100|FRANCE|FRANCE': u'France entière', + '102|REGION|checkbox': u'Alsace', + '103|DEPARTEMENT|checkbox_66': u'-- Rhin (Bas) (67)', + '104|DEPARTEMENT|checkbox_67': u'-- Rhin (Haut) (68)', + '105|REGION|checkbox_0': u'Aquitaine', + '106|DEPARTEMENT|checkbox_21': u'-- Dordogne (24)', + '107|DEPARTEMENT|checkbox_32': u'-- Gironde (33)', + '108|DEPARTEMENT|checkbox_39': u'-- Landes (40)', + '109|DEPARTEMENT|checkbox_46': u'-- Lot et Garonne (47)', + '110|DEPARTEMENT|checkbox_63': u'-- Pyrénées Atlantiques (64)', + '111|REGION|checkbox_1': u'Auvergne', + '112|DEPARTEMENT|checkbox_1': u'-- Allier (03)', + '113|DEPARTEMENT|checkbox_13': u'-- Cantal (15)', + '114|DEPARTEMENT|checkbox_42': u'-- Loire (Haute) (43)', + '115|DEPARTEMENT|checkbox_62': u'-- Puy de Dôme (63)', + '116|REGION|checkbox_2': u'Bourgogne', + '117|DEPARTEMENT|checkbox_18': u'-- Côte d\'Or (21)', + '118|DEPARTEMENT|checkbox_57': u'-- Nièvre (58)', + '119|DEPARTEMENT|checkbox_70': u'-- Saône et Loire (71)', + '120|DEPARTEMENT|checkbox_88': u'-- Yonne (89)', + '121|REGION|checkbox_3': u'Bretagne', + '122|DEPARTEMENT|checkbox_19': u'-- Côtes d\'Armor (22)', + '123|DEPARTEMENT|checkbox_26': u'-- Finistère (29)', + '124|DEPARTEMENT|checkbox_34': u'-- Ille et Vilaine (35)', + '125|DEPARTEMENT|checkbox_54': u'-- Morbihan (56)', + '126|REGION|checkbox_4': u'Centre', + '127|DEPARTEMENT|checkbox_16': u'-- Cher (18)', + '128|DEPARTEMENT|checkbox_25': u'-- Eure et Loir (28)', + '129|DEPARTEMENT|checkbox_35': u'-- Indre (36)', + '130|DEPARTEMENT|checkbox_36': u'-- Indre et Loire (37)', + '131|DEPARTEMENT|checkbox_40': u'-- Loir et Cher (41)', + '132|DEPARTEMENT|checkbox_44': u'-- Loiret (45)', + '133|REGION|checkbox_5': u'Champagne Ardenne', + '134|DEPARTEMENT|checkbox_6': u'-- Ardennes (08)', + '135|DEPARTEMENT|checkbox_8': u'-- Aube (10)', + '136|DEPARTEMENT|checkbox_50': u'-- Marne (51)', + '137|DEPARTEMENT|checkbox_51': u'-- Marne (Haute) (52)', + '138|REGION|checkbox_6': u'Corse', + '139|DEPARTEMENT|checkbox_26': u'-- Corse du Sud (2A)', + '140|DEPARTEMENT|checkbox_27': u'-- Haute Corse (2B)', + '141|REGION|checkbox_7': u'Franche Comté', + '142|DEPARTEMENT|checkbox_89': u'-- Belfort (Territoire de) (90)', + '143|DEPARTEMENT|checkbox_22': u'-- Doubs (25)', + '144|DEPARTEMENT|checkbox_38': u'-- Jura (39)', + '145|DEPARTEMENT|checkbox_69': u'-- Saône (Haute) (70)', + '146|REGION|checkbox_8': u'Ile de France', + '147|DEPARTEMENT|checkbox_90': u'-- Essonne (91)', + '148|DEPARTEMENT|checkbox_91': u'-- Hauts de Seine (92)', + '149|DEPARTEMENT|checkbox_74': u'-- Paris (Dept.) (75)', + '150|DEPARTEMENT|checkbox_92': u'-- Seine Saint Denis (93)', + '151|DEPARTEMENT|checkbox_76': u'-- Seine et Marne (77)', + '152|DEPARTEMENT|checkbox_94': u'-- Val d\'Oise (95)', + '153|DEPARTEMENT|checkbox_93': u'-- Val de Marne (94)', + '154|DEPARTEMENT|checkbox_77': u'-- Yvelines (78)', + '155|REGION|checkbox_9': u'Languedoc Roussillon', + '156|DEPARTEMENT|checkbox_9': u'-- Aude (11)', + '157|DEPARTEMENT|checkbox_39': u'-- Gard (30)', + '158|DEPARTEMENT|checkbox_33': u'-- Hérault (34)', + '159|DEPARTEMENT|checkbox_47': u'-- Lozère (48)', + '161|DEPARTEMENT|checkbox_65': u'-- Pyrénées Orientales (66)', + '162|REGION|checkbox_10': u'Limousin', + '163|DEPARTEMENT|checkbox_17': u'-- Corrèze (19)', + '164|DEPARTEMENT|checkbox_20': u'-- Creuse (23)', + '165|DEPARTEMENT|checkbox_86': u'-- Vienne (Haute) (87)', + '166|REGION|checkbox_11': u'Lorraine', + '167|DEPARTEMENT|checkbox_53': u'-- Meurthe et Moselle (54)', + '168|DEPARTEMENT|checkbox_54': u'-- Meuse (55)', + '169|DEPARTEMENT|checkbox_56': u'-- Moselle (57)', + '170|DEPARTEMENT|checkbox_87': u'-- Vosges (88)', + '171|REGION|checkbox_12': u'Midi Pyrénées', + '172|DEPARTEMENT|checkbox_7': u'-- Ariège (09)', + '173|DEPARTEMENT|checkbox_10': u'-- Aveyron (12)', + '174|DEPARTEMENT|checkbox_30': u'-- Garonne (Haute) (31)', + '175|DEPARTEMENT|checkbox_31': u'-- Gers (32)', + '176|DEPARTEMENT|checkbox_45': u'-- Lot (46)', + '177|DEPARTEMENT|checkbox_64': u'-- Pyrénées (Hautes) (65)', + '178|DEPARTEMENT|checkbox_80': u'-- Tarn (81)', + '179|DEPARTEMENT|checkbox_81': u'-- Tarn et Garonne (82)', + '180|REGION|checkbox_13': u'Nord Pas de Calais', + '181|DEPARTEMENT|checkbox_58': u'-- Nord (59)', + '182|DEPARTEMENT|checkbox_61': u'-- Pas de Calais (62)', + '183|REGION|checkbox_14': u'Normandie (Basse)', + '184|DEPARTEMENT|checkbox_12': u'-- Calvados (14)', + '185|DEPARTEMENT|checkbox_49': u'-- Manche (50)', + '186|DEPARTEMENT|checkbox_60': u'-- Orne (61)', + '187|REGION|checkbox_15': u'Normandie (Haute)', + '188|DEPARTEMENT|checkbox_24': u'-- Eure (27)', + '189|DEPARTEMENT|checkbox_75': u'-- Seine Maritime (76)', + '190|REGION|checkbox_16': u'Pays de la Loire', + '191|DEPARTEMENT|checkbox_43': u'-- Loire Atlantique (44)', + '192|DEPARTEMENT|checkbox_48': u'-- Maine et Loire (49)', + '193|DEPARTEMENT|checkbox_52': u'-- Mayenne (53)', + '194|DEPARTEMENT|checkbox_71': u'-- Sarthe (72)', + '195|DEPARTEMENT|checkbox_84': u'-- Vendée (85)', + '196|REGION|checkbox_17': u'Picardie', + '197|DEPARTEMENT|checkbox_0': u'-- Aisne (02)', + '198|DEPARTEMENT|checkbox_59': u'-- Oise (60)', + '199|DEPARTEMENT|checkbox_79': u'-- Somme (80)', + '200|REGION|checkbox_18': u'Poitou Charentes', + '201|DEPARTEMENT|checkbox_14': u'-- Charente (16)', + '202|DEPARTEMENT|checkbox_15': u'-- Charente Maritime (17)', + '203|DEPARTEMENT|checkbox_78': u'-- Sèvres (Deux) (79)', + '204|DEPARTEMENT|checkbox_85': u'-- Vienne (86)', + '205|REGION|checkbox_19': u'Provence Alpes Côte d\'Azur', + '206|DEPARTEMENT|checkbox_3': u'-- Alpes (Hautes) (05)', + '207|DEPARTEMENT|checkbox_4': u'-- Alpes Maritimes (06)', + '208|DEPARTEMENT|checkbox_2': u'-- Alpes de Haute Provence (04)', + '209|DEPARTEMENT|checkbox_13': u'-- Bouches du Rhône (13)', + '210|DEPARTEMENT|checkbox_82': u'-- Var (83)', + '211|DEPARTEMENT|checkbox_83': u'-- Vaucluse (84)', + '212|REGION|checkbox_20': u'Rhône Alpes', + '213|DEPARTEMENT|checkbox': u'-- Ain (01)', + '214|DEPARTEMENT|checkbox_5': u'-- Ardèche (07)', + '215|DEPARTEMENT|checkbox_23': u'-- Drôme (26)', + '216|DEPARTEMENT|checkbox_37': u'-- Isère (38)', + '217|DEPARTEMENT|checkbox_41': u'-- Loire (42)', + '218|DEPARTEMENT|checkbox_68': u'-- Rhône (69)', + '219|DEPARTEMENT|checkbox_72': u'-- Savoie (73)', + '220|DEPARTEMENT|checkbox_73': u'-- Savoie (Haute) (74)', + '221|REGION|checkbox_21': u'Région Antilles / Guyane', + '222|DEPARTEMENT|checkbox_95': u'-- Guadeloupe (971)', + '223|DEPARTEMENT|checkbox_97': u'-- Guyane (973)', + '224|DEPARTEMENT|checkbox_96': u'-- Martinique (972)', + '225|DEPARTEMENT|checkbox_101': u'-- Saint Barthélémy (977)', + '226|DEPARTEMENT|checkbox_102': u'-- Saint Martin (978)', + '227|REGION|checkbox_22': u'Région Atlantique Nord', + '228|DEPARTEMENT|checkbox_99': u'-- Saint Pierre et Miquelon (975)', + '229|REGION|checkbox_23': u'Région Pacifique', + '230|DEPARTEMENT|checkbox_107': u'-- Ile de Clipperton (989)', + '231|DEPARTEMENT|checkbox_106': u'-- Nouvelle Calédonie (988)', + '232|DEPARTEMENT|checkbox_105': u'-- Polynésie française (987)', + '233|DEPARTEMENT|checkbox_103': u'-- Terres australes/antarctiques (984)', + '234|DEPARTEMENT|checkbox_104': u'-- Wallis et Futuna (986)', + '235|REGION|checkbox_24': u'Région Réunion / Mayotte', + '236|DEPARTEMENT|checkbox_100': u'-- Mayotte (976)', + '237|DEPARTEMENT|checkbox_98': u'-- Réunion (974)', }.iteritems())]) type_contrat_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ @@ -196,9 +195,140 @@ class PopolemploiBackend(BaseBackend, ICapJob): '6': u'Profession commerciale', }.iteritems())]) + salary_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ + ' ': u'Tout salaire annuel', + 'FOURCHETTE1': u'Moins de 15000', + 'FOURCHETTE2': u'Compris entre 15000 et 18000', + 'FOURCHETTE3': u'Compris entre 18000 et 21000', + 'FOURCHETTE4': u'Compris entre 21000 et 24000', + 'FOURCHETTE5': u'Compris entre 24000 et 36000', + 'FOURCHETTE6': u'Compris entre 36000 et 60000', + 'FOURCHETTE7': u'Supérieur à 60000', + }.iteritems())]) + + qualification_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ + ' ': u'Toute Qualification', + '1': u'Manoeuvre', + '2': u'Ouvrier spécialisé', + '3': u'Ouvrier qualifié (P1,P2)', + '4': u'Ouvrier qualifié (P3,P4,OHQ)', + '5': u'Employé non qualifié', + '6': u'Employé qualifié', + '7': u'Technicien', + '8': u'Agent de maîtrise', + '9': u'Cadre', + }.iteritems())]) + + limit_date_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ + '': u'Aucune limite', + 'UN_JOUR': u'Hier', + 'TROIS_JOUR': u'3 jours', + 'UNE_SEMAINE': u'1 semaine', + 'DEUX_SEMAINES': u'2 semaines', + 'UN_MOIS': u'1 mois', + 'TROIS_MOIS': u'3 mois', + }.iteritems())]) + + domain_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ + ' ': u'Tout secteur d\'activité', + '88': u'Action sociale sans hebergt', + '82': u'Activ.admin/soutien entreprise', + '66': u'Activ. auxiliaire finance/assu', + '90': u'Activ. crea/artistiq/spectacle', + '77': u'Activ. de loc. et loc.-bail', + '70': u'Activ. siege soc/conseil gest.', + '93': u'Activ. sportive/recreat/loisir', + '69': u'Activite juridique/comptable', + '94': u'Activite organisations assoc.', + '86': u'Activite pr la sante humaine', + '53': u'Activites de poste/courrier', + '64': u'Activite services financiers', + '68': u'Activites immobilieres', + '62': u'Activites informatiques', + '78': u'Activites liees a l\'emploi', + '75': u'Activites veterinaires', + '84': u'Administration publiq/defense', + '79': u'Agences voyage/activ. liees', + '71': u'Archi/ing/control/analyse tech', + '65': u'Assurance', + '32': u'Autre industrie manufacturiere', + '74': u'Autres activ.spe scientif/tech', + '08': u'Autres industries extractives', + '91': u'Biblio/ musée/ activ. culturel', + '36': u'Captage/traitement/distrib.eau', + '19': u'Cokefaction et raffinage', + '37': u'Collecte/traitement eaux usees', + '38': u'Collecte/traitnt/elimin dechet', + '45': u'Commerce/reparation auto/moto', + '47': u'Commerce detail sauf auto/moto', + '46': u'Commerce gros sauf auto/moto', + '41': u'Construction de batiments', + '01': u'Cult./prod. animale, chasse', + '39': u'Depollution/autre gest. dechet', + '58': u'Edition', + '80': u'Enquetes et securite', + '85': u'Enseignement', + '52': u'Entreposage/sce auxil. transp', + '06': u'Extraction d\'hydrocarbures', + '05': u'Extraction houille/ lignite', + '07': u'Extraction minerais metalliq.', + '26': u'Fab. prod. info/electro/optiq', + '22': u'Fabr. prod. caoutchouc/plastiq', + '30': u'Fabric. autre materiel transp.', + '23': u'Fabric.autre produit non metal', + '28': u'Fabric. autres machines/equip.', + '27': u'Fabric. d\'equip. electriques', + '31': u'Fabrication de meubles', + '12': u'Fabrication produit base tabac', + '25': u'Fabrication produits metalliq', + '42': u'Genie civil', + '55': u'Hebergement', + '87': u'Hebergt médico-social/ social', + '18': u'Imprimerie/reprod. enregistre.', + '00': u'Indetermine', + '29': u'Industrie automobile', + '20': u'Industrie chimique', + '14': u'Industrie de l\'habillement', + '11': u'Industrie des boissons', + '15': u'Industrie du cuir/la chaussure', + '17': u'Industrie du papier/du carton', + '21': u'Industrie pharmaceutique', + '10': u'Industries alimentaires', + '13': u'Industrie textile', + '24': u'Metallurgie', + '92': u'Orga. jeux hasard/argent', + '99': u'Organisations et organismes', + '03': u'Peche et aquaculture', + '35': u'Prod./distrib.elec/gaz/vap/air', + '59': u'Prod film cine/video/tv/musiq', + '98': u'Production menage bien propre', + '60': u'Programmation et diffusion', + '73': u'Publicite et etudes de marche', + '72': u'Rech.-dev. scientifique', + '33': u'Repar./instal. machines/equip.', + '95': u'Repar.pc/biens perso/domestiq', + '56': u'Restauration', + '97': u'Sce domestique pr particuliers', + '81': u'Services bat/amenagnt paysager', + '63': u'Services d\'information', + '96': u'Services personnels', + '09': u'Soutien industries extractives', + '02': u'Sylvicult./exploit. forestiere', + '61': u'Telecommunications', + '51': u'Transports aeriens', + '50': u'Transports par eau', + '49': u'Transports terrestres', + '16': u'Travail bois/fab. article bois', + '43': u'Travaux constr.specialises', + }.iteritems())]) + CONFIG = BackendConfig(Value('metier', label='Job name', masked=False, default=''), - Value('place', label=u'Place', choices=places_choices, default='FRANCE_01'), - Value('contrat', label=u'Contract', choices=type_contrat_choices, default='')) + Value('place', label=u'Place', choices=places_choices, default='100|FRANCE|FRANCE'), + Value('contrat', label=u'Contract', choices=type_contrat_choices, default=''), + Value('salary', label=u'Salary', choices=salary_choices, default=''), + Value('qualification', label=u'Qualification', choices=qualification_choices, default=''), + Value('limit_date', label=u'Date limite', choices=limit_date_choices, default=''), + Value('domain', label=u'Domain', choices=domain_choices, default='')) def search_job(self, pattern=None): with self.browser: @@ -207,7 +337,11 @@ class PopolemploiBackend(BaseBackend, ICapJob): def advanced_search_job(self): return self.browser.advanced_search_job(metier=self.config['metier'].get(), place=self.config['place'].get(), - contrat=self.config['contrat'].get()) + contrat=self.config['contrat'].get(), + salary=self.config['salary'].get(), + qualification=self.config['qualification'].get(), + limit_date=self.config['limit_date'].get(), + domain=self.config['domain'].get()) def get_job_advert(self, _id, advert=None): with self.browser: diff --git a/modules/popolemploi/browser.py b/modules/popolemploi/browser.py index 59909d2e..1a6f23d9 100644 --- a/modules/popolemploi/browser.py +++ b/modules/popolemploi/browser.py @@ -20,6 +20,7 @@ from weboob.tools.browser.decorators import id2url from weboob.tools.browser import BaseBrowser import urllib +import copy from .pages import SearchPage, AdvertPage from .job import PopolemploiJobAdvert @@ -44,19 +45,98 @@ class PopolemploiBrowser(BaseBrowser): assert self.is_on_page(SearchPage) return self.page.iter_job_adverts() - def advanced_search_job(self, metier=None, place=None, contrat=None): + def advanced_search_job(self, metier=None, place=None, contrat=None, salary=None, + qualification=None, limit_date=None, domain=None): + + self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/rechercheavanceeparparametres') + data = { - 't:formdata': 'H4sIAAAAAAAAAJVSwUocQRAtJ1HBPSQonoLIEo1BpPeiErJ42AQ8LYlkMRdPPW3N2trT3emu2Vkv3vIb+YIg5Bs85JZ/yAfkmlMO6d5hR0UY1oEZpqtfVb33qr7/gfnyDew7FGfowmuyzKHvDGRulcwk4luuFLoROq94jeIjrgWid3CUOWaR5YIJk+eFZsQtenKXTJ7lMWaNRk2e9aW+GBRpLqk3QvHeaMIx4caRMwK9n9x4L40+/vrj+qDVXksgOYFFUeEIVk7656FrR3E97HxMz1FQtw8tVJiH8h94jgTLdyADclIPu2MHz2OQxSCr8uD2GVtL8GKi8HNQ2Oefpgp7lcJyB7YbvMHwZ2QNCH7sGTdk3PJwqq3YCz44VDJlKffIemkIckGHEtXpxgCpsJvHN63fqz//JTAXREXRzqgo6gtcQTKO3ycEz6p2NcdHk+s9ltyD6dxcn+5mf7/9SoJ3E1ZlG9YbOCiJhY/ABYKn8TADPsKXypfQbsD5MHhB08oL1XGmnKr6Fmw2IOsrF0w7nHXD35mCjK52vGmv5+7v7b0RL922Ll/DqwaOljtCzcN8/dSG1p3Y7NkTQ/4DH0zoXggEAAA=', - 'emploiRecherche': metier, - 'lieu': place, - 'select': contrat, - 'partenaires': 'on', + 't:formdata': 'H4sIAAAAAAAAALVYz2/cRBj9sqilZFtafkkICSQgvSEn67YQkqZlu9lWgNNEXcolBzTr/XYzxfaYmfGue4ETR5A4I3HiiCoB9x7oASkHDvwH/AGckDiBxIxnbSfbJu16TKREyvM3b957M54Zzw9/wonJKrzN0d9Drn7ZcMhRLLfHJPIR10gQIB8jFwEpSgQN44AOKaLgsDPkToxO6Ds+C8MkciSJUUh+16F7ocZiFmEkhePR6NNe0g+pbI/R77BIYipxaYczH4XInghBWXT7yx/vbTRff7UBjV142jd1El7Y9e6QMVkOSDRa3u7fQV+ue9DEAENFf5OEKOH5AyU9yWk0Wk85nNOgo0HHtIPyJ41jCa9lJj9WJj1yKzfZK0xOrsDlo+IpcGKAzK8gkXQ4GVA24iyJVUirjI8cEhNVWORzSYXDMaD9gyHd0q1u6FZLPZRJ/M3K/bd+fvavXxqwoMzqMDgLtNnP4HNopPrvUxIWy85qEHuxgtjWfrq//1Pv3/sNlWmmarIGq/MLEShbKy0l4tKxIvpEoNPuK5D48jrFYGDiOn/7QfOPl3795/i4TppeLBW251X40Ex/cG9wcfj3d7/ZZ+YqRZqhacy5FuZUW810dvIeXJmfYMRJNBiwkNAIc0WnM3DTgPa0Rt1N8OxolqYrh8iWJDWenWMXspCmNBJO1zQy69jDI/rtF199/f327u9q7fLglB9QVfv+IJt85Vqm/13I5+KhcOLJVdioMGosETOZNzWWR25LahJ/F96Zn0XuqbxyUSey/yyIjJAb0K3YfmbMNd2Luax40oH2/LzTiGLCD1k9O8V3CP8oM10HubFfaTSjJETOTHk+RQy2rTFrUoslI2QDvc1y9bIkmTZQW/LpHPUUWk2dvBtjtgMQWVjWWMdg1qTG8hZ8aMXy6Cl5UGg8uQxrFd5fRezLT1Zy76dywI7OuO5CZ36KIUs0LiUKEhBazsTnyic986SmDoxYG7+t2fhadnQWivYw4RiStFCUAVsktaMziiqdGjGNkastzjcjeVIdREvIllIzLk424dr8JGMSaHOH1anEzpkH3VJjLfQWCSYRlThQZIXGxQza1JAtpdHVhqsVNh7dHqeHmlzamQztTtEaiC1OckK9TWoQ1NmajpVftYByjDkVWLywr0xL2tOSbllSd5f/hw/38T7curu0Xy7d2eXStaOzV3RhVtEFOzoLRfoGIkFRbik5YEdn8ZpHdIwkMUSFrDMG9QxaA7F9ZO5sZBWnVd66psjcR0bm1kBsBG7AeoWzpfrCHOr7hlzcMwViSWhEefBBhful4upQcqqWn5BJ4Qfq03mq8eWioGcKtlRBRxXU251xcB7ePIpSf2lhlJ1Ni2+GA9gTNjXdLMEbj1XOBYfrT3qBeo0lkkVHXT2U16YLh69FZ24Ki67/A14oWbX6FQAA', + 'radiogroup': u'MOTS_CLES', + 'set101': metier, + 'set201': u'', + 'grandDomaine': u'', + 'sousDomaine': u'', + 'theme': u'', + 'domaineParTheme': u'', + 'numeroOffre': u'', + 'lieu': u'', + 'lieuCode': u'', + 'lieuCodePostal': u'', + 'lieuType': u'', + 'typeContrat': contrat, + 'fourchetteSalaire': salary, + 'select_1': qualification, + 'heureMax': u'', + 'experience': u'INDIFFERENT', + 'dureeEmission': limit_date, + 'secteurActiviteEntreprise1': domain, + 'secteurActiviteEntreprise2': u'', + 'select_2': u'', + 'select_3': u'', + 'langues1': u'', + 'langues2': u'', + 'textfield': u'', } - self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/simplifiee.recherche', + + if place.split('|')[1] == 'DEPARTEMENT': + self.choose_departement(place.split('|')[2], copy.deepcopy(data)) + + elif place.split('|')[1] == 'REGION': + self.choose_region(place.split('|')[2], copy.deepcopy(data)) + + else: + data['select'] = u'10' + data['radiogroup_0'] = 'FRANCE' + + data['rechercher'] = u'' + data['partenaires'] = u'on' + data['rechercher:hiddenelementSubmit'] = u'rechercher:hiddenelementSubmit' + + self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee.recherche', urllib.urlencode(data)) + assert self.is_on_page(SearchPage) return self.page.iter_job_adverts() + def choose_region(self, place, data): + data['select'] = u'10' + data['radiogroup_0'] = u'REGION' + data['choixRegion:hiddenelementSubmit'] = u'choixRegion:hiddenelementSubmit' + + self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee.recherche', + urllib.urlencode(data)) + + data2 = { + 't:formdata': 'H4sIAAAAAAAAAOWZwWoUQRCGK8GIZD2IoHjxEIigl944u6vRIJIYoodBxSVn6emt2e040z129ybjxZO+hi+gBnwDIQdvvoMP4EXEkwe7XTfbIEgc0BxqYBjo6ar6v545/PC/+QwLeyvADIoRGn/rPDdo23yXK4HYvjPS0kqTon2EQ6mVvVloXVkDTJsh4xX3JczxCq0zz3pMaIOFzPyzrLRC5SxL/f7l5EuVX7l7/vXteYDawJkd358VXA3Zg2wHhYPZVVf/QU/n/eUX9zpf30LQ8xSew9xeF5KjD/V7xJNM135w74+DM26RrWd+kQu3JbEYLPfRjatL2wetT+c+fJ+HuRRaQitndHGfl+jgbBpOpx1Op913Rqrh2kSig1PTuY3Vrv+t2odGC7S2P85Kaa1vd7A/6ObfXn2cndy//1zd+PdpODSUnWh4bqF2wcHidOHxSrNGoc9iM+mnj5n4KjnihBxxhxxxlxxxjxzxNXLE18kRr5IjvkGEuDVzIFRMV4RMxXVFyFRsV4RMxXdFyFSMV4RMxXlFyFSsV4RMxXtFyFTMV4RMz30l9NxXQs99JfTcV0LPfSXH4b42YePoZbu8kAM0hS/Qsh6gNZMX1sBWbliFrBQhJSjH6jA+YHJUxsnBhh47rX4GF+73GGP75bv9W62li5MABgssfVEIYILak9PA5cIvISkGjfXmocIfuzXN7zgbAAA=', + place: 'on', + 'validerLeChoixDesRegions': u'', + 'validerLeChoixDesRegions:hiddenelementSubmit': 'validerLeChoixDesRegions:hiddenelementSubmit', + } + + self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee/choisirlesregions.choisirdeslieux', + urllib.urlencode(data2)) + + def choose_departement(self, place, data): + + data['select'] = u'10' + data['radiogroup_0'] = u'DEPARTEMENT' + data['choixDepartement:hiddenelementSubmit'] = u'choixDepartement:hiddenelementSubmit' + + self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee.recherche', + urllib.urlencode(data)) + + data2 = { + 't:formdata': 'H4sIAAAAAAAAAO3dT2sTQRzG8alYkaYHEfTWg1BBL5u2afpHEamW6iFUofQsm82k3bq7s85M2njxpG/DN6AWfAdCD958D74ALyKePDjz1LYjglACVZinEArJ7swvn/bwpQ3M2y9ifK8tWlpm21K7h+r3tTTNdDetMimb97dVbnLdkWZV1qm2spSVNbcKpWqjRaL0VpLWqbsvsWktjdXP20mmtCzyrvte1qry1ycdd/303Ne6f/PB1Td3zwkx1OLSjtskKdJqK3nU3ZGZFSdfw/qshmp9uPHyYevbO+GHeiZeiLG9ZbF4yp3dhdnTrhq63dt/3b2bGpmsdN2TaWbXcln0pjekHdTXNw8an698/HFOjHVEI1OV1apYT0tpxeWOd2p6p+aG1Xm1dftwTisuHu072sgrpx35sVaZNGZj0C1zY3JVHez35vvfX386MTyjn958+Cs1ys7+3vOjMPoFxq2YOHriycwIq/nFJkZ4J5P/jcIsFZzCHBWcQosKTmGeCk6hTQWnsEAFp7BIBaewRAWnsByxQuOkmmKOx4Ah5noMGGLOx4Ah5n4MGGIOyIAh5oIMGGJOyIAh5oYMGGKOyICBFYm/OrEiwcCKBAMrEgysSDCwIsHAigQDKxIMrEgwsCLBwIrEf+1YkWBgRYKBFQkGViQYWJFgYEWCgRUJBlYkGFiRYGBF4lNPrEgwsCLBwIoEAysSDKxIMLAiwcCKBAMrEgysSDCwIj1DmxUJBlYkGFiRYGBFgoEVCQZWJBhYkWBgRYKBFQkGVqRnWGBFgoEVCQZWJBhYkWBgRYKBFQkGViQYWJFgYEWCgRXpGRZZkWBgRYKBFQkGViQYWJFgYEWCgRUJBlYkGFiRYGBFeoYlViQYWJFgYEWCgRUJBlYkGFiRYGBFgoEVCQZWJBhYkZ5hmRUJBlYkGFiRYGBFgoEVCQZWJBhYkWBgRYKBFQmGmCty8phhdibmjAwdYu7I0CHmkAwdYi7J0CHmlAwdYm7J0CHmmAwd/m1NrovOKe/dTYu8J3Xh7lL5sCdNL3jVaLHW10ktkzLzB+6Vg+r4JL4k3y7DQ/juqYFVFQ4CtH8eC7j56v3+nca1qcNTDWWB9f2phn7uC0enGE79mqYj/bTD1d9n/QkhTJ63oXIAAA==', + place: 'on', + 'validerLeChoixDesDepartements': u'', + 'validerLeChoixDesDepartements:hiddenelementSubmit': 'validerLeChoixDesDepartements:hiddenelementSubmit', + + } + + self.location('http://candidat.pole-emploi.fr/candidat/rechercheoffres/avancee/choisirlesdepartements.choisirdeslieux', + urllib.urlencode(data2)) + @id2url(PopolemploiJobAdvert.id2url) def get_job_advert(self, url, advert): self.location(url) diff --git a/modules/popolemploi/pages.py b/modules/popolemploi/pages.py index 10d95c4d..c9ee6276 100644 --- a/modules/popolemploi/pages.py +++ b/modules/popolemploi/pages.py @@ -58,7 +58,6 @@ class AdvertPage(BasePage): _id = self.parser.select(content, 'ul/li/ul/li/div[@class="value"]/span', 1, method='xpath').text advert = PopolemploiJobAdvert(_id) - print url advert.title = u'%s' % self.parser.select(content, 'h4', 1, method='xpath').text.strip() advert.job_name = u'%s' % self.parser.select(content, 'h4', 1, method='xpath').text.strip() advert.description = u'%s' % self.parser.select(content, 'p[@itemprop="description"]', 1, method='xpath').text