-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMaquina.py
More file actions
96 lines (77 loc) · 3.03 KB
/
Maquina.py
File metadata and controls
96 lines (77 loc) · 3.03 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# -*- coding: utf-8 -*-
from datetime import datetime, timedelta
from django.db import models
from django.urls import reverse
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from LabModule.app_models.Mueble import Mueble
permissions_machine = (
('can_addMachine', 'maquina||agregar'),
('can_editMachine', 'maquina||editar'),
('can_listMachine', 'maquina||listar'),
('can_viewMachine', 'maquina||ver'),
('can_requestMachine', 'maquina||solicitar'),
)
class Maquina(models.Model):
"""Representación de una máquina.
Se encarga de:
* Definir las restricciónes basicas de los campos
* Permite guardar en la base de datos la máquina
Atributos:
:nombre (String): Nombre de la máquina, máxima longitud 100 caractéres, no puede ser nulo.
:descripción (String): Descripción de la máquina, máxima longitud 1000 caractéres, no puede ser nulo.
:imagen (ImafeField): Imágen de la máquina, default='images/image-not-found.jpg'.
:idSistema (String): Identificación del laboratorio, máxima longitud de 20 caractéres.
:con_reserva (boolean): Dice si es necesario aprobar la máquina para ser reservada. Por defecto verdadero
:activa (boolean): Dice si la máquina se puede solicitar. Por defecto verdadero
Permisos:
:can_addMachine: Permite agregar maquinas
:can_edditMachine: Permite modificar maquinas
:can_viewMachine: Permite modificar maquinas
"""
class Meta:
verbose_name = _("Máquina")
verbose_name_plural = _('Máquinas')
app_label = 'LabModule'
permissions = permissions_machine
idSistema = models.CharField(
max_length = 20,
default = '',
verbose_name = _("Identificación"),
null = False,
primary_key = True
)
fechaInicialDisp = models.DateTimeField(
blank = False,
null = True,
verbose_name = _("Fecha Inicial"),
default = timezone.now
)
fechaFinalDisp = models.DateTimeField(
blank = False,
null = True,
verbose_name = _("Fecha Final"),
default = datetime.now() + timedelta(days = 30)
)
mueble = models.OneToOneField(
Mueble,
null = True,
on_delete = models.CASCADE,
related_name = '%(app_label)s_%(class)s_related'
)
con_reserva = models.BooleanField(
default = True,
verbose_name = _("Reservable")
)
def __unicode__(self):
return self.mueble.__unicode__()
def get_nombre(self):
return self.mueble.get_nombre()
def get_descripcion(self):
return self.mueble.get_descripcion()
def get_estado(self):
return self.mueble.get_estado()
def get_imagen(self):
return self.mueble.imagen
def get_absolute_url(self):
return reverse('author-detail', kwargs = {'pk': self.pk})