Skip to content

Commit

Permalink
Merge pull request #6 from JeremiasMartin/feature/solapas
Browse files Browse the repository at this point in the history
Feature/solapas
  • Loading branch information
diegoglz-dev authored Oct 29, 2023
2 parents 3f46b2a + e8ca770 commit 1a341a1
Show file tree
Hide file tree
Showing 13 changed files with 349 additions and 8 deletions.
64 changes: 62 additions & 2 deletions Proyecto/espacios_obligados/forms.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django import forms
from .models import Entidad, Sede, Provincias
from .models import Entidad, Sede, Provincias, DEA
from leaflet.forms.widgets import LeafletWidget
from django.contrib.gis.geos import Point
from django.contrib.gis import forms as gis_forms
Expand Down Expand Up @@ -34,4 +34,64 @@ def save(self, commit=True):
sede.ubicacion = coordenadas
if commit:
sede.save()
return sede
return sede



class EditSedeForm(forms.ModelForm):

ubicacion = gis_forms.PointField(widget=LeafletWidget())
class Meta:
model = Sede
fields = ['nombre', 'cant_personas_externas', 'superficie', 'cant_personal', 'direccion', 'ubicacion']

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['ubicacion'].required = False

def clean_ubicacion(self):
ubicacion = self.cleaned_data.get('ubicacion')
if not ubicacion:
raise forms.ValidationError('Debe seleccionar una ubicación en el mapa.')
return ubicacion

def save(self, commit=True):
sede = super().save(commit=False)
coordenadas = self.cleaned_data.get('ubicacion')
if coordenadas:
sede.ubicacion = coordenadas
if commit:
sede.save()
return sede


class DeclaracionJuradaForm(forms.ModelForm):
personal_capacitado = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'class': 'form-check-input'}))
senaletica = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'class': 'form-check-input'}))
protocolo_accion = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'class': 'form-check-input'}))
sistema_emergencia = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'class': 'form-check-input'}))
deas_decreto = forms.IntegerField(required=False, widget=forms.NumberInput(attrs={'class': 'form-control'}))

class Meta:
model = Sede
fields = ['personal_capacitado', 'senaletica', 'protocolo_accion', 'sistema_emergencia', 'deas_decreto']


class DEAForm(forms.ModelForm):
marca = forms.CharField(required=False, widget=forms.TextInput(attrs={'class': 'form-control'}))
modelo = forms.CharField(required=False, widget=forms.TextInput(attrs={'class': 'form-control'}))
numero_serie = forms.CharField(required=False, widget=forms.TextInput(attrs={'class': 'form-control'}))
nombre_representativo = forms.CharField(required=False, widget=forms.TextInput(attrs={'class': 'form-control'}))

class Meta:
model = DEA
fields = ['marca', 'modelo', 'numero_serie', 'nombre_representativo']


class DEAEditForm(forms.ModelForm):
numero_serie = forms.CharField(required=False, widget=forms.TextInput(attrs={'class': 'form-control'}))
nombre_representativo = forms.CharField(required=False, widget=forms.TextInput(attrs={'class': 'form-control'}))

class Meta:
model = DEA
fields = ['numero_serie', 'nombre_representativo']
Empty file.
36 changes: 32 additions & 4 deletions Proyecto/espacios_obligados/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Entidad(models.Model):
cuit = models.CharField(max_length=200)
sector = models.CharField(max_length=200)
tipo = models.CharField(max_length=200)

def __str__(self):
return self.razon_social

Expand All @@ -22,15 +23,42 @@ class Sede(models.Model):
ubicacion = gis_models.PointField()
cant_personal = models.IntegerField(default=0)
direccion = models.CharField(max_length=200)

# Declaración Jurada

personal_capacitado = models.BooleanField(default=False)
senaletica = models.BooleanField(default=False)
protocolo_accion = models.BooleanField(default=False)
sistema_emergencia = models.BooleanField(default=False)
deas_registrados = models.ManyToManyField('DEA', blank=True)
deas_decreto = models.IntegerField(default=0)


