Esempio n. 1
0
    def post(self, request):
        field_id_list = request.POST.getlist('field_id_list[]', '')
        fields = [
            get_object_or_none(CompanyCategory, id=t, brick_display=True)
            for t in field_id_list
        ]
        if not fields or None in fields:
            return JsonResponse({
                'status': 'form_error',
                'msg': '请选择正确的标签',
                'data': {
                    'field_id_list': field_id_list,
                },
            })

        resume = self.get_user_resume()
        with transaction.atomic():
            ResumePreferField.objects.filter(resume=resume).delete()

            for f in fields:
                resume_fields = ResumePreferField(
                    resume=resume,
                    category=f,
                )
                resume_fields.save()

        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'prefer_fields': field_id_list,
            },
        })
Esempio n. 2
0
    def get(self, request, card_id):
        user = request.user
        card_job = get_object_or_none(
            CompanyCardJob,
            user=user,
            id=card_id,
        )
        if card_job:
            card_job.status = self.action
            try:
                JobUtils.card_feedback(card_job, self.action)
            except CompanyCardInterestExeception:
                logger.error(
                    'company card interst error',
                    exc_info=True,
                    extra={
                        'request': request,
                    }
                )
                return JsonResponse({
                    'status': 'exception',
                    'msg': '网络错误, 请稍后再试'
                })

            card_job.save()
            NotifyUtils.card_job_notify(card_job, self.action)

        return JsonResponse({
            'status': 'ok',
            'msg': self.msg,
        })
Esempio n. 3
0
 def post(self, request):
     category = request.POST.get('category')
     position_category = get_object_or_none(
         PositionCategory,
         id=category,
     )
     if not position_category:
         return JsonResponse({
             'status': 'form_error',
             'msg': '请选择正确的职位类别',
             'data': {
                 'category': category,
             }
         })
     resume = self.get_user_resume()
     with transaction.atomic():
         resume.job_category = position_category
         resume.save()
         resume.position_tags.filter(~Q(
             position_tag__category=position_category)).delete()
     return JsonResponse({
         'status': 'ok',
         'msg': 'ok',
         'data': {
             'category': category,
         }
     })
Esempio n. 4
0
    def post(self, request):
        city_list = request.POST.getlist('city[]', [])
        resume = self.get_user_resume()

        city = [get_object_or_none(City, id=get_int(c)) for c in city_list]
        if not city or None in city:
            return JsonResponse({
                'status': 'form_error',
                'msg': '请选择正确的城市',
                'data': {
                    'city': city_list,
                }
            })

        with transaction.atomic():
            ResumeTargetCity.objects.filter(resume=resume).delete()
            for c in city:
                target_city = ResumeTargetCity(
                    resume=resume,
                    city=c,
                )
                target_city.save()
        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'city': city_list,
            }
        })
Esempio n. 5
0
    def post(self, request):
        category = request.POST.get('category', '0')
        position_category = get_object_or_none(
            PositionCategory,
            id=category,
        )
        if not position_category:
            return JsonResponse({
                'status': 'form_error',
                'msg': '请选择正确的职位类别',
                'data': {
                    'category': category,
                }
            })

        category_tag = request.POST.getlist('tag[]', '')
        tag = [
            get_object_or_none(PositionCategoryTag,
                               id=t,
                               category=position_category)
            for t in category_tag
        ]
        tag = [t for t in tag if t]
        if not tag:
            return JsonResponse({
                'status': 'form_error',
                'msg': '请选择正确的标签',
                'data': {
                    'category_tag': category_tag,
                },
            })

        resume = self.get_user_resume()
        with transaction.atomic():
            resume.job_category = position_category
            resume.save()
            resume.position_tags.filter().delete()

            code_name_list = []
            for t in tag:
                if t.name in code_name_list:
                    continue
                resume_tag = ResumePositionTag(
                    resume=resume,
                    position_tag=t,
                )
                resume_tag.save()
                code_name_list.append(t.name)

        return JsonResponse({
            'status': 'ok',
            'msg': '修改成功',
        })
Esempio n. 6
0
 def get(self, request, tag_id):
     resume = self.get_user_resume()
     resume.position_tags.filter(id=tag_id).delete()
     return JsonResponse({
         'status': 'ok',
         'msg': '删除成功',
     })
