from     django.utils.html import format_html
import django_tables2 as tables

class HistorialProgramado(tables.Table):
    atts_default={'header_html':None}
    atts_default20={'header_html':None,
        'th':{'as_html':'width=20%'}
        }
    atts_default30={'header_html':None,
        'th':{'as_html':'width=30%'}
        }
    Fecha=tables.Column(accessor='fecha',orderable=False,attrs=atts_default20)
    Titulo=tables.Column(accessor="titulo",orderable=False,attrs=atts_default)
    Texto=tables.Column(accessor="texto",orderable=False,attrs=atts_default30)
    Tipo=tables.Column(accessor="tipo",orderable=False,exclude_from_export=True,attrs=atts_default)
    Tipo2=tables.Column(accessor="tipo",visible=False,attrs=atts_default)
    Estado=tables.Column(accessor="estado",orderable=False,attrs=atts_default)
    Acciones=tables.Column(accessor="id",orderable=False,exclude_from_export=True,attrs=atts_default)

    def __init__(self, *args, fecha_html="",campaign_html="",**kwargs):
        self.base_columns['Tipo2'].verbose_name = 'Tipo'
        attrs={'header_html':None,
        'th':{'as_html':'width=22%'
        }
        }
       
        attrs3={'header_html':None,
        'th':{'as_html':'width=25%'
        }
        }
        if campaign_html:
            attrs['header_html']=campaign_html
            self.base_columns['Titulo'].attrs=attrs
        if fecha_html:
            attrs3['header_html']=fecha_html
            self.base_columns['Fecha'].attrs=attrs3
            
        super().__init__(*args, **kwargs)


    def render_Tipo(self, value, record):
        return format_html('<i class="material-icons">{}</i>', value)

    def render_Acciones(self, value, record):
        return format_html('<a  class="tooltipped" data-tooltip="Editar"  href="/edit_programado/{}"><i class="material-icons">edit</i></a> <a  class="tooltipped" data-tooltip="Borrar" onclick="delete_programado({},\'{}\',\'{}\')" href="#"><i class="material-icons">delete</i></a>', value,value,record['titulo'],record['fecha'])

    class Meta:
        None
        #attrs = {'class': 'striped center responsive-table'}
        template_name = "tabla_jd.html"


class Historial(tables.Table):
    atts_default={'header_html':None}
    atts_default20={'header_html':None,
        'th':{'as_html':'width=20%'}
        }
    atts_default30={'header_html':None,
        'th':{'as_html':'width=30%'}
        }
    Fecha=tables.Column(accessor='fecha',attrs=atts_default20)
    Titulo=tables.Column(accessor="titulo",attrs=atts_default)
    Texto=tables.Column(accessor="texto",attrs=atts_default30)
    Total=tables.Column(accessor="total",attrs=atts_default)
    TasaApertura=tables.Column(accessor="tasa_apertura",verbose_name="Tasa de apertura",attrs=atts_default)
    Tipo=tables.Column(accessor="tipo",exclude_from_export=True,attrs=atts_default)
    Tipo2=tables.Column(accessor="tipo",visible=False,attrs=atts_default)
    Estado=tables.Column(accessor="estado",attrs=atts_default)
    Acciones=tables.Column(accessor="id",orderable=False,exclude_from_export=True,attrs=atts_default)
    def render_TasaApertura(self, value, record):
        return str(value)+"%"
    def __init__(self, *args, fecha_html="",campaign_html="",total_html="",**kwargs):
        self.base_columns['Tipo2'].verbose_name = 'Tipo'
        attrs={'header_html':None,
        'th':{'as_html':'width=22%'
        }
        }
        attrs2={'header_html':None,
           'th':{'as_html':'width=22%'
           
        },
        "td": {"class": "center"}
       }
        attrs3={'header_html':None,
        'th':{'as_html':'width=25%'
        }
        }
        if campaign_html:
            attrs['header_html']=campaign_html
            self.base_columns['Titulo'].attrs=attrs
        if total_html:
            attrs2['header_html']=total_html
            self.base_columns['Total'].attrs=attrs2
        if fecha_html:
            attrs3['header_html']=fecha_html
            self.base_columns['Fecha'].attrs=attrs3
            
        super().__init__(*args, **kwargs)


    def render_Tipo(self, value, record):
        return format_html('<i class="material-icons">{}</i>', value)

    def render_Acciones(self, value, record):
        return format_html('<a  class="tooltipped" data-tooltip="Ver Resultados"  href="/whatsapp_results/{}"><i class="material-icons">preview</i></a> <a  class="tooltipped" data-tooltip="Descargar Excel" href="/whatsapp_excel/{}"><i class="material-icons">arrow_circle_down</i></a>', value,value)

    class Meta:
        None
        #attrs = {'class': 'striped center responsive-table'}
        template_name = "tabla_jd.html"

class Listas(tables.Table):
    atts_default={'header_html':None}
    Titulo=tables.Column(accessor='titulo',verbose_name="Título",attrs=atts_default)    
    Miembros=tables.Column(accessor='members',attrs=atts_default)
    Acciones=tables.Column(accessor='id',orderable=False,exclude_from_export=True,attrs=atts_default)


    def render_Acciones(self, value, record):

        return format_html("""
        <a  class="tooltipped" data-tooltip="Ver Contactos" href="/lista_empleados/{}" ><i  class="material-icons">preview</i></a>
        <a  class="tooltipped" data-tooltip="Descargar Lista" href="/lista_emp_excel/{}" ><i  class="material-icons">arrow_circle_down</i></a>
        <a  class="tooltipped" data-tooltip="Agregar Contactos" href="/lista_import_excel/{}" ><i  class="material-icons">add_circle</i></a>
        <a class="tooltipped" data-tooltip="Editar Nombre" href="/lista_edit/{}"><i class="material-icons">edit</i></a>
        <a class="tooltipped" data-tooltip="Borrar Lista" href="#" onclick="delete_lista({} ,'{}')"><i class="material-icons">delete</i></a>

        <a class="tooltipped" data-tooltip="Enviar Whatsapp" href="/whatsapp?lista={}"><i class="material-icons">send</i></a>
        """, value,value,value,value,value,record['titulo'],value)

    class Meta:
        None
        #attrs = {'class': 'striped center responsive-table'}
        template_name = "tabla_jd.html"


