from pingcap_sso.models import CompanyVerifyApplication, User from pingcap_sso import signals def approve_application(application, reviewer): application.status = CompanyVerifyApplication.STATUS_APPROVED application.reviewer = reviewer application.save() user = application.user user.company_name = application.company_name user.job_title_code = application.job_title_code user.job_title_text = application.job_title_text user.company_verified_status = User.COMPANY_VERIFIED_PASS user.save(update_fields=[ 'company_name', 'company_verified_status', 'job_title_code', 'job_title_text', ]) signals.company_verification_passed.send( sender='lib.company.approve_application', application=application ) def reject_application(application, reviewer, reason): application.status = CompanyVerifyApplication.STATUS_REJECTED application.reviewer = reviewer application.reason = reason application.save() user = application.user user.company_verified_status = User.COMPANY_UNVERIFIED user.save(update_fields=['company_verified_status']) signals.company_verification_rejected.send( sender='lib.company.reject_application', application=application ) def is_first_time_pass_company_verification(user): return CompanyVerifyApplication.objects.filter( user=user, status=CompanyVerifyApplication.STATUS_APPROVED ).count() == 1