Exemplo n.º 1
0
def transform_for_postajob(job):
    """
    Cleans a job coming from My.jobs post-a-job. This should add any
    required fields, and re-format any fields that are not coming in
    in the required format.

    inputs:
        :job: A dictionary with the following fields: postajob.job.id (id),
            city, company.id (company), country, country_short, date_new,
            date_updated, description, guid, link, on_sites, state,
            state_short, reqid, title, uid, and zipcode.

    outputs:
        A solr-ready job as a dictionary

    """
    try:
        company = Company.objects.get(id=job['company'])
    except Company.DoesNotExist:
        return None

    job['date_new'] = _clean_time(job['date_new'])
    job['date_updated'] = _clean_time(job['date_updated'])

    solr_job = {'is_posted': True}
    on_sites = job.get('on_sites', '0')

    if not on_sites:
        solr_job['on_sites'] = ''
    else:
        solr_job['on_sites'] = [str(x) for x in on_sites.split(',')]

    solr_job['id'] = 'postajob.job.%s' % job['guid']
    # This has to be seo.joblisting, otherwise the jobs won't be included
    # in the search results.
    solr_job['django_ct'] = 'seo.joblisting'
    solr_job['django_id'] = 0
    solr_job['city_slug'] = slugify(job['city'])
    solr_job['country_short'] = job['country_short']
    solr_job['date_updated_exact'] = job['date_updated']
    solr_job['job_source_name'] = 'Post-a-Job'
    solr_job['date_updated'] = job['date_updated']
    solr_job['salted_date'] = DEJobFeed.date_salt(job['date_updated'])
    solr_job['reqid'] = job['reqid']
    solr_job['company_digital_strategies_customer'] = company.digital_strategies_customer
    solr_job['guid'] = job['guid']
    solr_job['uid'] = job['id']
    solr_job['company_member'] = company.member
    solr_job['city'] = job['city']
    solr_job['date_new'] = job['date_new']
    solr_job['country_exact'] = job['country']
    solr_job['country_slug'] = slugify(job['country'])
    solr_job['company_ac'] = company.name
    solr_job['html_description'] = DEJobFeed.markdown_to_html(job['description'])
    solr_job['state'] = job['state']
    solr_job['country_ac'] = job['country']
    solr_job['city_ac'] = job['city']
    solr_job['state_short_exact'] = job['state_short']
    solr_job['title_ac'] = job['title']
    solr_job['company_canonical_microsite'] = company.canonical_microsite
    solr_job['description'] = job['description']
    solr_job['state_ac'] = job['state']
    solr_job['company'] = company.name
    solr_job['state_short'] = job['state_short']
    solr_job['title_exact'] = job['title']
    solr_job['link'] = job.get('link', '')
    solr_job['apply_info'] = job.get('apply_info', '')
    solr_job['company_enhanced'] = company.enhanced
    solr_job['state_slug'] = slugify(job['state'])
    solr_job['city_exact'] = job['city']
    solr_job['title_slug'] = slugify(job['title'])
    solr_job['state_exact'] = job['state']
    solr_job['zipcode'] = job['zipcode']
    solr_job['title'] = job['title']
    solr_job['date_new_exact'] = job['date_new']
    solr_job['country'] = job['country']
    solr_job['company_exact'] = company.name
    solr_job['company_canonical_microsite_exact'] = company.canonical_microsite
    solr_job['date_added'] = solr_job['date_added_exact'] = datetime.datetime.now()

    # Requires city, state_short, state, and country_short to be filled
    # in on solr_job to work.
    solr_job['location'] = DEJobFeed.location(solr_job)
    # Requires city, state, location, and country to be filled in on
    # solr_jobs.
    solr_job['full_loc'] = DEJobFeed.full_loc(solr_job)
    solr_job['full_loc_exact'] = solr_job['full_loc']
    solr_job['company_slab'] = DEJobFeed.co_slab(company.name)
    # Requires solr_job['country_short'], solr_job['state'], and
    # solr_job['city'] to already be filled in.
    solr_job['city_slab'] = DEJobFeed.city_slab(solr_job)
    # Requires solr_job['country_short'] and solr_job['state'] to already be
    # filled in.
    solr_job['state_slab'] = DEJobFeed.state_slab(solr_job)
    # Requires solr_job['country_short'] to already be filled in.
    solr_job['country_slab'] = DEJobFeed.country_slab(solr_job)
    # Requires solr_job['title'] to already be filled in.
    solr_job['title_slab'] = DEJobFeed.title_slab(solr_job)

    solr_job['location_exact'] = solr_job['location']
    solr_job['state_slab_exact'] = solr_job['state_slab']
    solr_job['company_slab_exact'] = solr_job['company_slab']
    solr_job['country_slab_exact'] = solr_job['country_slab']
    solr_job['city_slab_exact'] = solr_job['city_slab']
    solr_job['title_slab_exact'] = solr_job['title_slab']

    solr_job['text'] = " ".join([force_text((job.get(k)) or "None") for k in
                                 text_fields])

    return solr_job