Esempio n. 7
0
    def post(self, request):
        resume = self.get_user_resume()
        update_obj = self.get_update_obj(resume)
        if update_obj:
            obj = update_obj[0]
            form = self.form(request.POST, instance=obj)
        else:
            form = self.form(request.POST)

        if form.is_valid():
            save_obj = form.save(commit=False)
            save_obj.resume = resume
            save_obj.save()
            asyn_sync_resume.delay(self.request.user)
            result = {
                'status': 'ok',
                'msg': 'ok',
                'data': {
                    'update_id': save_obj.id
                }
            }
        else:
            result = {
                'status': 'form_error',
                'msg': '表单错误',
                'data': {
                    'errors': form.errors,
                }
            }
        return JsonResponse(result)
Esempio n. 8
0
    def get(self, request):
        category = request.GET.get('category', '0')
        position_category = get_object_or_none(
            PositionCategory,
            id=category,
        )
        if not position_category:
            return JsonResponse({
                'status': 'form_error',
                'msg': '请选择正确的职位类别',
                'data': {
                    'category': category,
                }
            })

        resume = self.get_user_resume()
        resume_tag = resume.position_tags.filter().values('position_tag__id', )
        category_tag_query = PositionCategoryTag.objects.filter(
            category=position_category,
            parent=None,
        ).prefetch_related('child_tags', )

        category_tag = [{
            'id':
            c.id,
            'name':
            c.name,
            'child': [{
                'id': ct.id,
                'name': ct.name,
            } for ct in list(c.child_tags.all())],
        } for c in list(category_tag_query)]

        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'resume_tag': list(resume_tag),
                'category_tag': list(category_tag),
                'previous_tag': {
                    'id': position_category.id,
                    'name': position_category.name,
                    'level': 1,
                },
            }
        })
Esempio n. 9
0
 def post(self, request):
     gender = request.POST.get('gender')
     if gender not in ('male', 'female'):
         return JsonResponse({
             'status': 'form_error',
             'msg': '请选择正确的性别',
         })
     resume = self.get_user_resume()
     resume.gender = gender
     resume.save()
     return JsonResponse({
         'status': 'ok',
         'msg': '选择成功',
         'data': {
             'gender': gender,
         }
     })
Esempio n. 10
0
    def get(self, request):

        data = {}
        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': data,
        })
Esempio n. 11
0
    def post(self, request, chat_id):
        msg = self.request.POST.get('msg', '')

        if not msg:
            return JsonResponse({
                'status': 'msg_error',
                'msg': u'不能为空',
            })

        chat_id = self.kwargs['chat_id']
        user = self.request.user
        chat_query = Chat.objects.filter(
            id=chat_id).filter(Q(hr=user) | Q(job_hunter=user))
        if not chat_query:
            return JsonResponse({
                'status': 'data_error',
                'msg': u'数据有误',
            })

        if self.malice_ip():
            return JsonResponse({
                'status': 'malice_ip',
                'msg': '注册太频繁了,请稍后再试',
            })

        chat = chat_query[0]
        if user == chat.hr:
            receiver = chat.job_hunter
        else:
            receiver = chat.hr
        chat_message = ChatMessage(
            chat=chat,
            sender=user,
            receiver=receiver,
            msg=msg,
        )
        chat_message.save()
        return JsonResponse({
            'status': 'ok',
            'msg': u'发送成功',
            'data': {
                'send_time':
                chat_message.send_time.strftime('%Y-%m-%d %H:%M:%S'),
                'id': chat_message.id,
            },
        })
Esempio n. 12
0
 def get(self, request):
     resume = self.get_user_resume()
     job_category = resume.job_category
     if not job_category:
         return JsonResponse({
             'status': 'data_error',
             'msg': 'no job category',
         })
     category_tag_query = PositionCategoryTag.objects.filter(
         category=job_category, ).values(
             'name',
             'id',
         )
     return JsonResponse({
         'status': 'ok',
         'msg': 'ok',
         'data': list(category_tag_query),
     })
Esempio n. 13
0
 def post(self, request):
     resume = self.get_user_resume()
     form = self.form(request.POST, instance=resume)
     if form.is_valid():
         form.save()
         asyn_sync_resume.delay(self.request.user)
         return JsonResponse({
             'status': 'ok',
             'msg': 'ok',
         })
     else:
         return JsonResponse({
             'status': 'form_error',
             'msg': '表单错误',
             'data': {
                 'errors': form.errors,
             }
         })
