models.py
2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from django.db import models
from django.core.validators import FileExtensionValidator
from organismo.models import Organismo, Dependencia
from .constant import DIAS_SEMANA
# Create your models here.
class Evento(models.Model):
class Meta:
ordering = 'titulo', 'categoria'
verbose_name = 'Evento'
verbose_name_plural = 'Eventos'
organismo = models.ManyToManyField(
Organismo,
related_name='evento_organismo',
blank=True
)
dependencia = models.ManyToManyField(
Dependencia,
related_name='evento_dependencia',
blank=True
)
fecha_inicio = models.DateField(verbose_name='Fecha de inicio del evento')
hora_inicio = models.TimeField(blank=False, verbose_name='Hora de apertura')
fecha_final = models.DateField(verbose_name='Fecha de cierre del evento')
hora_fin = models.TimeField(blank=False, verbose_name='Hora de cierre')
fechas = models.ManyToManyField(
'FechaEvento',
related_name='evento_fechas',
blank=True,
verbose_name='Días disponibles',
help_text='Por favor, indique los días disponibles para el evento'
)
titulo = models.CharField(max_length=350, null=False)
categoria = models.CharField(max_length=150, null=False)
direccion = models.URLField(
max_length=150,
verbose_name='Ubicación del evento',
help_text='Ingrese la url obtenida por google maps'
)
descripcion = models.TextField(null=False, verbose_name='Descripción')
url = models.URLField(
max_length=300,
blank=True,
verbose_name='Dirección Web'
)
imagen = models.ImageField(
upload_to='static/eventos',
validators=[FileExtensionValidator(allowed_extensions=['jpg', 'png'])],
blank=True,
verbose_name='Banner promocional'
)
def __str__(self):
return f'{self.titulo} - {self.descripcion}'
class FechaEvento(models.Model):
class Meta:
verbose_name = 'Fecha del Eventos'
verbose_name_plural = 'Fechas del Eventos'
duracion_evento = models.IntegerField(choices=DIAS_SEMANA, blank=False, verbose_name='Días de la semana')
dias = models.DateField(editable=False, blank=True, null=True)
def __str__(self):
return f'{self.duracion_evento}'