def agregar_estudiante(self, request, pk=None): id_estudiante = request.data['id_estudiante'] estudiante = get_object_or_none(Estudiante, id=id_estudiante) curso = get_object_or_none(Curso, id=pk) if curso and estudiante: flag = curso.anadir_estudiante(estudiante) if flag: return Response({'status': 'exito'}, status=status.HTTP_200_OK) return Response({'status': 'error en registro de curso a estudiante, cruce de horario.'}, status=status.HTTP_406_NOT_ACCEPTABLE ) return Response({'status': 'no encontrado'}, status=status.HTTP_404_NOT_FOUND)
def cursos_asociados(self, request, pk=None): estudiante = get_object_or_none(models.Estudiante, id=pk) if estudiante: serializer = serializers.CursoEstudianteSerializer( estudiante.cursos_asociados_list(), many=True) return Response(serializer.data, status=status.HTTP_200_OK) return Response({'status': 'not found'}, status=status.HTTP_404_NOT_FOUND)
def estudiantes_asociados(self, request, pk=None): curso = get_object_or_none(models.Curso, id=pk) if curso: data = { 'cantidad': curso.numero_estudiantes_asociados() } return Response(data, status=status.HTTP_200_OK) return Response({'status': 'no encontrado'}, status=status.HTTP_404_NOT_FOUND)
def calificar(self, request, pk=None): comentario = request.data['comentario'] calificacion = request.data['calificacion'] tutoria = get_object_or_none(Solicitud, id=pk) if tutoria: tutoria.comentario = comentario tutoria.calificacion = int(calificacion) tutoria.save(update_fields=['comentario', 'calificacion']) return Response({'success': True})
def disable(self, request, pk=None): transaction = get_object_or_none(Transaction, id=pk) response = {'message': 'this transaction doesnt exist'} status = HTTP_400_BAD_REQUEST if transaction: transaction.disable_transaction() response['message'] = 'success' status = HTTP_200_OK return Response(response, status=status)
def save(self, *args, **kwargs): if self.pk is None: inscripcion = get_object_or_none(Inscripcion, usuario=self.usuario, curso=self.curso) if inscripcion: self.inscripcion = inscripcion categoria = self.curso.categoria.nombre self.categoria = categoria super(ProgresoVideo, self).save(*args, **kwargs)
def delete(self, request, pk, format=None): response = {} print(pk) if hasattr(self.request.user, 'usuario') and pk is not None: materia = get_object_or_none(MateriaUsuario, id=pk) if materia is not None: materia.delete() response['success'] = True else: response['success'] = False return Response(response)
def get(self, request, format=None): response = {} if hasattr(self.request.user, 'usuario'): usuario = get_object_or_none(Usuario, id=self.request.user.id) serializer = MateriaUsuarioSerializer( usuario.get_materias().order_by('-id'), many=True) response = {'materias': serializer.data} else: response[ 'error'] = 'Este usuario es administrador y no puede tener materias' return Response(response)
def remove_product(self, id): kwargs = { 'producto_id': id, 'pedido': self } product = get_object_or_none( ProductoPedido, **kwargs ) if product: product.delete()
def create(self, validated_data): print(_green(validated_data)) email = validated_data['email'] user = get_object_or_none(CustomUser, email=validated_data['email']) if not user: validated_data['id'] = hashlib.md5( email.encode('utf-8')).hexdigest() validated_data['password'] = make_password( validated_data['password']) print(_blue(validated_data)) return super().create(validated_data) raise serializers.ValidationError({'error': 'user already exist'})
def put(self, request, pk, format=None): response = {} if hasattr(self.request.user, 'usuario') and pk is not None: materia = get_object_or_none(MateriaUsuario, id=pk) if materia is not None: materia.precio = request.data['precio'] materia.save(update_fields=['precio']) response['success'] = True else: response['success'] = False else: response['success'] = False return Response(response)
def add_product(self, id, cantidad): kwargs = { 'producto_id': id, 'pedido': self } product = get_object_or_none( ProductoPedido, **kwargs ) if product: product.add_cantidad(cantidad) else: kwargs['cantidad'] = cantidad ProductoPedido.objects.create( **kwargs )
def post(self, request, *args, **kwargs): client = get_object_or_none(Cliente, cedula=request.data['cedula']) if client: return Response({'id': client.id}) return self.create(request, *args, **kwargs)
def get_solicitud(self, **kwargs): return get_object_or_none(Solicitud, **kwargs)
def get_item(self, id): return get_object_or_none(Pedido, id=id)