class Listas_Errores_Import(tables.Table):
    atts_default={'header_html':None}
    Fila=tables.Column(accessor='fila',attrs=atts_default)    
    Nombre=tables.Column(accessor='nombre',attrs=atts_default)
    Tipo=tables.Column(accessor='error', verbose_name='Tipo',attrs=atts_default)
    Error=tables.Column(accessor='comentario',attrs=atts_default)

    class Meta:
        None
        #attrs = {'class': 'striped center responsive-table'}
        template_name = "tabla_jd.html"
    def render_Tipo(self, value, record):
        
        return value



class Listas_Empleados(tables.Table):
    atts_default={'header_html':None}
    Nombre=tables.Column(accessor='perfil',attrs=atts_default)    
    Numero=tables.Column(accessor='telefono',attrs=atts_default)
    Email=tables.Column(accessor='email',attrs=atts_default)
    Empresa=tables.Column(accessor='empresa',attrs=atts_default)
    Direccion=tables.Column(accessor='direccion',attrs=atts_default)
    Notas=tables.Column(accessor='notas',attrs=atts_default)

    Acciones=tables.Column(accessor='id',exclude_from_export=True,attrs=atts_default)
    class Meta:
        None
        #attrs = {'class': 'striped center responsive-table'}
        template_name = "tabla_jd.html"
    def render_Acciones(self, value, record):

        return format_html("""
        <a class="tooltipped" data-tooltip="Editar Nombre" href="/edit/{}?list={}"><i class="material-icons">edit</i></a>
        <a class="tooltipped" data-tooltip="Borrar Lista" href="#" onclick="delete_empleado({} ,'{}')"><i class="material-icons">delete</i></a>

       """, value,record['lista'],record['perfil_id'],record['perfil'])

class ResumenEnvio(tables.Table):
    atts_default={'header_html':None}
    Numero=tables.Column(accessor='telefono',attrs=atts_default)
    Nombre=tables.Column(accessor='perfil',attrs=atts_default)    
    Estado=tables.Column(verbose_name="Estado de envío", accessor='estado',attrs=atts_default)    
    Fecha=tables.Column(accessor="fecha",attrs=atts_default)

    class Meta:
        None
        template_name = "tabla_jd.html"

class Plantillas(tables.Table):
    atts_default={'header_html':None}
    Titulo=tables.Column(accessor='titulo',verbose_name="Título",attrs=atts_default)    
    Tipo=tables.Column(accessor='tipo',attrs=atts_default)
    Texto=tables.Column(accessor='texto',attrs=atts_default)
    Estado=tables.Column(accessor='estado',attrs=atts_default)
    Acciones=tables.Column( verbose_name="Acciones",accessor='id',orderable=False,exclude_from_export=True,attrs=atts_default)
    
    def __init__(self, *args, Estado_html=None,Titulo_html=None,**kwargs):  #Agregará un HTML al header Listas si se especifica        
        attrs={'header_html':None      ,  'th':{'as_html':'width=20%'}}
        attrs2={'header_html':None      ,  'th':{'as_html':'width=20%'}}

        if Estado_html:
            attrs['header_html']=Estado_html
            self.base_columns['Estado'].attrs=attrs
        if Titulo_html:
            attrs2['header_html']=Titulo_html
            self.base_columns['Titulo'].attrs=attrs2

        super().__init__(*args, **kwargs)

    def render_Acciones(self, value, record):

        return format_html("""
        <a href="/whatsapp_edit/{}"><i class="material-icons">edit</i></a>
              <a href="#" onclick="delete_template({} ,'{}')"><i class="material-icons">delete</i></a>
        """, value,value,record['titulo'])

    class Meta:
        None
        #attrs = {'class': 'striped center responsive-table'}
        template_name = "tabla_jd.html"
class Usuarios(tables.Table):   
    atts_default={'header_html':None}
    Nombre=tables.Column(accessor="nombre",attrs=atts_default)
    Listas=tables.Column(accessor="listas",attrs=atts_default)
    Correo=tables.Column(accessor="email",attrs=atts_default)
    Telefono=tables.Column(accessor="telefono",attrs=atts_default)
    Acciones=tables.Column(accessor='userid',orderable=False,exclude_from_export=True,attrs=atts_default)
    
    def __init__(self, *args, Listas_html=None,**kwargs):  #Agregará un HTML al header Listas si se especifica        
        attrs={'header_html':None}
        if Listas_html:
            attrs['header_html']=Listas_html
        if Listas_html:
            self.base_columns['Listas'].attrs=attrs
        super().__init__(*args, **kwargs)

    def render_Acciones(self, value, record):
        return format_html("""
        <a class="tooltipped" data-tooltip="Editar" href="/edit/{}"><i class="material-icons">edit</i></a>
        <a  class="tooltipped" data-tooltip="Borrar" href="#" onclick="delete_user({},'{}')"><i  class="material-icons">delete</i></a>
        <a class="tooltipped" data-tooltip="Enviar Whatsapp" href="\whatsapp?contacto={}"><i class="material-icons">send</i></a>
         """, value,value,record['nombre'],value)

    class Meta:
        None
        #attrs = {'class': 'striped center responsive-table'}
        template_name = "tabla_jd.html"
        