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
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)
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)