Esempio n. 1
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. 2
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. 3
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. 4
0
    def company_card_interest(cls, job, job_id, interest_type):
        job_id = get_int(job_id)

        if not job_id:
            return False

        company_card_job = get_object_or_none(
            CompanyCardJob,
            job=job,
            id=job_id,
            status='waiting',
        )

        if not company_card_job:
            return False

        now = datetime.datetime.now()
        if interest_type == 1:
            company_card_job.status = 'accept'
        else:
            company_card_job.status = 'reject'

        company_card_job.action_time = now
        company_card_job.save()
        return company_card_job
Esempio n. 5
0
 def get_last_week_report(self):
     last_week_report = get_object_or_none(
         WeekReport,
         start_date=self.last_start_date,
         end_date=self.last_end_date + datetime.timedelta(days=-1),
     )
     return last_week_report
Esempio n. 6
0
    def check_in_result(self):
        username = self.cleaned_data['username']
        password = self.cleaned_data['password']

        user = get_object_or_none(
            User,
            username=username,
        )
        if not user:
            user_profile = self.save()
            self.send_active_email(user_profile.user)
            return {
                'status': 'register_success',
                'msg': u'注册成功',
            }
        auth_user = authenticate(username=username, password=password)
        if auth_user:
            login(self.request, auth_user)
            return {
                'status': 'ok',
                'msg': u'登录成功',
            }
        else:
            return {
                'status': 'passwd_error',
                'msg': u'密码错误',
            }
Esempio n. 7
0
    def get_context_data(self, **kwargs):
        context = super(RecommendJobList, self).get_context_data(**kwargs)
        data = context.get('data', [])

        user = self.request.user
        for job in data:
            company_id = job['job__company__id']
            has_favour = True if get_object_or_none(
                UserFavourCompany,
                company__id=company_id,
                user=user,
            ) else False
            job['has_favour'] = has_favour
            job['job__company__url'] = get_http_url(job['job__company__url'])
            job['job__company__product_url'] = get_http_url(job['job__company__product_url'])

            company_query = Company.objects.filter(
                id=company_id
            )

            if not company_query:
                job['company_category'] = []
                continue
            company = company_query[0]
            job['company_category'] = list(company.category.all().values_list('category', flat=True))
            job['job_welfare'] = [i for i in job['job__job_welfare'].split(',') if i]

        context['resume_tag'] = self.get_resume_tag()
        return context
Esempio n. 8
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. 9
0
    def get_card_context(self, job, job_type='job'):
        '''
        为了兼容Feed和企业名片
        job_type: job是企业名片
                  feed 是专属定制
        '''
        user = self.request.user

        return {
            'pinbot_recommend': job.company.pinbot_recommend if job.company else '',
            'key_points': job.company.key_points if job.company else '',
            'company_desc': job.company.desc if job.company else '',
            'company_name': job.company.company_name if job.company else '',
            'address': job.address if job_type == 'job' else job.expect_area,
            'title': job.title,
            'salary_low': job.salary_low if job_type == 'job' else job.salary_min,
            'salary_high': job.salary_high if job_type == 'job' else job.salary_max,
            'desc': job.desc if job_type == 'job' else job.job_desc,
            'skill_desc': job.skill_desc if job_type == 'job' else job.skill_required,
            'product_url': get_http_url(job.company.product_url) if job.company else '',
            'url': get_http_url(job.company.url) if job.company else '',
            'company_stage': job.company.url if job.company else '',
            'company_category': [i.category for i in job.company.category.all()] if job.company else [],
            'company_id': job.company.id if job.company else '',
            'company_favour_count': job.company.favour_count if job.company else '',
            'has_favour': True if job.company and get_object_or_none(UserFavourCompany, company__id=job.company.id, user=user) else False,
            'job_welfare': [] if job_type == 'job' else [i for i in job.job_welfare.split(',') if i],
        }
