Ejemplo n.º 1
0
    def search_job(from_date, to_date, title):
        query = Query()
        query.on_calendar(from_date, to_date)
        query.by_title(title)

        search_result = pd.DataFrame(
            Job.find(collection="job", query=query._query))
        return search_result
Ejemplo n.º 2
0
def get_jobs():
    query = {}
    request_data = request.args.to_dict()

    # Search by id
    if 'employer_id' in request_data:
        query['employer_id'] = ObjectId(request.args.get('employer_id'))

    # Search by location
    if 'company_name' in request_data:
        company_name = request_data.get('company_name')
        employer = Employer.find_one({'company_name': company_name})
        if employer:
            query['employer_id'] = employer.id
        else:
            query['company_name'] = '-1'

    # Search by location
    if 'location' in request_data:
        query['location'] = request_data.get('location')

    # Execute query
    jobs = Job.find(query)

    job_ids = map(lambda job: job.id, jobs)

    # Get student applications for those jobs
    app_query = {'job_id': {'$in': job_ids}}

    # If I'm a student, only return my apps
    if g.student:
        app_query['student_id'] = g.user.id

    # Query for applications to those jobs
    apps = Application.find(app_query)

    # Convert to dictionary based on either student or employer context
    if g.student:
        apps = map(lambda app: app.to_dict_student(), apps)
    else:
        apps = map(lambda app: app.to_dict_employer(), apps)

    apps_by_job_id = dict(zip(map(lambda app: app['job_id'], apps), apps))

    # Assemble results as dicts
    result = []
    for job in jobs:
        _dict = job.to_dict()
        _dict['application'] = apps_by_job_id.get(str(job.id))
        result.append(_dict)

    return ujson.dumps(result)
Ejemplo n.º 3
0
    def run(self):
        Employer.objects.delete()
        employers = self.get_employers()
        for e in employers:
            print "Creating employer %s" % e
            employer = Employer(**e)
            employer.save()

        Student.objects.delete()
        students = self.get_students()

        experiences = self.get_experiences()
        for i in range(len(experiences)):
            experience_list = experiences[i]
            s = students[i]
            for e in experience_list:
                s.experience = [Experience(**e)]
                s.save()

        educations = self.get_educations()
        for s in students:
            education = choice(educations)
            s.education = [Education(**education)]
            s.save()

        employers = Employer.find({})
        jobs = self.get_jobs()
        for i in range(len(jobs)):
            j = jobs[i]
            e = employers[i]
            j['employer_id'] = e['id']
            job = Job(**j)
            job.save()

        jobs = Job.find({})

        self.save_applications(jobs, students)