def get(self, request, *args, **kwargs): """Genera reporte en formato excel.""" format_list = request.GET.get('formato', False) type_list = request.GET.get('tipo', False) if format_list == 'xls' and type_list == 'retenciones': if 'accounting.view_report_retencion_pago' in self.request.user.get_all_permissions( ): return export_excel(self.request, self.get_queryset()) return error_403(self.request, MESSAGE_403) if format_list == 'xls': return export_excel(self.request, self.get_queryset()) return super().get(request, *args, **kwargs)
def handle_no_permission(self): """Redirige a la página de error 403 si no tiene los permisos y está autenticado.""" if self.raise_exception and self.request.user.is_authenticated: return error_403(self.request, MESSAGE_403) return redirect('login')