provincia = models.ForeignKey(Provincias, on_delete=models.CASCADE)
entidad = models.ForeignKey(Entidad, on_delete=models.CASCADE)

def __str__(self):
return self.nombre


class EspacioObligado(models.Model):
nombre = models.CharField(max_length=200)
class DEA(models.Model):
dea_sede = models.ForeignKey(Sede, on_delete=models.CASCADE)
aprobacion_ANMAT = models.BooleanField(default=False)
marca = models.CharField(max_length=200)
modelo = models.CharField(max_length=200)
numero_serie = models.CharField(max_length=200)
nombre_representativo = models.CharField(max_length=200)
estado = models.CharField(max_length=10, choices=[('activo', 'Activo'), ('inactivo', 'Inactivo')], default='activo')

def __str__(self):
return self.sede.nombre


class HistorialDEA(models.Model):
dea = models.ForeignKey(DEA, on_delete=models.CASCADE)
dia = models.DateField()
servicio = models.CharField(max_length=200)
observaciones = models.CharField(max_length=200, blank=True, null=True)

sede = models.ForeignKey(Sede, on_delete=models.CASCADE)
def __str__(self):
return self.nombre
return self.dea.nombre_representativo
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" id="info-tab" data-toggle="tab" href="{% url 'editar_sede' sede.id %}">Información de Entidad-Sede</a>
</li>
<li class="nav-item">
<a class="nav-link" id="condiciones-tab" data-toggle="tab" href="{% url 'declaracion_jurada' sede.id %}">Condiciones para Espacio Cardio Asistido</a>
</li>
<li class="nav-item">
<a class="nav-link" id="deas-tab" data-toggle="tab" href="{% url 'listar_deas' sede.id %}">Mis DEAS</a>
</li>
</ul>

