'''
Created on Apr 10, 2013

@author: egiraldo
'''

#--Importacion de la clase forms para manejo de text area y otros elementos
from django.forms import widgets
#--Importa la clase que se encarga de la serializacion, de la libreria de rest_framework
from rest_framework import serializers
#--Importa el modelo de las actividades para serializar
from actividades.models import Actividad
#--Clase que se encraga de serializar los dtaos del modelo para pasarlos a JSON
class ActividadSerializer(serializers.Serializer):
    #--Se setea el campo para el id de la actividad
    id_actividad = serializers.Field()  # Note: `Field` is an untyped read-only field.
    #--Se setea el campo para el id del modulo correspondiente
    id_modulo = serializers.Field()  # Note: `Field` is an untyped read-only field.
    #--Se ingresa el nombre en un text area
    nombre = serializers.CharField(widget=widgets.Textarea,max_length=100)
    #--Se ingresa la descripcion en un text area
    descripcion = serializers.CharField(widget=widgets.Textarea,max_length=200)
    #--Se ingresa el programa en un text area
    programa = serializers.CharField(widget=widgets.Textarea,max_length=200)
    #--Definicion que devuelve el objeto serializado
    #--Entrada:
    #---self: El objeto
    #---attrs:Atributos del mismo
    #---instance:Instancia del objeto
    #--Salida:
    #---Actividad serializada con atributos
    def restore_object(self, attrs, instance=None):
        #--Verifica si existe la instancia
        if instance:
            #--Setea los atributos correspondientes al objeto serializado
            instance.id_workflow = attrs.get('id_workflow', instance.id_workflow)
            instance.nombre = attrs.get('nombre', instance.nombre)
            instance.descripcion = attrs.get('descripcion', instance.descripcion)
            instance.programa = attrs.get('programa', instance.programa)
            #--Retorna la instancia
            return instance
        #--Crea una nueva instancia
        return Actividad(**attrs)