Exemplo n.º 2
0
def transform_for_postajob(job):
    """
    Cleans a job coming from My.jobs post-a-job. This should add any
    required fields, and re-format any fields that are not coming in
    in the required format.

    inputs:
        :job: A dictionary with the following fields: postajob.job.id (id),
            city, company.id (company), country, country_short, date_new,
            date_updated, description, guid, link, on_sites, state,
            state_short, reqid, title, uid, and zipcode.

    outputs:
        A solr-ready job as a dictionary

    """
    try:
        company = Company.objects.get(id=job['company'])
    except Company.DoesNotExist:
        return None

    job['date_new'] = _clean_time(job['date_new'])
    job['date_updated'] = _clean_time(job['date_updated'])

    solr_job = {'is_posted': True}
    on_sites = job.get('on_sites', '0')

    if not on_sites:
        solr_job['on_sites'] = ''
    else:
        solr_job['on_sites'] = [str(x) for x in on_sites.split(',')]

    solr_job['id'] = 'postajob.job.%s' % job['guid']
    # This has to be seo.joblisting, otherwise the jobs won't be included
    # in the search results.
    solr_job['django_ct'] = 'seo.joblisting'
    solr_job['django_id'] = 0
    solr_job['city_slug'] = slugify(job['city'])
    solr_job['country_short'] = job['country_short'].upper()
    solr_job['country_short_exact'] = job['country_short'].upper()
    solr_job['date_updated_exact'] = job['date_updated']
    solr_job['job_source_name'] = 'Post-a-Job'
    solr_job['date_updated'] = job['date_updated']
    solr_job['salted_date'] = DEJobFeed.date_salt(job['date_new'])
    solr_job['reqid'] = job['reqid']
    solr_job['company_digital_strategies_customer'] = company.digital_strategies_customer
    solr_job['guid'] = job['guid']
    solr_job['uid'] = job['id']
    solr_job['company_member'] = company.member
    solr_job['city'] = job['city']
    solr_job['date_new'] = job['date_new']
    solr_job['country_exact'] = job['country']
    solr_job['country_slug'] = slugify(job['country'])
    solr_job['company_ac'] = company.name
    solr_job['html_description'] = DEJobFeed.markdown_to_html(job['description'])
    solr_job['state'] = job['state']
    solr_job['country_ac'] = job['country']
    solr_job['city_ac'] = job['city']
    solr_job['state_short_exact'] = job['state_short']
    solr_job['title_ac'] = job['title']
    solr_job['company_canonical_microsite'] = company.canonical_microsite
    solr_job['description'] = job['description']
    solr_job['state_ac'] = job['state']
    solr_job['company'] = company.name
    solr_job['state_short'] = job['state_short']
    solr_job['title_exact'] = job['title']
    solr_job['link'] = job.get('link', '')
    solr_job['apply_info'] = job.get('apply_info', '')
    solr_job['company_enhanced'] = company.enhanced
    solr_job['state_slug'] = slugify(job['state'])
    solr_job['city_exact'] = job['city']
    solr_job['title_slug'] = slugify(job['title'])
    solr_job['state_exact'] = job['state']
    solr_job['zipcode'] = job['zipcode']
    solr_job['title'] = job['title']
    solr_job['date_new_exact'] = job['date_new']
    solr_job['country'] = job['country']
    solr_job['company_exact'] = company.name
    solr_job['company_canonical_microsite_exact'] = company.canonical_microsite
    solr_job['date_added'] = solr_job['date_added_exact'] = datetime.datetime.now()

    # Requires city, state_short, state, and country_short to be filled
    # in on solr_job to work.
    solr_job['location'] = DEJobFeed.location(solr_job)
    # Requires city, state, location, and country to be filled in on
    # solr_jobs.
    solr_job['full_loc'] = DEJobFeed.full_loc(solr_job)
    solr_job['full_loc_exact'] = solr_job['full_loc']
    solr_job['company_slab'] = DEJobFeed.co_slab(company.name)
    # Requires solr_job['country_short'], solr_job['state'], and
    # solr_job['city'] to already be filled in.
    solr_job['city_slab'] = DEJobFeed.city_slab(solr_job)
    # Requires solr_job['country_short'] and solr_job['state'] to already be
    # filled in.
    solr_job['state_slab'] = DEJobFeed.state_slab(solr_job)
    # Requires solr_job['country_short'] to already be filled in.
    solr_job['country_slab'] = DEJobFeed.country_slab(solr_job)
    # Requires solr_job['title'] to already be filled in.
    solr_job['title_slab'] = DEJobFeed.title_slab(solr_job)

    solr_job['location_exact'] = solr_job['location']
    solr_job['state_slab_exact'] = solr_job['state_slab']
    solr_job['company_slab_exact'] = solr_job['company_slab']
    solr_job['country_slab_exact'] = solr_job['country_slab']
    solr_job['city_slab_exact'] = solr_job['city_slab']
    solr_job['title_slab_exact'] = solr_job['title_slab']

    solr_job['all_locations'] = [job['zipcode'], job['city'], job['state'], job['state_short'],
                                "%s, %s" % (job['city'], job['state']), job['country']]

    solr_job['text'] = " ".join([force_text((job.get(k)) or "None") for k in
                                 text_fields])

    return solr_job
