#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# HubSessions © GeezTeem 2010› https://www.geezteem.com/253
# AGPL-3.0-or-later - https://www.gnu.org/licenses/agpl-3.0.txt

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# In HubSessions, standard Appy class Group is not redefined. This file contains
# group-related stuff, like columns specifiers, that will be injected ino the
# standard class appy.model.group.Group.

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
from appy.ui.columns import Col
from appy.model.group import Group
from appy.model.searches import Search

from . import utils
from .User import User

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class GroupColumns(utils.Columns):
    '''Columns for lists of groups'''

    c = utils.Columns
    width = '110px|'

    @classmethod
    def login(class_, headerLabel=False):
        '''Column "login"'''
        return Col('login*%s' % class_.width, td=class_.mid,
                   headerLabel=headerLabel, phLabel='Group_login')

    @classmethod
    def base(class_, tool, search=False):
        '''Columns on search results (p_search is True) or refs (p_search is
           False).'''
        r = [class_.getTitle(first=search),
             class_.login(headerLabel=False if search else None),
             Col('roles*%s' % class_.width, td=class_.mid)]
        if not search:
            r.insert(0, Col.Checkbox('_checkbox*16px|', td=class_.borderR_))
        # Set styles
        class_.addHeaderStyles(tool, r)
        return r

    @classmethod
    def search(class_, tool):
        '''Columns on search results'''
        return class_.base(tool, search=True)

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Group.Columns = GroupColumns
Group.listColumns = GroupColumns.base
Group.roles.fwidth = '13em'
Group.m['group'].css = 'topSpace'
users = Group.users
users.iconOut = True
users.iconCss = 'iconHSA'
users.shownInfo = User.Columns.ref
Group.searchAdvanced = Search('advanced', actionsDisplay='right',
                              shownInfo=GroupColumns.search)
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