Esempio n. 10
0
    def check_in_result(self):
        username = self.cleaned_data['username']
        password = self.cleaned_data['password']

        user = get_object_or_none(
            User,
            username=username,
        )
        if not user:
            user_profile = self.save()
            self.send_active_email(user_profile.user)
            return {
                'status': 'register_success',
                'msg': u'注册成功',
            }
        auth_user = authenticate(username=username, password=password)
        if auth_user:
            login(self.request, auth_user)
            return {
                'status': 'ok',
                'msg': u'登录成功',
            }
        else:
            return {
                'status': 'passwd_error',
                'msg': u'密码错误',
            }
Esempio n. 11
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. 12
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. 13
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. 14
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. 15
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. 16
0
    def get(self, request, activation_key):
        user_token = get_object_or_none(
            UserToken,
            token=activation_key,
            active=True,
            token_type='register',
        )

        if user_token and user_token.user.brick_user_profile.is_active:
            return render(
                request,
                self.template,
                {
                    'status': 'already_active',
                    'msg': u'您已激活邮箱,请继续登陆',
                }
            )
        if not user_token:
            return render(
                request,
                self.template,
                {
                    'status': 'token_error',
                    'msg': u'无效的激活链接',
                }
            )

        user = user_token.user

        if not default_token_generator.check_token(
                user,
                user_token.token):
            return render(
                request,
                self.template,
                {
                    'status': 'token_expire',
                    'msg': u'链接已失效',
                    'user': user,
                }
            )

        with transaction.atomic():
            user.is_active = True
            user_token.active = False
            user.brick_user_profile.is_active = True
            user.save()
            user_token.save()
            user.brick_user_profile.save()

        return render(
            request,
            self.template,
            {
                'status': 'success',
                'msg': u'激活成功',
            },
        )
Esempio n. 17
0
 def get_social_page(self, resume):
     social_page = get_object_or_none(
         SocialPage,
         resume=resume,
     )
     if not social_page:
         social_page = SocialPage(resume=resume)
         social_page.save()
     return social_page
Esempio n. 18
0
 def get_social_page(self, resume):
     social_page = get_object_or_none(
         SocialPage,
         resume=resume,
     )
     if not social_page:
         social_page = SocialPage(
             resume=resume
         )
         social_page.save()
     return social_page
Esempio n. 19
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. 20
0
    def add_chat(cls, job_card, hr_user, user, chat_type='job'):

        if chat_type == 'job':
            chat = get_object_or_none(
                Chat,
                job_hunter=user,
                hr=hr_user,
                job=job_card,
            )

            if not chat:
                resume = ResumeUtils.get_resume(user)
                chat = Chat(
                    job_hunter=user,
                    hr=hr_user,
                    job=job_card,
                    resume=resume,
                )
                chat.save()
        else:
            chat = get_object_or_none(
                Chat,
                job_hunter=user,
                hr=hr_user,
                feed=job_card,
                chat_type=chat_type,
            )

            if not chat:
                resume = ResumeUtils.get_resume(user)
                chat = Chat(
                    job_hunter=user,
                    hr=hr_user,
                    feed=job_card,
                    resume=resume,
                    chat_type=chat_type,
                )
                chat.save()
        return chat
Esempio n. 21
0
    def clean_invite_code(self):
        code = self.cleaned_data['invite_code']

        if code in self.SPECIAL_CODE:
            # special code must valid code and apply email
            # because those code are duplicate
            email = self.data['username']
            invite_code = get_object_or_none(
                InviteCodeApply,
                email=email,
                invite_code=code,
                status='success',
            )
            if not invite_code:
                raise forms.ValidationError('邀请码必须跟申请邀请码邮箱一致')
        else:
            invite_code = get_object_or_none(InviteCode,
                                             code=code,
                                             status='unused')
            if not invite_code:
                raise forms.ValidationError('邀请码不正确!')
        return code
Esempio n. 22
0
    def add_chat(cls, job_card, hr_user, user, chat_type='job'):

        if chat_type == 'job':
            chat = get_object_or_none(
                Chat,
                job_hunter=user,
                hr=hr_user,
                job=job_card,
            )

            if not chat:
                resume = ResumeUtils.get_resume(user)
                chat = Chat(
                    job_hunter=user,
                    hr=hr_user,
                    job=job_card,
                    resume=resume,
                )
                chat.save()
        else:
            chat = get_object_or_none(
                Chat,
                job_hunter=user,
                hr=hr_user,
                feed=job_card,
                chat_type=chat_type,
            )

            if not chat:
                resume = ResumeUtils.get_resume(user)
                chat = Chat(
                    job_hunter=user,
                    hr=hr_user,
                    feed=job_card,
                    resume=resume,
                    chat_type=chat_type,
                )
                chat.save()
        return chat