<div class="tab-content">
<div class="tab-pane fade show active" id="info">
<!-- Contenido de Información de Entidad-Sede -->
</div>
<div class="tab-pane fade" id="condiciones">
<!-- Contenido de Condiciones para Espacio Cardio Asistido -->
</div>
<div class="tab-pane fade" id="deas">
<!-- Contenido de Condiciones DEAS -->
</div>
</div>
11 changes: 11 additions & 0 deletions Proyecto/espacios_obligados/templates/dea/editar_dea.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{% extends "ProyectoApp/base.html" %}
{% load static %}
{% block content %}
<h1>Editar DEA</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary">Guardar Cambios</button>
</form>
<a href="{% url 'listar_deas' sede %}" class="btn btn-primary">Atrás</a>
{% endblock %}
25 changes: 25 additions & 0 deletions Proyecto/espacios_obligados/templates/dea/listar_deas.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{% extends "ProyectoApp/base.html" %}
{% load static %}
{% block content %}
<a href="{% url 'registrar_dea' sede.id %}">Registrar Nuevo DEA</a>
<div class="card-container">
{% for dea in deas %}
<div class="card">
<div class="card-header">
<h3>{{ dea.nombre_representativo }}</h3>
</div>
<div class="card-body">
<p>Marca: {{ dea.marca }}</p>
<p>Modelo: {{ dea.modelo }}</p>
<a href="{% url 'editar_dea' dea.id %}" class="btn btn-primary">Editar</a>
<a href="{% url 'validar_dea' dea.id %}" class="btn btn-success">Validar</a>
{% if dea.aprobacion_ANMAT %}
<span class="validado">Validado</span>
{% else %}
<span class="no-validado">No Validado</span>
{% endif %}
</div>
</div>
{% endfor %}
</div>
{% endblock %}
16 changes: 16 additions & 0 deletions Proyecto/espacios_obligados/templates/dea/registrar_dea.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{% extends "ProyectoApp/base.html" %}
{% load static %}
{% block content %}
<style>
.form-check-input[type="checkbox"] {
margin-left: 10px;
}
</style>
<h1>Registrar DEA</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary">Guardar Cambios</button>
</form>
<a class="btn btn-primary" href="{% url 'administrar_entidad_sede' sede.id %}">Atrás</a>
{% endblock %}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ <h1>Lista de mis Entidades-Sedes</h1>
<ul>
{% for espacio in entidades_sedes %}
<li>{{ espacio.nombre }}</li>
<a href="{% url 'administrar_entidad_sede' espacio.id %}">Administrar</a>
{% endfor %}
</ul>
{% endblock %}
36 changes: 36 additions & 0 deletions Proyecto/espacios_obligados/templates/sede/declaracion_jurada.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{% extends "ProyectoApp/base.html" %}
{% load static %}
{% block title %}Declaración Jurada{% endblock %}
{% block content %}
<style>
.form-check input[type="checkbox"] {
margin-left: 10px;
}
</style>
<form method="post">
{% csrf_token %}
<div class="form-check">
<label class="form-check-label" for="{{ form.personal_capacitado.id_for_label }}">¿Posee personal capacitado?</label>
{{ form.personal_capacitado }}
</div>
<div class="form-check">
<label class="form-check-label" for="{{ form.senaletica.id_for_label }}">¿Cuenta con señalética adecuada?</label>
{{ form.senaletica }}
</div>
<div class="form-check">
<label class="form-check-label" for="{{ form.protocolo_accion.id_for_label }}">¿Posee un protocolo de acción, en caso de muerte súbita?</label>
{{ form.protocolo_accion }}
</div>
<div class="form-check">
<label class="form-check-label" for="{{ form.sistema_emergencia.id_for_label }}">¿Cuenta con un sistema de emergencia médica?</label>
{{ form.sistema_emergencia }}
</div>
<br>
<div class="form-group">
<label for="{{ form.deas_decreto.id_for_label }}">Teniendo en cuenta el decreto reglamentario, ¿Cuántos DEAs le corresponden a su establecimiento?</label>
{{ form.deas_decreto }}
</div>
<button type="submit">Guardar Cambios</button>
</form>
<a href="{% url 'administrar_entidad_sede' sede.id %}">Atrás</a>
{% endblock %}
16 changes: 16 additions & 0 deletions Proyecto/espacios_obligados/templates/sede/editar_sede.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{% extends "ProyectoApp/base.html" %}
{% load leaflet_tags %}
{% load static %}
{% block content %}
<head>
{% leaflet_js plugins="forms" %}
{% leaflet_css plugins="forms" %}
</head>
<h1>Editar Sede {{ sede.nombre }}</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Guardar Cambios</button>
</form>
<a href="{% url 'administrar_entidad_sede' sede.id %}">Atrás</a>
{% endblock %}
7 changes: 7 additions & 0 deletions Proyecto/espacios_obligados/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@
path('registrar_sede/<int:entidad_id>/', views.registrar_sede, name='registrar_sede'),
path('listar_sedes/<int:entidad_id>/', views.listar_sedes, name='listar_sedes'),
path('listar_mis_entidades_sedes/', views.listar_mis_entidades_sedes, name='listar_mis_entidades_sedes'),
path('administrar_entidad_sede/<int:sede_id>/', views.administrar_entidad_sede, name='administrar_entidad_sede'),
path('editar_sede/<int:sede_id>/', views.editar_sede, name='editar_sede'),
path('declaracion_jurada/<int:sede_id>/', views.declaracion_jurada, name='declaracion_jurada'),
path('registrar_dea/<int:sede_id>/', views.registrar_dea, name='registrar_dea'),
path('listar_deas/<int:sede_id>/', views.listar_deas, name='listar_deas'),
path('editar_dea/<int:dea_id>/', views.editar_dea, name='editar_dea'),
path('validar_dea/<int:dea_id>/', views.verificar_aprobacion_ANMAT, name='validar_dea'),
]
Loading

0 comments on commit 1a341a1

Please sign in to comment.