Beispiel #1
0
def linkedin_auth_empl(request):
    """ LinkedIn auth process """

    logger.info("Linkedin Contact View")
    error_url = urlresolvers.reverse('error')
    if request.GET:
        logger.info("----------------------------------")
        logger.info("GET")
        oauth_verifier = request.GET.get('oauth_verifier', '')
        logger.info("Linkedin Verifier code : %s" % oauth_verifier)
        access_token = linkedin_api.access_token(oauth_verifier)
        if access_token == True:
            employees = []
            try:
                openerp_api = OpenErpAPI(
                    openerp_info['HOST'],
                    openerp_info['PORT'],
                    openerp_info['DBNAME'],
                    openerp_info['USER'],
                    openerp_info['PASSWORD'])
                employees = openerp_api.search_employees()
            except Exception, e:
                logger.error("ERROR on OpenErp : %s" % e)
                return HttpResponseRedirect(error_url)

            logger.info(employees.__repr__())
            # Search employess on Linkedin
            for empl in employees:
                linkedin_item = linkedin_api.get_search({
                    'name': empl['name'].replace(' ', '+'),
                    'company': empl['company_id'][1]
                })
                linkedin_extra_info = []
                for item in linkedin_item:
                    linkedin_extra_info.append(linkedin_api.get_profile(
                                        member_id=item.id, fields=FIELDS))
                if len(linkedin_item) == 0:
                    logger.warning("No Profile found on Linkedin for : %s" % \
                                                            empl['name'])
                elif len(linkedin_item) > 1:
                    logger.warning("Too many profiles found on Linkedin for : %s" % empl['name'])
                    i=0
                    for item in linkedin_item:
                        openerp_api.update_backlog(empl, item, linkedin_extra_info[i], 'hr.employee')
                        i=i+1
                else:
                    logger.info("Update Linkedin info on OpenErp for : %s" % empl['name'])
                    # openerp_api.update_profile(empl, linkedin_item[0], linkedin_extra_info[0], 'hr.employee')
                    update_create_contact(empl, linkedin_item[0], linkedin_extra_info[0])
        else:
            logger.error("ERROR")
            return HttpResponseRedirect(error_url)