|
|
from django.db import models
|
|
|
from reymotausers.models import ReyMotaUser
|
|
|
from django.utils import timezone
|
|
|
|
|
|
|
|
|
class Evento(models.Model):
|
|
|
nombre = models.CharField(max_length=100)
|
|
|
descripcion = models.TextField()
|
|
|
fecha = models.DateField()
|
|
|
hora = models.TimeField(default=timezone.now) # Nuevo campo para la hora
|
|
|
|
|
|
plazas_disponibles = models.PositiveIntegerField()
|
|
|
publicado = models.BooleanField(default=False) # Nuevo campo para la publicación
|
|
|
url_imagen = models.TextField(blank=True, null=True) # Campo para la URL de la imagen
|
|
|
|
|
|
def __str__(self):
|
|
|
return self.nombre
|
|
|
|
|
|
def plazas_restantes(self):
|
|
|
return self.plazas_disponibles - self.reservas.count()
|
|
|
|
|
|
|
|
|
class Reserva(models.Model):
|
|
|
evento = models.ForeignKey(
|
|
|
Evento, related_name="reservas", on_delete=models.CASCADE)
|
|
|
usuario = models.ForeignKey(ReyMotaUser, on_delete=models.CASCADE)
|
|
|
fecha_reserva = models.DateTimeField(auto_now_add=True)
|
|
|
|
|
|
def __str__(self):
|
|
|
return f'{self.usuario.nombre} - {self.evento.nombre} reserva realizada a las {self.fecha_reserva}'
|
|
|
|
|
|
|
|
|
class ListaEspera(models.Model):
|
|
|
evento = models.ForeignKey(Evento, on_delete=models.CASCADE, related_name="lista_espera")
|
|
|
usuario = models.ForeignKey(ReyMotaUser, on_delete=models.CASCADE)
|
|
|
fecha_apuntado = models.DateTimeField(auto_now_add=True)
|
|
|
|
|
|
def __str__(self):
|
|
|
return f'{self.usuario.nombre} en lista de espera para {self.evento.nombre}. Solicitada plaza el: {self.fecha_apuntado}'
|
|
|
|
|
|
|
|
|
class Noticia(models.Model):
|
|
|
titulo = models.CharField(max_length=200)
|
|
|
contenido = models.TextField()
|
|
|
fecha_publicacion = models.DateTimeField(auto_now_add=True)
|
|
|
autor = models.ForeignKey(ReyMotaUser, on_delete=models.SET_NULL, null=True)
|
|
|
publicado = models.BooleanField(default=False)
|
|
|
|
|
|
class Meta:
|
|
|
ordering = ['-fecha_publicacion'] # Ordena por fecha de publicación, de la más reciente a la más antigua
|
|
|
|
|
|
def __str__(self):
|
|
|
return self.titulo
|