30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from django.contrib.auth.models import AbstractUser
|
|
from django.db import models
|
|
|
|
class CustomUser(AbstractUser):
|
|
class Role(models.TextChoices):
|
|
SERVISER = 'SERVISER', 'Serviser'
|
|
PRODAJA = 'PRODAJA', 'Prodaja / Operativa'
|
|
KNJIGOVODSTVO = 'KNJIGOVODSTVO', 'Knjigovodstvo i financije'
|
|
ADMIN = 'ADMIN', 'Administrator'
|
|
|
|
# Email koristimo za login, pa mora biti jedinstven
|
|
email = models.EmailField(unique=True)
|
|
|
|
# Dodatna polja za tvoju tvrtku
|
|
telefon = models.CharField(max_length=20, blank=True)
|
|
oib = models.CharField(max_length=11, blank=True, null=True)
|
|
# 🚀 ZAMJENA: Umjesto is_serviser, uvodimo jedno polje za sve uloge
|
|
uloga = models.CharField(
|
|
max_length=20,
|
|
choices=Role.choices,
|
|
default=Role.SERVISER,
|
|
help_text="Glavna operativna uloga korisnika u ERP sustavu"
|
|
)
|
|
|
|
# Govorimo Djangu da koristi email umjesto username-a
|
|
USERNAME_FIELD = 'email'
|
|
REQUIRED_FIELDS = ['username', 'first_name', 'last_name']
|
|
|
|
def __str__(self):
|
|
return f"{self.first_name} {self.last_name} ({self.email}) - {self.get_uloga_display()}" |