def reject_user_profile(user_id: str, update: Update) -> (str, bool): user = User.objects.get(id=user_id) if user.moderation_status == User.MODERATION_STATUS_REJECTED: return f"Пользователь «{user.full_name}» уже был отклонен и пошел все переделывать", True user.moderation_status = User.MODERATION_STATUS_REJECTED user.save() notify_user_profile_rejected(user) send_rejected_email(user) return f"❌ Пользователь «{user.full_name}» отклонен ({update.effective_user.full_name})", True
def reject_user_profile(user_id: str, update: Update) -> (str, bool): user = User.objects.get(id=user_id) if user.is_profile_rejected and user.is_profile_complete: return f"Пользователь «{user.full_name}» уже был отклонен и пошел все переделывать", True user.is_profile_complete = True user.is_profile_reviewed = True user.is_profile_rejected = True user.save() notify_user_profile_rejected(user) send_rejected_email(user) return f"❌ Пользователь «{user.full_name}» отклонен ({update.effective_user.full_name})", True
def reject_user_profile(update: Update, context: CallbackContext): code, user_id = update.callback_query.data.split(":", 1) reason = { "reject_user": UserRejectReason.intro, "reject_user_intro": UserRejectReason.intro, "reject_user_data": UserRejectReason.data, "reject_user_aggression": UserRejectReason.aggression, "reject_user_general": UserRejectReason.general, "reject_user_name": UserRejectReason.name, }.get(code) or UserRejectReason.intro user = User.objects.get(id=user_id) if user.moderation_status == User.MODERATION_STATUS_REJECTED: update.effective_chat.send_message( f"Пользователь «{user.full_name}» уже был отклонен и пошел все переделывать" ) update.callback_query.edit_message_reply_markup(reply_markup=None) return None if user.moderation_status == User.MODERATION_STATUS_APPROVED: update.effective_chat.send_message( f"Пользователь «{user.full_name}» уже был принят, его нельзя реджектить" ) update.callback_query.edit_message_reply_markup(reply_markup=None) return None user.moderation_status = User.MODERATION_STATUS_REJECTED user.save() notify_user_profile_rejected(user, reason) send_user_rejected_email(user, reason) update.effective_chat.send_message( f"❌ Пользователь «{user.full_name}» отклонен по причине «{reason.value}» ({update.effective_user.full_name})" ) # hide buttons update.callback_query.edit_message_reply_markup(reply_markup=None) return None