def dispatch(self, request, *args, **kwargs): self.form = VendedorPeriodoForm(request.GET, prefix='vendedor-periodo') if self.form.is_valid(): self.inicio = self.form.cleaned_data['inicio'] self.fin = datetime.combine(self.form.cleaned_data['fin'], time.max) vendedor = self.form.cleaned_data['vendedor'] self.contratos = Contrato.objects.filter( inicio__gte=self.inicio, inicio__lte=self.fin, vendedor=vendedor, ) return super(VendedorPeriodoView, self).dispatch(request, *args, **kwargs)
def create_forms(self, context): context['vendedor-search'] = VendedorChoiceForm( prefix='vendedor-search') context['vendedor-search'].helper.form_action = 'vendedor-search' context['plan-search'] = PlanChoiceForm(prefix='plan-search') context['plan-search'].helper.form_action = 'plan-search' context['contrato-periodo'] = PeriodoForm(prefix='contrato-periodo') context['contrato-periodo'].set_legend('Contratos de un Periodo') context['contrato-periodo'].helper.form_action = 'contrato-periodo' context['evento-periodo'] = PeriodoForm(prefix='evento-periodo') context['evento-periodo'].set_legend('Eventos de un Periodo') context['evento-periodo'].helper.form_action = 'evento-periodo' context['vendedor-periodo'] = VendedorPeriodoForm( prefix='vendedor-periodo') context['vendedor-periodo'].helper.form_action = 'vendedor-periodo' context['contrato-search'] = ContratoSearchForm( prefix='contrato-search') context['contrato-search'].helper.form_action = 'contrato-search' context['contrato-persona-search'] = PersonaSearchForm( prefix='contrato-persona-search') context[ 'contrato-persona-search'].helper.form_action = \ 'contrato-persona-search' context['empresa-search'] = EmpleadorChoiceForm( prefix='empresa-search') context['empresa-search'].helper.form_action = 'empresa-search'
class VendedorPeriodoView(TemplateView, LoginRequiredMixin): """Muestra los contratos de un periodo""" template_name = 'contracts/periodo.html' def dispatch(self, request, *args, **kwargs): self.form = VendedorPeriodoForm(request.GET, prefix='vendedor-periodo') if self.form.is_valid(): self.inicio = self.form.cleaned_data['inicio'] self.fin = datetime.combine(self.form.cleaned_data['fin'], time.max) vendedor = self.form.cleaned_data['vendedor'] self.contratos = Contrato.objects.filter( inicio__gte=self.inicio, inicio__lte=self.fin, vendedor=vendedor, ) return super(VendedorPeriodoView, self).dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super(VendedorPeriodoView, self).get_context_data(**kwargs) context['contratos'] = self.contratos context['inicio'] = self.inicio context['fin'] = self.fin context['comision'] = \ self.contratos.aggregate(total=Sum('plan__comision'))['total'] return context