Ejemplo n.º 1
0
 def perform_create(self, serializer):
     queryset = PapeletaSitio.objects(anio=self.request.data['anio'])
     if not queryset:
         serializer.save()
     else:
         self.request.data['papeletas'][0]['cofrade'] = ObjectId(self.request.data['papeletas'][0]['cofrade'])
         if not self.request.data.get('remove', None):
             PapeletaSitio.objects(anio=self.request.data['anio']).update(
                 push__papeletas=self.request.data['papeletas'][0])
         else:
             PapeletaSitio.objects(anio=self.request.data['anio']).update(
                 pull__papeletas=self.request.data['papeletas'][0])
             if not len(PapeletaSitio.objects(anio=self.request.data['anio'])[0].papeletas):
                 PapeletaSitio.objects(anio=self.request.data['anio']).delete()
Ejemplo n.º 2
0
    def get_queryset(self):
        queryset = PapeletaSitio.objects()

        anios = self.request.query_params.get('anios', None)
        anio = self.request.query_params.get('anio', None)

        if anios:
            return queryset.only("anio").order_by('-anio')
        if anio:
            queryset = queryset.filter(Q(anio=anio))
            for papeletasSitio in queryset:
                for index, value in enumerate(papeletasSitio.papeletas):
                    aux = Cofrade(id=value.cofrade.id,
                                  numeroOrden=value.cofrade.numeroOrden,
                                  datosPersonales={
                                      'nombre': value.cofrade.datosPersonales.nombre + ' ' +
                                                value.cofrade.datosPersonales.apellido1 + ' ' +
                                                value.cofrade.datosPersonales.apellido2})
                    papeletasSitio.papeletas[index].cofrade = aux

        return queryset