feat: admin panel enrichment

This commit is contained in:
mohamad
2026-07-19 14:31:28 +03:30
parent d8d7819eca
commit 1042fba121
77 changed files with 4616 additions and 2 deletions
+39
View File
@@ -0,0 +1,39 @@
import os
from allauth.account.adapter import DefaultAccountAdapter
from allauth.socialaccount.adapter import DefaultSocialAccountAdapter
from django.urls import reverse
from .models import ClientProfile
class TecvicoAccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request):
return reverse("projects:dashboard")
def get_signup_redirect_url(self, request):
return reverse("projects:dashboard")
class TecvicoSocialAccountAdapter(DefaultSocialAccountAdapter):
def save_user(self, request, sociallogin, form=None):
user = super().save_user(request, sociallogin, form)
self._apply_profile_names(user, sociallogin)
user.save()
ClientProfile.objects.get_or_create(user=user)
return user
def _apply_profile_names(self, user, sociallogin):
extra_data = sociallogin.account.extra_data or {}
if sociallogin.account.provider == "google":
if not user.first_name:
user.first_name = extra_data.get("given_name", "")
if not user.last_name:
user.last_name = extra_data.get("family_name", "")
return
if sociallogin.account.provider == "github" and not user.first_name:
name = (extra_data.get("name") or "").strip()
if name:
parts = name.split(" ", 1)
user.first_name = parts[0]
user.last_name = parts[1] if len(parts) > 1 else ""