Esempio n. 23
0
    def clean_invite_code(self):
        code = self.cleaned_data['invite_code']

        if code in self.SPECIAL_CODE:
            # special code must valid code and apply email
            # because those code are duplicate
            email = self.data['username']
            invite_code = get_object_or_none(
                InviteCodeApply,
                email=email,
                invite_code=code,
                status='success',
            )
            if not invite_code:
                raise forms.ValidationError('邀请码必须跟申请邀请码邮箱一致')
        else:
            invite_code = get_object_or_none(
                InviteCode,
                code=code,
                status='unused'
            )
            if not invite_code:
                raise forms.ValidationError('邀请码不正确!')
        return code
Esempio n. 24
0
    def clean_username(self):
        username = self.cleaned_data['username'].lower()

        if error_email(username):
            raise forms.ValidationError('请输入正确格式的邮箱!')

        self.user = get_object_or_none(User, username=username)

        try:
            brick_profile = self.user.brick_user_profile if self.user else None
        except UserProfile.DoesNotExist:
            brick_profile = None

        if brick_profile:
            raise forms.ValidationError('用户名已存在')
        return username
Esempio n. 25
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. 26
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. 27
0
    def clean_username(self):
        username = self.cleaned_data['username'].lower()

        if error_email(username):
            raise forms.ValidationError('请输入正确格式的邮箱!')

        self.user = get_object_or_none(
            User,
            username=username
        )

        try:
            brick_profile = self.user.brick_user_profile if self.user else None
        except UserProfile.DoesNotExist:
            brick_profile = None

        if brick_profile:
            raise forms.ValidationError('用户名已存在')
        return username
Esempio n. 28
0
    def post(self, request, token):
        user_token = get_object_or_none(
            UserToken,
            token=token,
            active=True,
            token_type='reset',
        )

        if not user_token:
            return JsonResponse({
                'status': 'token_error',
                'msg': u'无效的链接',
            })

        user = user_token.user
        if not default_token_generator.check_token(
                user,
                user_token.token):
            return JsonResponse({
                'status': 'token_expire',
                'msg': u'链接已失效',
            })

        form = ResetPasswordForm(request.POST, user=user)
        if form.is_valid():

            with transaction.atomic():
                form.change_user_password()
                user_token.active = False
                user_token.save()

            return JsonResponse({
                'status': 'ok',
                'msg': u'修改成功',
            })
        else:
            return JsonResponse({
                'status': 'form_error',
                'msg': '表单错误',
                'errors': form.errors,
            })
Esempio n. 29
0
    def get(self, request):
        username = self.request.GET.get('username', '')

        if error_email(username):
            return JsonResponse({
                'status': 'form_error',
                'msg': '邮件格式错误',
            })

        user = get_object_or_none(
            User,
            username=username
        )

        if not user:
            return JsonResponse({
                'status': 'ok',
                'msg': '可以使用',
            })

        try:
            brick_profile = user.brick_user_profile
        except UserProfile.DoesNotExist:
            brick_profile = None

        if brick_profile:
            return JsonResponse({
                'status': 'user_exists',
                'msg': '该邮箱已存在,请直接',
            })

        if user and not brick_profile:
            return JsonResponse({
                'status': 'company_user',
                'msg': '你已是企业版用户,输入邀请码即可',
            })

        return JsonResponse({
            'status': 'ok',
            'msg': '可以使用',
        })
Esempio n. 30
0
    def send_company_card(cls, hr_user, job, resume_id, token):
        if not resume_id:
            return False

        resume = get_object_or_none(
            Resume,
            resume_id=resume_id,
        )
        not_need_send = (not resume or resume.user == hr_user)

        if not_need_send:
            return False

        company_card_job = CompanyCardJob(
            job=job,
            hr_user=hr_user,
            user=resume.user,
            token=token,
        )
        company_card_job.save()
        return company_card_job
