def __init__(self, columns, *data, **kwargs): """Inicializuj instanci. Argumenty: columns -- sekvence instancí třídy 'Table.Column', musí mít nejméně 1 a nejvýše 26 prvků data -- neprázdná sekvence neprázdných sekvencí, odpovídá řádkům (vnější sekvence) formátovaným do sloupců (vnitřní sekvence); všechny vnitřní sekvence musí mít délku shodnou s délkou argumentu 'columns'. Místo vnitřní sekvence smí být kdekoliv 'None', na takovém místě bude místo řádku tabulky vygenerována horizontální čára. vmargin (jako klíčovaný argument) -- je-li 'None', je mezi řádky tabulky ponechána implicitní mezera; je-li 0, není mezi řádky tabulky žádná mezera; jiné hodnoty argumentu nejsou povoleny """ super(Table, self).__init__() assert not some(lambda c: c not in ('vmargin',), kwargs.keys()) assert isinstance(columns, (tuple, list,)) vmargin = kwargs.get('vmargin') assert vmargin in (None, 0) if len(columns) > 26: raise pytis.output.TemplateException(_("More than 26 columns in a table")) self._columns = columns self._data = data self._vmargin = vmargin
def is_in_groups(access_groups): """Return true iff the current user is a member of any of the groups. Arguments: 'access_groups' -- sequence of group names (as strings) to test the user against, or 'None'; if it is 'None' then true is returned unconditionally. """ import config from pytis.data import default_access_groups groups = default_access_groups(config.dbconnection) if ((groups is None or access_groups is None or some(lambda g: g in groups, xtuple(access_groups)))): return True else: return False
def _permitted(self, permission, groups, column): if groups is None: # If user groups can't be retrieved, allow it return True ok_groups = self.permitted_groups(permission, column) return (None in ok_groups) or some(lambda g: g in ok_groups, groups)