def get(self): user_id = session.get('user_id') if not user_id: if not session.get("account_id"): return success(res={'error_code': 4001, 'msg': '未登入'}) else: user_id = request.args.get("user_id") obj = Account.get(id=user_id) if obj: rn = Resume.objects(accounts=obj).first() if not rn: return success(res={'error_code': 4001, 'msg': '下载失败'}) file_key = rn.file_key if file_key: response = make_response(send_file(file_key)) response.headers[ "Content-Disposition"] = "attachment; filename={0};".format( rn.file_name) return response else: return success(res={'error_code': 4001, 'msg': '下载失败'}) else: return success(res={'error_code': 4001, 'msg': '下载失败'})
def get(self, **kwargs): box_id = request.args.get("box_id") box_rn = Box.get(id=box_id) rn = Resume.get(id=box_rn.resumes.id) education = [] for edu in rn.education: level = edu.get("level", "") if level: level = LEVEL.get(level) education.append({ "school": edu.get("school", ''), "major": edu.get("major", ""), 'level': level, 'graduation_date': edu.get("graduation_date", '') }) experience = [] for exp in rn.experience: experience.append({ "company": exp.get("company", ''), "job": exp.get("job", ''), "job_content": exp.get("job_content", ''), "job_date_start": exp.get('job_date_start', ''), "job_date_end": exp.get('job_date_end', ''), }) file_url = rn.file_key filename = rn.file_name expect_job = rn.expect_job expect_salary = rn.expect_salary postscript = rn.postscript description = rn.description data = { 'name': rn.name, 'birthday': rn.birthday, 'sex': rn.sex, 'tel_num': rn.tel, 'email': rn.email, 'education': education, 'experience': experience, 'expect_job': expect_job, 'expect_salary': expect_salary, 'postscript': postscript, 'description': description, 'box_id': box_id, 'drop_state': box_rn.drop_state, 'user_id': rn.accounts.id, 'file_url': file_url, 'filename': filename } print data, "AAAA" return render_template('%s/index/resume.html' % (self.template_base), msg=kwargs.get("msg"), data=data)
def get(self, **kwargs): account = Account.get(id=session.get("user_id")) rn = Resume.objects(accounts=account).first() if rn: return redirect(url_for('resume_view')) else: return render_template('%s/index/resumecheck.html' % (self.template_base), msg=kwargs.get("msg"))
def get(self, **kwargs): account = Account.get(id=session.get("user_id")) rn = Resume.objects(accounts=account).first() if not rn: return redirect(url_for('resume_check_page')) education = [] for edu in rn.education: level = edu.get("level", "") if level: level = constants.LEVEL.get(level) education.append({ "school": edu.get("school", ''), "major": edu.get("major", ""), 'level': level, 'graduation_date': edu.get("graduation_date", '') }) experience = [] for exp in rn.experience: experience.append({ "company": exp.get("company", ''), "job": exp.get("job", ''), "job_content": exp.get("job_content", ''), "job_date_start": exp.get('job_date_start', ''), "job_date_end": exp.get('job_date_end', ''), }) file_url = rn.file_key filename = rn.file_name expect_job = rn.expect_job expect_salary = rn.expect_salary postscript = rn.postscript description = rn.description data = { 'name': rn.name, 'birthday': rn.birthday, 'sex': rn.sex, 'tel_num': rn.tel, 'email': rn.email, 'education': education, 'experience': experience, 'expect_job': expect_job, 'expect_salary': expect_salary, 'postscript': postscript, 'description': description, 'file_url': file_url, 'filename': filename } return render_template('%s/index/my_resume.html' % (self.template_base), msg=kwargs.get("msg"), resume=data)
def test_edit_resume(app, db, resume): if db.get_quantity_resumes_for_user() == 0: app.resume.add( Resume(first_name="test", last_name="test", email="test", phone="test", address="test", city="test", state="test", country="test", zip_code="test", job_title="test", summary="test", education=[], experience=[])) quantity_resumes_before = db.get_quantity_resumes_for_user() resumes_list = app.resume.get_resumes_list() random.choice(resumes_list).click() resume_id = app.resume.edit_resume(resume) assert app.resume.was_edited( ) == True, "Something went wrong, couldn't find a message that resume was edited." quantity_resumes_after = db.get_quantity_resumes_for_user() assert quantity_resumes_before == quantity_resumes_after #get the edited resume record from database and compare it with data for edit edited_resume_rec = db.get_resume_record(resume_id)[0] assert edited_resume_rec == (resume.first_name, resume.last_name, resume.email, resume.phone, resume.address, resume.city, resume.state, resume.country, resume.zip_code, resume.job_title, resume.summary) #get the edited education records from database and compare it with data for edit edited_education = db.get_education_record(resume_id) for i in range(len(edited_education)): assert edited_education[i] == (resume.education[i].organization_name, resume.education[i].description, resume.education[i].title, resume.education[i].start_date, resume.education[i].end_date) #get the edited experience records from database and compare it with data for edit edited_experience = db.get_experience_record(resume_id) for i in range(len(edited_experience)): assert edited_experience[i] == (resume.experience[i].position, resume.experience[i].company_name, resume.experience[i].description, resume.experience[i].start_date, resume.experience[i].end_date)
def test_delete_resume(app, db): #, i): # if user don't have resumes yet, add one if db.get_quantity_resumes_for_user()==0: app.resume.add(Resume(first_name="test", last_name="test", email="test", phone="test", address="test", city="test", state="test", country="test", zip_code="test", job_title="test", summary="test", education=[], experience=[])) quantity_resumes_before=db.get_quantity_resumes_for_user() resumes_list=app.resume.get_resumes_list() random.choice(resumes_list).click() resume_id=app.resume.delete_resume() deleted_resume_rec=db.get_resume_record(resume_id) deleted_education=db.get_education_record(resume_id) deleted_experience=db.get_experience_record(resume_id) quantity_resumes_after=db.get_quantity_resumes_for_user() assert len(deleted_resume_rec)==0, "Resume is still in database" assert len(deleted_education)==0, "Education records from deleted resume are still in database" assert len(deleted_experience)==0, "Exprrience records from this resume are still in database" assert quantity_resumes_before-1==quantity_resumes_after
def post(self): post = request.form job_id = post.get("job_id") option = post.get("option") if option == "update": box_id = post.get("box_id") drop_state = post.get("drop_state") data = { 'drop_state': int(drop_state) } rn = Box.update_doc(id=box_id, **data) else: if not job_id: return success(res={"error_code": 4001, 'msg': '参数错误'}) count = len(Box.objects(state=100, accounts=session.get("user_id"))) if count > 2: return success(res={'error_code': 4001, 'msg': '已投递3份简历,到达上限!'}) resume_rn = Resume.objects(state=100, accounts=session.get("user_id")).first() if not resume_rn: return success(res={'error_code': 4004, 'msg': '暂无简历,确认创建简历?'}) data = { "jobs": Job.get(id=job_id), 'drop_state': 100, "accounts": Account.get(id=session.get("user_id")), 'resumes': resume_rn.id } rn = Box.create(**data) if not rn: return success(res={'error_code': 4001, 'msg': '投递失败'}) return success(res={'id': rn.id})
def get(self): args = request.args page = int(args.get("page")) limit = int(args.get("limit")) option = args.get("option") drop_state = int(args.get("drop_state")) job_list = [] if option == 'all': # if not job_class and job_class == '0': data = {} if drop_state: data = { 'drop_state': drop_state, } box_rn = Box.objects(**data).all() obj = Job.pagination(page=page, limit=limit, rn=box_rn) for box in obj.get("data"): job = Job.get(id=box.jobs.id) resume = Resume.get(id=box.resumes.id) if not job: continue create_time = box.created_at.strftime("%Y-%m-%d") job_list.append( { "drop_state": box.drop_state, "name": job.name, 'time': create_time, 'department': job.department, 'classes': JOB_CLASS.get(job.classes), 'resume_name': resume.name, 'tel': resume.tel, 'resume_id': resume.id, 'drop_state': box.drop_state, 'box_id': box.id, # 'location': job.location, # 'salary': "{0}-{1}k".format(job.salary_start, job.salary_end), # 'experience': EXPERIENCE.get(job.experience), # 'education': LEVEL.get(job.education), # 'temptation': job.temptation, 'id': job.id } ) else: data = { 'state': 100, 'accounts': session.get("user_id") } if drop_state: data['drop_state'] = int(drop_state) box_rn = Box.objects(**data).all() obj = Job.pagination(page=page, limit=limit, rn=box_rn) for box in obj.get("data"): job = Job.get(id=box.jobs.id) if not job: continue create_time = job.created_at.strftime("%Y-%m-%d") job_list.append( { "drop_state": box.drop_state, "name": job.name, 'time': create_time, 'department': job.department, 'classes': JOB_CLASS.get(job.classes), 'location': job.location, 'salary': "{0}-{1}k".format(job.salary_start, job.salary_end), 'experience': EXPERIENCE.get(job.experience), 'education': LEVEL.get(job.education), 'temptation': job.temptation, 'id': job.id } ) obj['data'] = job_list return success(res={'data': job_list})
def post(self): account = Account.get(id=session.get("user_id")) if not account: return success(res={"error_code": 4001, 'msg': '请登入'}) post = request.form name = post.get("name") tel = post.get("tel") sex = post.get('sex') email = post.get("email") birthday = post.get("birthday") if (not name) or (not tel) or (not sex) or (not email): return success(res={"error_code": 4001, 'msg': '字段缺失'}) school = post.get("school", '') major = post.get("major", '') level = int(post.get("level", 2)) graduation_date = post.get("graduation_date", '') company = post.get("company", '') job = post.get("job", '') job_date_start = post.get("job_date_start", '') job_date_end = post.get("job_date_end", '') job_content = post.get("job_content", '') expect_job = post.get("expect_job", '') expect_salary = post.get("expect_salary") if expect_salary: expect_salary = int(expect_salary) else: expect_salary = 0 postscript = post.get("postscript", '') description = post.get("description", '') file_key = post.get("file_key", '') filename = post.get("filename", '') data = { 'name': name, 'tel': tel, 'sex': sex, 'accounts': account, 'email': email, 'birthday': birthday, 'education': [{ 'school': school, 'major': major, 'level': level, 'graduation_date': graduation_date }], 'experience': [{ 'company': company, 'job': job, 'job_date_start': job_date_start, 'job_date_end': job_date_end, 'job_content': job_content }], 'expect_job': expect_job, 'expect_salary': expect_salary, 'postscript': postscript, 'description': description, 'file_key': file_key, 'file_name': filename, } obj = Resume.objects(accounts=account).first() if obj: rn = Resume.update_doc(obj.id, **data) else: rn = Resume.create(**data) if rn: return success(res={}) else: return success(res={'error_code': 4001, 'msg': u'保存失败'})
n=3 #quantity of records in the file f="data/resume_random_gen1.json" for o, a in opts: if o=="-n": n=int(a) elif o=="-f": f=a def random_string(prefix, maxlen): symbols = string.ascii_letters+string.digits return prefix+"".join([random.choice(symbols) for i in range(random.randrange(maxlen))]) testdata=[Resume(None, random_string("first_name", 10), random_string("last_name", 15), random_string("email", 20), random_string("phone", 12), random_string("address", 50), random_string("city", 30), random_string("state", 30), random_string("country", 20), random_string("zip_code", 5), random_string("job_title", 50), random_string("summary", 50), [Education(None, None, random_string("organization_name", 20), random_string("description", 20), random_string("title", 20), start_date='2020-01-01', end_date='2020-01-01')], [Experience(None, None, random_string("position", 20), random_string("company_name", 20), random_string("description", 20), start_date='2020-01-01', end_date='2020-01-01')]) for i in range(n) ] file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", f) with open(file, "w") as fw: jsonpickle.set_encoder_options("json", indent=2) fw.write(jsonpickle.encode(testdata))