Esempio n. 14
0
    def get(self, request, job_id):
        user = self.request.user
        now = datetime.datetime.now()

        recommend_job = get_object_or_none(
            RecommendJob,
            id=job_id,
            user=user,
        )
        if not recommend_job:
            return JsonResponse({
                'status': 'data_error',
                'msg': u'数据有误',
            })

        if self.action == 'send':
            resume = ResumeUtils.get_resume(user)
            if not SyncResume.is_valid_resume(resume):
                return JsonResponse({
                    'status': 'valid_resume',
                    'msg': '简历不全',
                    'redirect_url': '%s?send=True' % reverse('resume-show-resume'),
                    'operation': self.action,
                })

        job = recommend_job.job

        with transaction.atomic():
            need_add_times = (recommend_job.read_status == 'unread')
            recommend_job.read_status = 'read'
            recommend_job.action = self.action
            recommend_job.action_time = now
            recommend_job.company_action_time = now
            recommend_job.save()
            self.extra_operation(job, recommend_job)

            if need_add_times:
                self.add_reco_times()

        return JsonResponse({
            'status': 'ok',
            'msg': self.msg,
            'operation': self.action,
        })
Esempio n. 15
0
 def get(self, request):
     resume = self.get_user_resume()
     gender = resume.gender
     return JsonResponse({
         'status': 'ok',
         'msg': 'ok',
         'data': {
             'gender': gender,
         }
     })
Esempio n. 16
0
    def get(self, request):
        resume = self.get_user_resume()
        salary_lowest = resume.salary_lowest

        return JsonResponse({
            'status': 'ok',
            'msg': '成功',
            'data': {
                'salary_lowest': salary_lowest,
            },
        })
Esempio n. 17
0
 def post(self, request):
     work_years = get_int(request.POST.get('work_years'))
     if work_years not in self.work_year_meta:
         return JsonResponse({
             'status': 'form_error',
             'msg': '请选择正确的工作年限',
             'data': {
                 'work_years': work_years,
             }
         })
     resume = self.get_user_resume()
     resume.work_years = work_years
     resume.save()
     return JsonResponse({
         'status': 'ok',
         'msg': 'ok',
         'data': {
             'work_years': work_years,
         }
     })
Esempio n. 18
0
    def get(self, request):
        resume = self.get_user_resume()
        job_category = resume.job_category
        if not job_category:
            return JsonResponse({
                'status': 'no_category',
                'msg': '没有选择职位类别',
                'data': {},
            })
        resume_tag = resume.position_tags.filter().values('position_tag__id', )
        category_tag_query = PositionCategoryTag.objects.select_related(
            'child_tags').filter(
                category=job_category,
                parent=None,
            )

        category_tag = [{
            'id':
            c.id,
            'name':
            c.name,
            'child':
            list(c.child_tags.all().values(
                'id',
                'name',
            )),
        } for c in category_tag_query]

        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'resume_tag': list(resume_tag),
                'category_tag': list(category_tag),
                'previous_tag': {
                    'id': job_category.id,
                    'name': job_category.name,
                    'level': 1,
                },
            }
        })
Esempio n. 19
0
 def get(self, request, card_id):
     user = self.request.user
     CompanyCardJob.objects.filter(
         user=user,
         id=card_id,
     ).update(
         delete=self.action
     )
     return JsonResponse({
         'status': 'ok',
         'msg': self.msg,
     })
Esempio n. 20
0
    def get(self, request):
        resume = self.get_user_resume()
        degree = resume.degree

        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'degree': degree,
                'degree_meta': self.degree_meta,
            }
        })
Esempio n. 21
0
    def post(self, request):
        degree = request.POST.get('degree')
        if degree not in self.degree_keys:
            return JsonResponse({
                'status': 'form_error',
                'msg': '选择正确的学历',
                'data': {
                    'degree': degree,
                }
            })

        resume = self.get_user_resume()
        resume.degree = degree
        resume.save()
        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'degree': degree,
            }
        })
Esempio n. 22
0
    def get(self, request):
        resume = self.get_user_resume()
        work_years = resume.work_years

        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'work_years': work_years,
                'work_year_meta': self.work_year_meta,
            }
        })
