Files
Acceso_QR/laboratorios/models.py
2025-04-17 00:18:43 -06:00

62 lines
3.1 KiB
Python

from django.db import models
from django.contrib.auth.models import User
import os
from model_utils import Choices
from universidad.models import laboratorio, asignatura, area, material
# Create your models here.
class lab(models.Model):
USO = Choices('Practica', 'Clase', 'Libre')
usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
id_lab = models.ForeignKey(laboratorio, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Laboratorio')
id_asig = models.ForeignKey(asignatura, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Asignatura')
id_area = models.ForeignKey(area, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Area')
id_mat = models.ForeignKey(material, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Material')
uso = models.CharField(choices=USO, default=USO.Clase, max_length=10, verbose_name='Tipo de Uso')
foto = models.ImageField(upload_to='foto/', blank=True)
entrada = models.DateField(auto_now_add=True, verbose_name='Entrada')
salida = models.DateField(auto_now=True, verbose_name='Salida')
fecha_alta = models.DateField(auto_now_add=True, verbose_name='Fecha alta')
fecha_actualizacion = models.DateField(auto_now=True, verbose_name='Fecha de Actualización')
def delete(self, *args, **kwargs):
if os.path.isfile(self.foto.path):
os.remove(self.foto.path)
super(User, self).delete(*args, **kwargs)
def __str__(self):
return self.entrada
class Meta:
verbose_name = 'Laboratorio'
verbose_name_plural = 'Laboratorios'
ordering = ['-entrada']
class labComputo(models.Model):
USO = Choices('Practica', 'Clase', 'Libre')
usuario = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
id_lab = models.ForeignKey(laboratorio, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Laboratorio')
id_asig = models.ForeignKey(asignatura, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Asignatura')
id_area = models.ForeignKey(area, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Area')
id_mat = models.ForeignKey(material, on_delete=models.CASCADE, null=True, blank=True, verbose_name='Material')
uso = models.CharField(choices=USO, default=USO.Clase, max_length=10, verbose_name='Tipo de Uso')
foto = models.ImageField(upload_to='foto/', blank=True)
entrada = models.DateTimeField(auto_now_add=True, verbose_name='Entrada')
salida = models.DateTimeField(auto_now=True, verbose_name='Salida')
fecha_alta = models.DateTimeField(auto_now_add=True, verbose_name='Fecha alta')
fecha_actualizacion = models.DateTimeField(auto_now=True, verbose_name='Fecha de Actualización')
def delete(self, *args, **kwargs):
if os.path.isfile(self.foto.path):
os.remove(self.foto.path)
super(User, self).delete(*args, **kwargs)
def __str__(self):
return self.entrada
class Meta:
verbose_name = 'Laboratorio'
verbose_name_plural = 'Laboratorios'
ordering = ['-id']