コード例 #1
0
 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
コード例 #2
0
 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)
コード例 #3
0
ファイル: views.py プロジェクト: Jumpi96/helpo
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)
コード例 #4
0
 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)
コード例 #5
0
 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)
コード例 #6
0
    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()
コード例 #7
0
 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)
コード例 #8
0
ファイル: views.py プロジェクト: Jumpi96/helpo
 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)
コード例 #9
0
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)
コード例 #10
0
 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)
コード例 #11
0
 def get_queryset(self):
     queryset = Propuesta.objects.all()
     queryset = queryset.filter(empresa_id=get_token_user(self.request))
     return queryset
コード例 #12
0
 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)
コード例 #13
0
 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
コード例 #14
0
 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
コード例 #15
0
ファイル: mixins.py プロジェクト: Jumpi96/helpo
 def test_func(self):
     return get_token_user(self.request) is not None
コード例 #16
0
ファイル: views.py プロジェクト: Helpo-Team/helpoFreezed
 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)