Esempio n. 31
0
    def week_report_task(self):
        self.init_date()
        self.init_last_date()

        week_report = get_object_or_none(
            WeekReport,
            start_date=self.start_date,
            end_date=self.end_date + datetime.timedelta(days=-1),
        )
        if not week_report:
            week_report = WeekReport(
                start_date=self.start_date,
                end_date=self.end_date + datetime.timedelta(days=-1),
            )

        self.week_report_count(week_report)
        self.remain_user_percent(week_report)
        self.week_report_chain(week_report)

        week_report.save()
        return week_report
Esempio n. 32
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()
            ],
        })
Esempio n. 33
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. 34
0
    def get(self, request, token):
        user_token = get_object_or_none(
            UserToken,
            token=token,
            active=True,
            token_type='reset',
        )

        if not user_token:
            return render(
                request,
                self.template,
                {
                    'status': 'token_error',
                    'msg': u'无效的链接',
                }
            )
        return render(
            request,
            self.template,
            {},
        )
Esempio n. 35
0
    def daily_report_task(self):
        '''
        C端每天运营数据
        凌晨1点开始跑
        '''
        self.init_date()
        daily_report = get_object_or_none(
            DailyReport,
            report_date=self.YESTERDAY,
        )
        if not daily_report:
            daily_report = DailyReport(
                report_date=self.YESTERDAY,
            )

        self.invite_code_report(daily_report)
        self.user_report(daily_report)
        self.job_report(daily_report)
        self.favour_company_report(daily_report)

        daily_report.save()
        return daily_report
Esempio n. 36
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()],
        })
Esempio n. 37
0
    def get(self, request, email):
        user_profile = get_object_or_none(
            UserProfile,
            user__username=email,
        )
        if not user_profile:
            return JsonResponse({
                'status': 'not_found_user',
                'msg': u'用户不存在!',
            })

        if self.malice_ip():
            return JsonResponse({
                'status': 'malice',
                'msg': u'操作太频繁啦,稍后再试试!'
            })

        user = user_profile.user
        mail_result = self.send_active_email(user)
        return JsonResponse({
            'status': 'ok',
            'msg': u'发送成功!',
            'mail_result': mail_result,
        })
Esempio n. 38
0
    def post(self, request):
        resume = self.get_user_resume()
        job_category = resume.job_category
        if not job_category:
            return JsonResponse({
                'status': 'no_category',
                'msg': '没有选择职位类别',
                'data': {},
            })

        category_tag = request.POST.getlist('tag[]', '')

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

        with transaction.atomic():
            ResumePositionTag.objects.filter(resume=resume).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)

        if len(tag) == 1:
            child_tags = tag[0].child_tags.all().values(
                'id',
                'name',
            )
            previous_tag = {
                'id': tag[0].id,
                'name': tag[0].name,
            }
        else:
            child_tags = []
            previous_tag = {}

        resume_tag = resume.position_tags.filter().values('position_tag__id', )

        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'category_tag': list(child_tags),
                'resume_tag': list(resume_tag),
                'previous_tag': previous_tag,
            }
        })
Esempio n. 39
0
    def post(self, request):
        resume = self.get_user_resume()
        job_category = resume.job_category
        if not job_category:
            return JsonResponse({
                'status': 'no_category',
                'msg': '没有选择职位类别',
                'data': {
                },
            })

        category_tag = request.POST.getlist('tag[]', '')

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

        with transaction.atomic():
            ResumePositionTag.objects.filter(
                resume=resume
            ).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)

        if len(tag) == 1:
            child_tags = tag[0].child_tags.all().values(
                'id',
                'name',
            )
            previous_tag = {
                'id': tag[0].id,
                'name': tag[0].name,
            }
        else:
            child_tags = []
            previous_tag = {}

        resume_tag = resume.position_tags.filter().values(
            'position_tag__id',
        )

        return JsonResponse({
            'status': 'ok',
            'msg': 'ok',
            'data': {
                'category_tag': list(child_tags),
                'resume_tag': list(resume_tag),
                'previous_tag': previous_tag,
            }
        })