def get_queryset(self): queryset = Evento.objects.all() if 'organizacion' in self.request.query_params: queryset = queryset.filter( organizacion_id=self.request.query_params.get('organizacion')) elif 'empresa' in self.request.query_params: queryset = queryset.filter(id__in=self.get_eventos_empresa( self.request.query_params.get('empresa'))) # Si quiero ver antiguos no filtro a partir de hoy elif 'antiguos' not in self.request.query_params: from django.db.models import Q queryset = queryset.filter(Q(fecha_hora_inicio__gte=datetime.today( ), campaña=False) | Q(fecha_hora_fin__gte=datetime.today(), campaña=True)) else: queryset = queryset.order_by('fecha_hora_inicio').reverse() if 'fecha_desde' in self.request.query_params: queryset = queryset.filter( fecha_hora_inicio__gte=self.request.query_params.get('fecha_desde')) queryset = queryset.filter( fecha_hora_inicio__lte=self.request.query_params.get('fecha_hasta')) if 'kms' in self.request.query_params: kms = float(self.request.query_params.get('kms')) latitud = float(self.request.query_params.get('latitud')) longitud = float(self.request.query_params.get('longitud')) lista_eventos = self.filtrar_ubicacion(kms, latitud, longitud) queryset = queryset.filter(id__in=lista_eventos) if self.tiene_filtros(self.request.query_params): lista_eventos = self.get_eventos(self.request.query_params) queryset = queryset.filter(id__in=lista_eventos) queryset = queryset.order_by('fecha_hora_inicio') user = get_token_user(self.request) if user is not None: queryset = self.recomendar_eventos(queryset, user) return queryset
def destroy(self, request, *args, **kwargs): partipacion = None pattern = "(\d+)/$" sre_match = re.search(pattern, request.path) if sre_match is not None: try: participacion_id = int(sre_match.groups()[0]) participacion = Participacion.objects.get(id=participacion_id) except: return Response(None, status=status.HTTP_400_BAD_REQUEST) else: return Response(None, status=status.HTTP_404_NOT_FOUND) if participacion is not None: from actividades.services import send_participacion_destroy_email, send_was_full_participacion_mail, send_ong_participacion_mail user = User.objects.get(id=get_token_user(self.request)) if user.user_type != 3: send_participacion_destroy_email(participacion) necesidad_voluntario = participacion.necesidad_voluntario participaciones = Participacion.objects.filter( necesidad_voluntario_id=necesidad_voluntario.id) suma_participantes = 0 for p in participaciones: suma_participantes += p.cantidad send_ong_participacion_mail(necesidad_voluntario, participacion, True) if suma_participantes == necesidad_voluntario.cantidad: send_was_full_participacion_mail(necesidad_voluntario) return super().destroy(request, *args, **kwargs)
def view_predict_fechas(request): try: ong = get_token_user(request) return Response(handle_predict_fechas(request.data, ong), status=status.HTTP_200_OK) except: return Response(status=status.HTTP_400_BAD_REQUEST)
def create(self, request): serializer = ColaboracionSerializer(data=request.data) if serializer.is_valid(): user = User.objects.get(id=get_token_user(self.request)) if user.user_type == 3: create_propuesta(user, request.data['necesidad_material_id'], False) serializer.save(colaborador_id=user.id) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get_queryset(self): queryset = Mensaje.objects.all() evento_id = self.request.query_params.get('evento', None) user = get_token_user(self.request) if evento_id is not None: evento = Evento.objects.filter(id=evento_id)[0] if evento.organizacion_id == user: queryset = queryset.filter(evento_id=evento_id) queryset = queryset.order_by('-created') return queryset return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request: HttpRequest) -> HttpResponse: data = json.loads(request.body) input_dto = dacite.from_dict(remove_user.RemoveUserInputDto, { 'email': data['email'], 'user_id': get_token_user(request) }) presenter = RemoveUserPresenter() uc = remove_user.RemoveUserUseCase(presenter) uc.execute(input_dto) return presenter.get_http_response()
def create(self, request): serializer = ParticipacionSerializer(data=request.data) if serializer.is_valid(): user = User.objects.get(id=get_token_user(self.request)) serializer.save(colaborador_id=user.id) if user.user_type == 3: create_propuesta(user, request.data['necesidad_voluntario_id'], True) else: from actividades.services import send_participacion_create_email send_participacion_create_email(serializer.instance) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) from common.functions import get_token_user request_user = User.objects.filter( id=get_token_user(self.request)).first() user = serializer.validate(request.data, request_user) return Response( { "user": UserSerializer(user, context=self.get_serializer_context()).data, "token": AuthToken.objects.create(user) }, status=status.HTTP_200_OK)
def RetroalimentacionVoluntarioEvento(request): try: user = get_token_user(request) colaboraciones = Colaboracion.objects.filter( colaborador_id=user, necesidad_material__evento_id=request.data['evento']) for c in colaboraciones: c.retroalimentacion_voluntario = True c.save() participaciones = Participacion.objects.filter( colaborador_id=user, necesidad_voluntario__evento_id=request.data['evento']) for p in participaciones: p.retroalimentacion_voluntario = True p.save() return Response(request.data, status=status.HTTP_201_CREATED) except: return Response(status=status.HTTP_400_BAD_REQUEST)
def create(self, request): serializer = EventoSerializer(data=request.data) if serializer.is_valid(): serializer.save(organizacion_id=get_token_user(self.request)) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get_queryset(self): queryset = Propuesta.objects.all() queryset = queryset.filter(empresa_id=get_token_user(self.request)) return queryset
def retrieve(self, request, id=None): user = get_token_user(self.request) evento = get_object_or_404(Evento.objects.all(), id=id) if user is not None: LogConsultaEvento.objects.create(usuario_id=user, evento=evento) return super().retrieve(request, id)
def get_queryset(self): lista_eventos = self.get_eventos(get_token_user(self.request)) queryset = Evento.objects.all() queryset = queryset.filter(id__in=lista_eventos) return queryset
def get_queryset(self): queryset = Evento.objects.all() queryset = queryset.filter( organizacion_id=get_token_user(self.request)) queryset = queryset.order_by('-fecha_hora_inicio') return queryset
def test_func(self): return get_token_user(self.request) is not None
def create(self, request): serializer = ParticipacionSerializer(data=request.data) if serializer.is_valid(): serializer.save(voluntario_id=get_token_user(self.request)) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)