Implement QR-code service request system with Telegram bot integration

🎯 Key Features:
- Added QR-code generation for service requests in modal window
- Integrated real-time verification via Telegram bot
- Implemented animated success confirmation
- Added status polling for request verification

�� Technical Changes:
- Fixed JavaScript syntax errors in modern-scripts.js
- Enhanced services_modern.html with QR-code section and success animation
- Added check_request_status API endpoint
- Improved CSS with success checkmark animations

🎨 UX Improvements:
- Centered QR-code display with proper styling
- Real-time status checking every 3 seconds
- Animated success confirmation only after Telegram verification
- Auto-close modal after successful confirmation

📱 Workflow:
1. User fills service request form
2. QR-code generated and displayed
3. User scans QR/clicks Telegram link
4. System polls for verification status
5. Success animation shows after Telegram confirmation
6. Modal auto-closes with notification

This completes the modern service request system with Telegram bot integration.
This commit is contained in:
2025-11-23 22:16:52 +09:00
parent 1edb781a25
commit 76c326083f
7 changed files with 601 additions and 295 deletions

View File

@@ -299,3 +299,19 @@ def complete_registration(request, request_id):
return JsonResponse({'status': 'success', 'message': 'Регистрация успешно завершена.'})
return render(request, 'web/complete_registration.html', {'service_request': service_request})
def check_request_status(request, request_id):
"""API endpoint для проверки статуса подтверждения заявки"""
try:
service_request = get_object_or_404(ServiceRequest, pk=request_id)
return JsonResponse({
'is_verified': service_request.is_verified,
'chat_id': service_request.chat_id,
'created_at': service_request.created_at.isoformat() if service_request.created_at else None
})
except ServiceRequest.DoesNotExist:
return JsonResponse({'error': 'Заявка не найдена'}, status=404)
except Exception as e:
logger.error(f"Ошибка при проверке статуса заявки {request_id}: {str(e)}")
return JsonResponse({'error': 'Ошибка сервера'}, status=500)