1
from django.shortcuts import render
2
from django.urls import reverse_lazy
3
from django.views.generic import (TemplateView, ListView, DetailView,
4
CreateView, UpdateView, DeleteView)
6
from .models import Empleado
7
from .forms import EmpleadoForm
8
# Create your views here.
10
class InicioView(TemplateView):
11
template_name = 'persona/inicio.html'
14
#lista todos los empleados de la empresa -- DONE
15
class ListaAllEmpleados(ListView):
16
template_name = 'persona/listar_persona.html'
20
#listar los empleado que pertenecen a un area de la empresa
21
class ListarByArea(ListView):
22
template_name = 'persona/listar_area.html'
23
context_object_name = 'empleados'
25
def get_queryset(self):
26
area_cod = self.kwargs['cod']
27
lista = Empleado.objects.filter(
28
departamento__cod=area_cod
33
#lista de empleados por palabra clave
34
#lista de empleado por trabajo
35
class listarEmpleadoKword(ListView):
36
template_name = 'persona/bucar_persona.html'
37
context_object_name = "personas"
39
def get_queryset(self):
40
palabra_clave = self.request.GET.get("kword", '')
41
lista = Empleado.objects.filter(
42
first_name=palabra_clave
47
#lista de habilidades de un empleado
48
class ListaHabilidad(ListView):
49
template_name = 'persona/lista_habilidades.html'
50
context_object_name = 'skills'
52
def get_queryset(self):
53
id_obj = self.request.GET.get("id", '')
54
data = Empleado.objects.get(id=id_obj)
55
lista = data.habilidades.all()
59
#ver detaller de un empleado por id en la url
60
class EmpleadoDetalle(DetailView):
62
template_name = 'persona/empleado_ver.html'
64
def get_context_data(self, **kwargs):
65
context = super(EmpleadoDetalle, self).get_context_data(**kwargs)
66
context['titulo'] = 'Mejor Empleado'
71
class EmpleadoCreateView(CreateView):
73
template_name = 'persona/agregar_empleado.html'
74
form_class = EmpleadoForm
75
success_url = reverse_lazy('persona_app:lista') #url que redirige al usuario
77
def form_valid(self, form):
78
empleado = form.save(commit=False)
79
empleado.full_name = '{} {}'.format(empleado.first_name,
82
return super(EmpleadoCreateView, self).form_valid(form)
85
class EmpleadoUpdate(UpdateView):
87
template_name = 'persona/actualizar_empleado.html'
88
fields = ['first_name', 'last_name','job','departamento', 'habilidades']
89
success_url = reverse_lazy('persona_app:lista') #url que redirige al usuario
92
class EmpleadoDelete(DeleteView):
94
template_name = "persona/borra_empleado.html"
95
success_url = reverse_lazy('persona_app:lista')