Exemplo n.º 3
0
    job['zipcode'] = zipcode.text if zipcode != None else ""
    job['title'] = title
    job['date_new_exact'] = job['date_new']
    job['country'] = country
    job['company_exact'] = company.name
    job['company_canonical_microsite_exact'] = company.canonical_microsite
    job['date_added'] = job['date_added_exact'] = datetime.datetime.now()

    # Requires city, state_short, state, and country_short to be filled
    # in on job to work.
    job['location'] = DEJobFeed.location(job)
    # Requires city, state, location, and country to be filled in on
    # jobs.
    job['full_loc'] = DEJobFeed.full_loc(job)
    job['full_loc_exact'] = job['full_loc']
    job['company_slab'] = DEJobFeed.co_slab(company.name)
    # Requires job['country_short'], job['state'], and
    # job['city'] to already be filled in.
    job['city_slab'] = DEJobFeed.city_slab(job)
    # Requires job['country_short'] and job['state'] to already be
    # filled in.
    job['state_slab'] = DEJobFeed.state_slab(job)
    # Requires job['country_short'] to already be filled in.
    job['country_slab'] = DEJobFeed.country_slab(job)
    # Requires job['title'] to already be filled in.
    job['title_slab'] = DEJobFeed.title_slab(job)

    job['location_exact'] = job['location']
    job['state_slab_exact'] = job['state_slab']
    job['company_slab_exact'] = job['company_slab']
    job['country_slab_exact'] = job['country_slab']
Exemplo n.º 4
0
    job['zipcode'] = zipcode.text if zipcode != None else ""
    job['title'] = title
    job['date_new_exact'] = job['date_new']
    job['country'] = country
    job['company_exact'] = company.name
    job['company_canonical_microsite_exact'] = company.canonical_microsite
    job['date_added'] = job['date_added_exact'] = datetime.datetime.now()

    # Requires city, state_short, state, and country_short to be filled
    # in on job to work.
    job['location'] = DEJobFeed.location(job)
    # Requires city, state, location, and country to be filled in on
    # jobs.
    job['full_loc'] = DEJobFeed.full_loc(job)
    job['full_loc_exact'] = job['full_loc']
    job['company_slab'] = DEJobFeed.co_slab(company.name)
    # Requires job['country_short'], job['state'], and
    # job['city'] to already be filled in.
    job['city_slab'] = DEJobFeed.city_slab(job)
    # Requires job['country_short'] and job['state'] to already be
    # filled in.
    job['state_slab'] = DEJobFeed.state_slab(job)
    # Requires job['country_short'] to already be filled in.
    job['country_slab'] = DEJobFeed.country_slab(job)
    # Requires job['title'] to already be filled in.
    job['title_slab'] = DEJobFeed.title_slab(job)

    job['location_exact'] = job['location']
    job['state_slab_exact'] = job['state_slab']
    job['company_slab_exact'] = job['company_slab']
    job['country_slab_exact'] = job['country_slab']