Ejemplo n.º 1
0
    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': '下载失败'})
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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"))
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
    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})
Ejemplo n.º 8
0
    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})
Ejemplo n.º 9
0
    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'保存失败'})
Ejemplo n.º 10
0
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))