import django_tables2 as tables
from django.urls import reverse
from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _
from .models import Proyecto
class EvaluadoresTable(tables.Table):
"""Muestra los proyectos solicitados y el evaluador asignado a ellos."""
def render_titulo(self, record):
enlace = reverse('proyecto_detail', args=[record.id])
return mark_safe(f'{record.titulo}')
editar = tables.Column(empty_values=(), orderable=False, verbose_name='')
def render_editar(self, record):
enlace = reverse('evaluador_update', args=[record.id])
return mark_safe(
f'''
'''
)
class Meta:
attrs = {'class': 'table table-striped table-hover cabecera-azul'}
model = Proyecto
fields = ('programa', 'linea', 'titulo', 'evaluador.full_name', 'editar')
empty_text = _('Por el momento no se ha presentado ninguna solicitud de proyecto.')
template_name = 'django_tables2/bootstrap4.html'
per_page = 20
class EvaluacionProyectosTable(tables.Table):
"""Muestra los proyectos presentados y enlaces a su evaluación y resolución de la Comisión."""
def render_titulo(self, record):
enlace = reverse('proyecto_detail', args=[record.id])
return mark_safe(f'{record.titulo}')
evaluacion = tables.Column(empty_values=(), orderable=False, verbose_name=_('Evaluación'))
resolucion = tables.Column(empty_values=(), orderable=False, verbose_name=_('Resolución'))
def render_evaluacion(self, record):
enlace = reverse('ver_evaluacion', args=[record.id])
return mark_safe(
f'''
'''
if record.valoraciones.first()
else '—'
)
def render_resolucion(self, record):
enlace = reverse('resolucion_update', args=[record.id])
return mark_safe(
f'''
'''
if record.valoraciones.first()
else '—'
)
class Meta:
attrs = {'class': 'table table-striped table-hover cabecera-azul'}
model = Proyecto
fields = ('programa', 'linea', 'titulo', 'evaluacion', 'resolucion')
empty_text = _('Por el momento no se ha presentado ninguna solicitud de proyecto.')
template_name = 'django_tables2/bootstrap4.html'
per_page = 20
class ProyectosEvaluadosTable(tables.Table):
"""Muestra los proyectos asignados a un usuario evaluador."""
def render_titulo(self, record):
enlace = reverse('proyecto_detail', args=[record.id])
return mark_safe(f"{record.titulo}")
boton_evaluar = tables.Column(empty_values=(), orderable=False, verbose_name='')
def render_boton_evaluar(self, record):
enlace = reverse('evaluacion', args=[record.id])
return mark_safe(
f'''
{_('Evaluar')}
'''
)
class Meta:
attrs = {'class': 'table table-striped table-hover cabecera-azul'}
model = Proyecto
fields = ('programa', 'linea', 'titulo', 'boton_evaluar')
empty_text = _('Por el momento no se le ha asignado ningún proyecto.')
template_name = 'django_tables2/bootstrap4.html'
per_page = 20
class ProyectosTable(tables.Table):
"""Muestra las solicitudes de proyecto presentadas."""
def render_titulo(self, record):
enlace = reverse('proyecto_detail', args=[record.id])
return mark_safe(f'{record.titulo}')
coordinadores = tables.Column(
empty_values=(), orderable=False, verbose_name=_('Coordinador(es)')
)
def render_coordinadores(self, record):
coordinadores = record.get_coordinadores()
enlaces = [f'{c.get_full_name()}' for c in coordinadores]
return mark_safe(', '.join(enlaces))
class Meta:
attrs = {'class': 'table table-striped table-hover cabecera-azul'}
model = Proyecto
fields = ('programa', 'linea', 'titulo', 'coordinadores', 'estado')
empty_text = _('Por el momento no se ha presentado ninguna solicitud de proyecto.')
template_name = 'django_tables2/bootstrap4.html'
per_page = 20