from django.db import transaction from pingcap_sso.models import TUGMember, TUGMemberApplication from pingcap_sso import signals def approve_application(application, reviewer): if application.user.is_tug_member: return False, '用户已经是 TUG 成员了' with transaction.atomic(): TUGMember.objects.create( real_name=application.real_name, phone=application.phone, email=application.email, company_name=application.company_name, job_title_code=application.job_title_code, job_title_text=application.job_title_text, stage_of_company_use_of_tidb=application.stage_of_company_use_of_tidb, reason_for_application=application.reason_for_application, preferred_way_of_sharing=application.preferred_way_of_sharing, roles_want_to_play=application.roles_want_to_play, wechat_id=application.wechat_id, bio=application.bio, channel=application.channel, referrer=application.referrer, user=application.user ) application.status = TUGMemberApplication.STATUS_PASS application.reviewer = reviewer application.save() signals.join_tug.send( sender='lib.tug.approve_application', user=application.user, application=application) return True, '' def reject_application(application, reviewer, reason): application.reviewer = reviewer application.status = TUGMemberApplication.STATUS_DENY application.review_comment = reason application.save() signals.reject_tug_applications.send( sender='lib.tug.approve_application', application=application)