67 lines
2.5 KiB
Python
67 lines
2.5 KiB
Python
from django.db import models
|
|
from django.contrib.auth.models import User
|
|
from Sistemas.models import Sistema
|
|
from rest_framework.authtoken.models import Token
|
|
|
|
import re
|
|
|
|
class ClientesA24(models.Model):
|
|
RFC = models.CharField(max_length=13, unique=True)
|
|
Nombre = models.CharField(max_length=100)
|
|
Activo = models.BooleanField(default=False)
|
|
fecha_baja = models.DateField(blank=True,null=True)
|
|
class Meta:
|
|
ordering = ('-Activo','RFC',)
|
|
abstract=True
|
|
def __str__(self):
|
|
return self.Nombre
|
|
|
|
class Sistemas_por_cliente_A24(models.Model):
|
|
id_sistema= models.ForeignKey(Sistema, related_name='sistema_spc_IMMEX', on_delete=models.CASCADE)
|
|
cliente = models.ForeignKey(ClientesA24, related_name='cliente_spc_IMMEX', on_delete=models.CASCADE)
|
|
num_licencias= models.IntegerField(default=1)
|
|
def __str__(self):
|
|
return f'{self.cliente.Nombre}'
|
|
class Meta:
|
|
ordering= ('-cliente','id_sistema')
|
|
unique_together = ('id_sistema', 'cliente')
|
|
abstract=True
|
|
|
|
class DeviceA24(models.Model):
|
|
clienteA24 = models.ForeignKey(ClientesA24,on_delete=models.CASCADE)
|
|
deviceName = models.CharField(max_length=255)
|
|
deviceOS = models.CharField(max_length=255)
|
|
deviceIP = models.GenericIPAddressField()
|
|
token = models.ForeignKey(Token, on_delete=models.CASCADE,to_field='key', max_length=40, blank=True,null=True)
|
|
username = models.ForeignKey(User, on_delete=models.CASCADE)
|
|
sistema = models.ForeignKey(Sistema, on_delete=models.CASCADE)
|
|
MAC = models.CharField(max_length=30, blank=True, null=True)
|
|
dataBase = models.CharField(max_length=40, blank=True,null=True)
|
|
timestamp = models.DateTimeField(auto_now_add=True)
|
|
|
|
class Meta:
|
|
ordering = ('username',)
|
|
abstract=True
|
|
|
|
|
|
def generate_username(self):
|
|
""""""
|
|
username_ = f"SCAII_{self.clienteA24}_{self.deviceName}_{self.MAC}"
|
|
username_ = re.sub(r'\W+', '', username_)
|
|
|
|
if User.objects.filter(username=username_).exists():
|
|
return User.objects.get(username=username_)
|
|
return User.objects.create_user(username=username_)
|
|
|
|
def save(self,*args, **kwargs):
|
|
"""Overrides save method"""
|
|
if not self.pk:
|
|
obj = self.generate_username()
|
|
self.username=obj
|
|
token, created = Token.objects.get_or_create(user=obj)
|
|
|
|
self.token = token
|
|
super().save(*args, **kwargs)
|
|
|
|
def __str__(self):
|
|
return f'{self.username}' |