34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
import uuid
|
|
from django.db import models
|
|
from django.contrib.auth.models import AbstractUser
|
|
|
|
# Create your models here.
|
|
class CustomUser(AbstractUser):
|
|
"""
|
|
Custom user model that extends the default Django user model.
|
|
"""
|
|
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
organizacion = models.ForeignKey('organization.Organizacion', on_delete=models.CASCADE, null=True, blank=True, related_name='users')
|
|
profile_picture = models.ImageField(upload_to='profile_pictures/', null=True, blank=True)
|
|
|
|
# Contexto de trabajo activo para superusuarios. Filtra datos igual que un usuario normal.
|
|
# Sin este campo activo, el superuser no puede consultar datos — debe hacer switch primero.
|
|
active_organization = models.ForeignKey(
|
|
'organization.Organizacion',
|
|
on_delete=models.SET_NULL,
|
|
null=True,
|
|
blank=True,
|
|
related_name='superusers_activos',
|
|
help_text="Solo superusuarios: organización activa para contexto de trabajo",
|
|
)
|
|
|
|
is_importador = models.BooleanField(default=False, help_text="Indicates if the user is an importer")
|
|
rfc = models.ManyToManyField('customs.Importador', blank=True, related_name='users', help_text="RFCs de importadores asociados al usuario")
|
|
|
|
def __str__(self):
|
|
return self.username
|
|
|
|
class Meta:
|
|
verbose_name = 'Custom User'
|
|
verbose_name_plural = 'Custom Users'
|
|
ordering = ['username'] |