serializers.py 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. from rest_framework import serializers
  2. from Ws.models import Usuario, Noticia, NotificacionNoticia
  3. from Ws.models import Suscripcion, NotificacionSuscripcion
  4. from Ws.models import PreMateria, PreInscripcionEstudiante
  5. # from rest_framework import serializers
  6. # from talk.models import Post
  7. class UsuarioSerializer(serializers.Serializer):
  8. id = serializers.IntegerField(read_only=True)
  9. email = serializers.CharField(required=True, max_length=254)
  10. username = serializers.CharField(required=True, max_length=254)
  11. first_name = serializers.CharField(required=True, max_length=125)
  12. last_name = serializers.CharField(required=True, max_length=125)
  13. tipo = serializers.IntegerField(default=1)
  14. def create(self, validated_data):
  15. return Usuario.objects.create(**validated_data)
  16. def update(self, instance, validated_data):
  17. instance.id = validated_data.get('id', instance.id)
  18. instance.email = validated_data.get('email', instance.email)
  19. instance.username = validated_data.get('username', instance.username)
  20. instance.first_name = validated_data.get('first_name', instance.first_name)
  21. instance.last_name = validated_data.get('last_name', instance.last_name)
  22. instance.tipo = validated_data.get('tipo', instance.tipo)
  23. return instance
  24. class NoticiaSerializer(serializers.ModelSerializer):
  25. class Meta:
  26. model = Noticia
  27. fields = ('id', 'tipo', 'para', 'titulo', 'descripcion', 'url')
  28. # class NoticiaSerializer(serializers.Serializer):
  29. # id = serializers.IntegerField(read_only=True)
  30. # tipo = serializers.IntegerField(read_only=True)
  31. # para = serializers.IntegerField(read_only=True)
  32. # titulo = serializers.CharField(read_only=True)
  33. # descripcion = serializers.CharField(read_only=True)
  34. # url = serializers.CharField(read_only=True)
  35. # def create(self, validated_data):
  36. # return Noticia.objects.create(**validated_data)
  37. # def update(self, instance, validated_data):
  38. # instance.id = validated_data.get('id', instance.id)
  39. # instance.tipo = validated_data.get('tipo', instance.tipo)
  40. # instance.para = validated_data.get('para', instance.para)
  41. # instance.titulo = validated_data.get('titulo', instance.titulo)
  42. # instance.descripcion = validated_data('descripcion', instance.descripcion)
  43. # instance.url = validated_data('url', instance.url)
  44. # return instance
  45. class NotificacionNoticiaSerializer(serializers.ModelSerializer):
  46. class Meta:
  47. model = NotificacionNoticia
  48. fields = ('id', 'usuario', 'tipo', 'visto', 'suscrito', \
  49. 'titulo', 'descripcion', 'url')
  50. class SuscripcionSerializer(serializers.ModelSerializer):
  51. class Meta:
  52. model = Suscripcion
  53. fields = ('id', 'noticia', 'nombre_actividad', 'descripcion', \
  54. 'cupo_maximo', 'para')
  55. class NotificacionSuscripcionSerializer(serializers.ModelSerializer):
  56. class Meta:
  57. model = NotificacionSuscripcion
  58. fields = ('id', 'usuario', 'suscripcion')
  59. class PreMateriaSerializer(serializers.ModelSerializer):
  60. class Meta:
  61. model = PreMateria
  62. fields = ('id', 'sigla', 'nombre', 'descripcion', 'cupos', \
  63. 'nombre_docente', 'horario', 'aula', 'gestion', \
  64. 'semestre', 'pre_requisitos')