snapshot: preserve account profile inline editing and avatar flow

This commit is contained in:
Md Bayazid Bostame
2026-03-27 02:06:52 +01:00
parent 8d228723f9
commit 358a71230d
13 changed files with 1462 additions and 398 deletions

View File

@@ -25,6 +25,30 @@ class EmployeeProfile(models.Model):
return f"{self.full_name} <{self.work_email}>"
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='profile')
avatar_image = models.FileField(
upload_to='profiles/',
blank=True,
null=True,
validators=[FileExtensionValidator(allowed_extensions=['png', 'jpg', 'jpeg', 'webp', 'svg'])],
)
phone_number = models.CharField(max_length=80, blank=True, default='')
mobile_number = models.CharField(max_length=80, blank=True, default='')
job_title = models.CharField(max_length=255, blank=True, default='')
department = models.CharField(max_length=255, blank=True, default='')
location = models.CharField(max_length=255, blank=True, default='')
contact_notes = models.CharField(max_length=255, blank=True, default='')
updated_at = models.DateTimeField(auto_now=True)
class Meta:
verbose_name = 'User Profile'
verbose_name_plural = 'User Profiles'
def __str__(self) -> str:
return getattr(self.user, 'username', '') or str(self.user_id)
class PortalBranding(models.Model):
name = models.CharField(max_length=80, default='Default', unique=True)
portal_title = models.CharField(max_length=255, default='Workdock')