Esempio n. 23
0
    def post(self, request):
        salary_lowest_str = request.POST.get('salary_lowest', '0')
        salary_lowest = get_int(salary_lowest_str)
        if salary_lowest > self.SALARY_MAX or salary_lowest < self.SALARY_MIN:
            return JsonResponse({
                'status':
                'form_error',
                'msg':
                '最低薪资范围必须在%s-%s之间' % (self.SALARY_MIN, self.SALARY_MAX),
                'data': {
                    'salary_lowest': salary_lowest
                }
            })

        resume = self.get_user_resume()
        resume.salary_lowest = salary_lowest
        resume.save()
        return JsonResponse({
            'status': 'ok',
            'msg': '保存成功',
        })
Esempio n. 24
0
    def get(self, request, company_id):
        company = get_object_or_none(
            Company,
            id=company_id,
        )

        if not company:
            return JsonResponse({
                'status': 'data_error',
                'msg': '数据有误',
            })

        user = request.user
        fav_record = UserFavourCompany.objects.filter(
            company=company,
            user=user,
        )

        if fav_record:
            fav_record.delete()
            company.favour_count -= 1
            action = 'cancel'
        else:
            fav_record = UserFavourCompany(
                company=company,
                user=user,
            )
            fav_record.save()
            company.favour_count += 1
            action = 'favour'
        company.save()

        return JsonResponse({
            'status': 'ok',
            'msg': '操作成功',
            'data': {
                'action': action,
            }
        })
Esempio n. 25
0
 def get(self, request):
     resume = self.get_user_resume()
     expectation_area = resume.expectation_area.filter().values(
         'city__id', )
     city = City.objects.filter().values('id', 'name')
     return JsonResponse({
         'status': 'ok',
         'msg': 'ok',
         'data': {
             'city': list(city),
             'expectation_area': list(expectation_area),
         }
     })
Esempio n. 26
0
 def get(self, request, job_id):
     user = request.user
     with transaction.atomic():
         RecommendJob.objects.filter(
             user=user,
             id=job_id,
             company_action__in=['no_reply', 'unfit'],
         ).update(
             delete=True,
         )
     return JsonResponse({
         'status': 'ok',
         'msg': '删除成功',
     })
Esempio n. 27
0
    def get(self, request):
        from ws4redis.publisher import RedisPublisher
        from ws4redis.redis_store import RedisMessage

        redis_publisher = RedisPublisher(
            facility='notify',
            users=('*****@*****.**', ),
        )
        message = RedisMessage('Hello World')
        redis_publisher.publish_message(message)

        return JsonResponse({
            'status': 'ok',
        })
Esempio n. 28
0
    def post(self, request, page_type):

        form = SocialPageForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            url = data['url']
            resume = self.get_user_resume()
            social_page = self.get_social_page(resume)
            social_page.__dict__[page_type] = url
            social_page.save()

            return JsonResponse({
                'status': 'ok',
                'msg': '保存成功',
            })
        else:
            return JsonResponse({
                'status': 'form_error',
                'msg': '表单错误',
                'data': {
                    'errors': form.errors,
                }
            })
Esempio n. 29
0
    def get(self, request, obj_id):
        resume = self.get_user_resume()
        self.model.objects.filter(
            resume=resume,
            id=obj_id,
        ).delete()

        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'obj_id': obj_id,
            },
        })
Esempio n. 30
0
    def post(self, request):
        tag_id = request.POST.get('tag_id', '0')
        tag = get_object_or_none(
            PositionCategoryTag,
            id=tag_id,
        )
        if not tag:
            return JsonResponse({
                'status': 'form_error',
                'msg': '请选择正确的标签',
            })

        resume = self.get_user_resume()
        job_category = resume.job_category
        if not job_category:
            return JsonResponse({
                'status': 'data_error',
                'msg': 'no job category',
            })

        has_tag = resume.position_tags.filter(position_tag__name=tag.name)
        if not has_tag:
            resume_tag = ResumePositionTag(
                resume=resume,
                position_tag=tag,
            )
            resume_tag.save()
        return JsonResponse({
            'status':
            'ok',
            'msg':
            '添加成功',
            'data': [{
                'name': t.position_tag.name,
                'id': t.id,
            } for t in resume.position_tags.all()],
        })