# -*- encoding: utf-8 -*
from django.shortcuts import render_to_response, redirect, get_object_or_404
+from django.template import Context, RequestContext
from django.utils import simplejson
from auf.django.emploi import models as emploi
-from auf.django.emploi import forms as emploiForms
from restkit import request as req
+from restkit import Resource
+from httplib2 import Http
+from urllib import urlencode
+import datamaster_modeles.models as ref
+from poster.encode import MultipartParam
+from poster.encode import multipart_encode
+import urllib2
+import settings
+
+
+STATUS_OK = '200 OK'
class API:
def __init__(self, request):
self.request = request
- def offre_emploi_liste(self):
- url = "http://127.0.0.1:8080/api/offre_emploi_liste/"
+ def offre_emploi_liste(self, env):
+
+ if hasattr(settings, "RECRUTEMENT_URL"):
+ url = getattr(settings, "RECRUTEMENT_URL")[env] + "offre_emploi_liste/"
+ else:
+ raise ImportError, "Could not import settings RECRUTEMENT_PATH"
r = req(url)
liste_json = r.body_string()
- liste_offres = simplejson.loads(liste_json)
+ try:
+ liste_offres = simplejson.loads(liste_json)
+ except:
+ return []
obj_offres_emploi = []
for offre_dict in liste_offres:
offre = emploi.OffreEmploi()
- #offre.est_affiche = offre_dict['est_affiche']
- #offre.statut = offre_dict['statut']
+ offre.est_affiche = offre_dict['est_affiche']
+ offre.statut = offre_dict['statut']
offre.nom = offre_dict['nom']
offre.resume = offre_dict['resume']
offre.description = offre_dict['description']
- #offre.poste = offre_dict['poste']
- offre.date_limite = offre_dict['date_limite']
- #offre.region = offre_dict['region']
- #offre.bureau = offre_dict['bureau']
+ offre.poste_nom = offre_dict['poste_nom']
+ offre.date_limite = offre_dict['date_limite']
+ offre.region = ref.Region.objects.get(id=offre_dict['region'])
+ offre.bureau = ref.Bureau.objects.get(id=offre_dict['bureau'])
offre.duree_affectation = offre_dict['duree_affectation']
offre.renumeration = offre_dict['renumeration']
offre.debut_affectation = offre_dict['debut_affectation']
- #offre.lieu_affectation = offre_dict['lieu_affectation']
+ offre.lieu_affectation = ref.Implantation.objects.get(id=offre_dict['lieu_affectation'])
obj_offres_emploi.append(offre)
return obj_offres_emploi
- def offre_emploi(self, offre_id):
- url = "/call/offre_emploi/%s"
- r = req(url % (offre_id))
+ def offre_emploi(self, offre_id, env):
+ if hasattr(settings, "RECRUTEMENT_URL"):
+ url = getattr(settings, "RECRUTEMENT_URL")[env] + "offre_emploi/?id=%s"
+ else:
+ raise ImportError, "Could not import settings RECRUTEMENT_PATH"
+ r = req(url % offre_id)
offre_json = r.body_string()
- offre_dict = simplejson.loads(offre_json)
-
- obj_offre = emploi.OffreEmploi()
- obj_offre.est_affiche = offre_dict('est_affiche')
- obj_offre.statut = offre_dict('statut')
- obj_offre.nom = offre_dict('nom')
- obj_offre.resume = offre_dict('resume')
- obj_offre.description = offre_dict('description')
- #obj_offre.poste = offre_dict('poste')
- obj_offre.date_limite = offre_dict('date_limite')
- obj_offre.region = offre_dict('region')
- obj_offre.bureau = offre_dict('bureau')
- obj_offre.duree_affectation = offre_dict('duree_affectation')
- obj_offre.renumeration = offre_dict('renumeration')
- obj_offre.debut_affectation = offre_dict('debut_affectation')
- obj_offre.lieu_affectation = offre_dict('lieu_affectation')
- return obj_offre
+ try:
+ offre_dict = simplejson.loads(offre_json)
+ except:
+ return []
+ obj_offres_emploi = []
+
+ offre = emploi.OffreEmploi()
+ offre.est_affiche = offre_dict['est_affiche']
+ offre.statut = offre_dict['statut']
+ offre.nom = offre_dict['nom']
+ offre.resume = offre_dict['resume']
+ offre.description = offre_dict['description']
+ offre.poste_nom = offre_dict['poste_nom']
+ offre.date_limite = offre_dict['date_limite']
+ offre.region = ref.Region.objects.get(id=offre_dict['region'])
+ offre.bureau = ref.Bureau.objects.get(id=offre_dict['bureau'])
+ offre.duree_affectation = offre_dict['duree_affectation']
+ offre.renumeration = offre_dict['renumeration']
+ offre.debut_affectation = offre_dict['debut_affectation']
+ offre.lieu_affectation = ref.Implantation.objects.get(id=offre_dict['lieu_affectation'])
+ obj_offres_emploi.append(offre)
+ return obj_offres_emploi
+
+ def candidat_add(self, offre_id, env):
+ if hasattr(settings, "RECRUTEMENT_URL"):
+ url = getattr(settings, "RECRUTEMENT_URL")[env] + "candidat_add/%s"
+ else:
+ raise ImportError, "Could not import settings RECRUTEMENT_PATH"
+ r = Resource(url % offre_id)
+ mp = MultipartParam.from_file('cv', self.request.POST.get('candidat_piece-0-nom'))
+ datagen, headers = multipart_encode([image_param])
+ resp = r.post(payload=self.request.FILES, params_dict=self.request.POST)
+ if resp.status == STATUS_OK:
+ candidat_id = simplejson.loads(resp.body_string())['candidat_id']
+ return candidat_id
+ return None
+