-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathSolicitud.py
More file actions
40 lines (33 loc) · 1.72 KB
/
Solicitud.py
File metadata and controls
40 lines (33 loc) · 1.72 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
# -*- coding: utf-8 -*-
import datetime
from django import forms
from django.db.models import Q
from django.forms import ModelForm
from LabModule.app_models.Solicitud import Solicitud
from LabModule.app_models.SolicitudMaquina import SolicitudMaquina
class SolicitudForm(ModelForm):
class Meta:
model = Solicitud
fields = ['fechaInicial', 'fechaFinal', 'descripcion', 'estado', 'solicitante', 'fechaActual', 'paso']
widgets = {
'fechaInicial': forms.DateInput(attrs = {'class': 'form-control date '}, format = ("%Y-%m-%d %H:%m")),
'fechaFinal' : forms.DateInput(attrs = {'class': 'form-control date '}, format = ("%Y-%m-%d %H:%m")),
}
def verificar_fecha(self, maquina_id, fechaIni, fechaFin):
solicitudes = Solicitud.objects.filter(
Q(fechaInicial = fechaIni, fechaFinal = fechaFin) |
Q(fechaInicial__lt = fechaIni, fechaFinal__gt = fechaIni) |
Q(fechaInicial__lte = fechaFin, fechaFinal__gte = fechaFin)).exclude(estado = 'rechazada')
for sol in solicitudes:
otras_maquinas = SolicitudMaquina.objects.filter(solicitud = sol.pk, maquina = maquina_id).count()
if otras_maquinas > 0:
return False
return True
def verificarDisponibilidad(self, start, end, fechaIni, fechaFin):
d_end = datetime.datetime.strptime(end, "%Y-%m-%d")
d_start = datetime.datetime.strptime(start, "%Y-%m-%d")
d_fechaIni = datetime.datetime.strptime(fechaIni[:-6], "%Y-%m-%d")
d_fechaFin = datetime.datetime.strptime(fechaFin[:-6], "%Y-%m-%d")
if d_start <= d_fechaIni <= d_end and d_start <= d_fechaFin <= d_end:
return True
return False