from flask_table import Table, Col, ButtonCol, LinkCol


class AdminUserTable(Table):
    """
    Declares the table describing colum by column.
    """
    classes = ['highlight', 'responsive-table']
    username = Col('Username', column_html_attrs={'class': 'username'})
    email = Col('Email', column_html_attrs={'class': 'email'})
    role_id = Col('Role', column_html_attrs={'class': 'role'})
    confirmed = Col('Confrimed Status', column_html_attrs={'class': 'confirmed'})
    id = Col('User Id', column_html_attrs={'class': 'id'})
    url = LinkCol('Profile', 'admin.admin_user_page',
                    url_kwargs=dict(user_id='id'),
                    anchor_attrs={'class': 'waves-effect waves-light btn-small'})


class AdminUserItem(object):
    """
    Describes one item like one row per table.
    """

    def __init__(self, username, email, role_id, confirmed, id):
        self.username = username
        self.email = email
        self.role_id = role_id
        self.confirmed = confirmed
        self.id = id

        if self.role_id == 1:
            self.role_id = 'User'
        elif self.role_id == 2:
            self.role_id = 'Admin'