1880: paquet emploi - API - logique de génération de la liste des offres d'emploi...
[auf_django_emploi.git] / auf / django / emploi / api.py
CommitLineData
d691a5d3
NBV
1# -*- encoding: utf-8 -*
2from django.shortcuts import render_to_response, redirect, get_object_or_404
448f1dfa 3from django.template import Context, RequestContext
d691a5d3
NBV
4
5from django.utils import simplejson
6from auf.django.emploi import models as emploi
7from auf.django.emploi import forms as emploiForms
449e9e93 8from restkit import request as req
36b8eabb
NBV
9from restkit import Resource
10from httplib2 import Http
11from urllib import urlencode
448f1dfa 12import datamaster_modeles.models as ref
d691a5d3
NBV
13
14class API:
15 def __init__(self, request):
16 self.request = request
17
18 def offre_emploi_liste(self):
b7fb5786 19 url = "http://127.0.0.1:8000/api/offre_emploi_liste/"
449e9e93 20 r = req(url)
d691a5d3 21 liste_json = r.body_string()
1ff71303
NBV
22 try:
23 liste_offres = simplejson.loads(liste_json)
24 except:
25 return []
d691a5d3
NBV
26 obj_offres_emploi = []
27
28 for offre_dict in liste_offres:
29 offre = emploi.OffreEmploi()
8acb3cd3
NBV
30 offre.est_affiche = offre_dict['est_affiche']
31 offre.statut = offre_dict['statut']
d691a5d3
NBV
32 offre.nom = offre_dict['nom']
33 offre.resume = offre_dict['resume']
34 offre.description = offre_dict['description']
44accb6d 35 offre.poste_nom = offre_dict['poste_nom']
448f1dfa
NBV
36 offre.date_limite = offre_dict['date_limite']
37 offre.region = ref.Region.objects.get(id=offre_dict['region'])
38 offre.bureau = ref.Bureau.objects.get(id=offre_dict['bureau'])
d691a5d3
NBV
39 offre.duree_affectation = offre_dict['duree_affectation']
40 offre.renumeration = offre_dict['renumeration']
41 offre.debut_affectation = offre_dict['debut_affectation']
448f1dfa 42 offre.lieu_affectation = ref.Implantation.objects.get(id=offre_dict['lieu_affectation'])
d691a5d3
NBV
43 obj_offres_emploi.append(offre)
44 return obj_offres_emploi
45
46 def offre_emploi(self, offre_id):
b7fb5786 47 url = "http://127.0.0.1:8000/api/offre_emploi/?id=%s"
449e9e93 48 r = req(url % (offre_id))
d691a5d3 49 offre_json = r.body_string()
1ff71303
NBV
50
51 try:
52 offre_dict = simplejson.loads(offre_json)
53 except:
54 return []
448f1dfa 55 obj_offres_emploi = []
d691a5d3 56
448f1dfa 57 offre = emploi.OffreEmploi()
8acb3cd3
NBV
58 offre.est_affiche = offre_dict['est_affiche']
59 offre.statut = offre_dict['statut']
448f1dfa
NBV
60 offre.nom = offre_dict['nom']
61 offre.resume = offre_dict['resume']
62 offre.description = offre_dict['description']
44accb6d 63 offre.poste_nom = offre_dict['poste_nom']
448f1dfa
NBV
64 offre.date_limite = offre_dict['date_limite']
65 offre.region = ref.Region.objects.get(id=offre_dict['region'])
66 offre.bureau = ref.Bureau.objects.get(id=offre_dict['bureau'])
67 offre.duree_affectation = offre_dict['duree_affectation']
68 offre.renumeration = offre_dict['renumeration']
69 offre.debut_affectation = offre_dict['debut_affectation']
70 offre.lieu_affectation = ref.Implantation.objects.get(id=offre_dict['lieu_affectation'])
71 obj_offres_emploi.append(offre)
72 return obj_offres_emploi
73
74 def candidat_add(self, offre_id):
36b8eabb
NBV
75 url = "http://127.0.0.1:8000/api/candidat_add/%s" % offre_id
76 r = Resource(url)
36b8eabb 77 resp = r.post(payload=self.request.POST)
36b8eabb 78 return resp.status
d691a5d3 79
448f1dfa 80