Exemplo n.º 1
0
    def __init__(self, spec, columns, condition=None, sort=(),
                 show_headers=True, klass=None,
                 **attrs):
        """Vytvoř tabulku, jejíž obsah je získán z databázového objektu.

        Argumenty:

        spec -- název specifikace
        columns -- seznam sloupců, které se použijí v HTML tabulce
        condition -- podmínka odpovídající argumentu volání
                     pytis.data.select()
        sort -- řazení odpovídající argumentu volání pytis.data.select()
        show_headers -- pokud je True, zobrazí se záhlaví sloupců, na základě
                        'label' z jednotlivých políček
        klass -- None nebo funkce jednoho argumentu, kterým je řádek tabulky
                 a která vrací None nebo odpovídající styl
        attrs -- atributy pro HyperText.TABLE
        
        Vrací instanci HyperText.TABLE.
        
        """
        self._spec = spec
        self._columns = columns
        self._condition = condition
        self._sort = sort
        self._view = pytis.util.resolver().get(self._spec, 'view_spec')
        self._data = data_object(self._spec)
        self._fields = self._get_fields()
        self._klass = klass
        self._table = TABLE(**attrs)
        if show_headers:
            self._headers = self._get_headers()
            self._append_headers()
Exemplo n.º 2
0
 def writeContent(self):
     
     s = "font-family: tahoma; font-size: 10pt;"
     
     t = TABLE()
     tr = TR(TH(BR(), style=s))
     for i in range(16): tr.append(TH(hex(i), style=s))
     t.append(tr)
     
     for j in range(0,128,16):
         tr = TR(TH(hex(j)),style=s)
         t.append(tr)
         for i in range(16):
             v = i+j
             tr.append(TD(EM(v), BR(), quote_body(repr(chr(v)))))
     
     self.write(t)
Exemplo n.º 3
0
Arquivo: www.py Projeto: cerha/pytis
    def __init__(self,
                 spec,
                 columns,
                 condition=None,
                 sort=(),
                 show_headers=True,
                 klass=None,
                 **attrs):
        """Vytvoř tabulku, jejíž obsah je získán z databázového objektu.

        Argumenty:

        spec -- název specifikace
        columns -- seznam sloupců, které se použijí v HTML tabulce
        condition -- podmínka odpovídající argumentu volání
                     pytis.data.select()
        sort -- řazení odpovídající argumentu volání pytis.data.select()
        show_headers -- pokud je True, zobrazí se záhlaví sloupců, na základě
                        'label' z jednotlivých políček
        klass -- None nebo funkce jednoho argumentu, kterým je řádek tabulky
                 a která vrací None nebo odpovídající styl
        attrs -- atributy pro HyperText.TABLE

        Vrací instanci HyperText.TABLE.

        """
        self._spec = spec
        self._columns = columns
        self._condition = condition
        self._sort = sort
        self._view = pytis.util.resolver().get(self._spec, 'view_spec')
        self._data = pytis.util.data_object(self._spec)
        self._fields = self._get_fields()
        self._klass = klass
        self._table = TABLE(**attrs)
        if show_headers:
            self._headers = self._get_headers()
            self._append_headers()
Exemplo n.º 4
0
#!/usr/bin/python
from HyperText.HTML import BR, TABLE, TR, TH, TD, EM, quote_body
from HyperText.Documents import Document

t = TABLE()
tr = TR(TH(BR()))
for i in range(16): tr.append(TH(hex(i)))
t.append(tr)

for j in range(0,128,16):
    tr = TR(TH(hex(j)))
    t.append(tr)
    for i in range(16):
        v = i+j
        tr.append(TD(EM(v), BR(), quote_body(repr(chr(v)))))

d = Document(t)
print d
Exemplo n.º 5
0
Arquivo: www.py Projeto: cerha/pytis
class BaseDBTable(object):
    def __init__(self,
                 spec,
                 columns,
                 condition=None,
                 sort=(),
                 show_headers=True,
                 klass=None,
                 **attrs):
        """Vytvoř tabulku, jejíž obsah je získán z databázového objektu.

        Argumenty:

        spec -- název specifikace
        columns -- seznam sloupců, které se použijí v HTML tabulce
        condition -- podmínka odpovídající argumentu volání
                     pytis.data.select()
        sort -- řazení odpovídající argumentu volání pytis.data.select()
        show_headers -- pokud je True, zobrazí se záhlaví sloupců, na základě
                        'label' z jednotlivých políček
        klass -- None nebo funkce jednoho argumentu, kterým je řádek tabulky
                 a která vrací None nebo odpovídající styl
        attrs -- atributy pro HyperText.TABLE

        Vrací instanci HyperText.TABLE.

        """
        self._spec = spec
        self._columns = columns
        self._condition = condition
        self._sort = sort
        self._view = pytis.util.resolver().get(self._spec, 'view_spec')
        self._data = pytis.util.data_object(self._spec)
        self._fields = self._get_fields()
        self._klass = klass
        self._table = TABLE(**attrs)
        if show_headers:
            self._headers = self._get_headers()
            self._append_headers()

    def _get_headers(self):
        return [f.label() for f in self._fields]

    def _append_headers(self):
        headerline = TR(*[TH(h) for h in self._headers])
        self._table.append(headerline)

    def _get_fields(self):
        return [self._view.field(c) for c in self._columns]

    def _col_aligns(self):
        def align(f):
            column = self._data.find_column(f.id())
            if column and isinstance(column.type(), pytis.data.Number):
                return 'right'
            else:
                return 'left'

        return [align(f) for f in self._fields]

    def spec(self):
        return self._spec

    def columns(self):
        return self._columns

    def condition(self):
        return self._condition

    def sort(self):
        return self._sort

    def dbrows(self):
        rows = dbselect(self._spec, condition=self._condition, sort=self._sort)
        return [
            pytis.data.Row([(c, r[c]) for c in self._columns]) for r in rows
        ]

    def table(self):
        secret_columns = [
            c for c in self._columns
            if not self._data.permitted(c, pytis.data.Permission.VIEW)
        ]
        aligns = self._col_aligns()
        rows = self.dbrows()
        if len(rows) > 0:
            for row in rows:
                r = TR()
                for i, c in enumerate(row):
                    if c in secret_columns:
                        val = c.type().secret_export()
                    else:
                        val = c.export()
                    if self._klass:
                        style = self._klass(row, self._columns[i])
                        if style:
                            r.append(TD(val, align=aligns[i], klass=style))
                        else:
                            r.append(TD(val, align=aligns[i]))
                    else:
                        r.append(TD(val, align=aligns[i]))
                self._table.append(r)
        return self._table
Exemplo n.º 6
0
#!/usr/bin/python
from HyperText.HTML import BR, TABLE, TR, TH, TD, EM, quote_body
from HyperText.Documents import Document

t = TABLE()
tr = TR(TH(BR()))
for i in range(16):
    tr.append(TH(hex(i)))
t.append(tr)

for j in range(0, 128, 16):
    tr = TR(TH(hex(j)))
    t.append(tr)
    for i in range(16):
        v = i + j
        tr.append(TD(EM(v), BR(), quote_body(repr(chr(v)))))

d = Document(t)
print d
Exemplo n.º 7
0
class BaseDBTable(object):

    def __init__(self, spec, columns, condition=None, sort=(),
                 show_headers=True, klass=None,
                 **attrs):
        """Vytvoř tabulku, jejíž obsah je získán z databázového objektu.

        Argumenty:

        spec -- název specifikace
        columns -- seznam sloupců, které se použijí v HTML tabulce
        condition -- podmínka odpovídající argumentu volání
                     pytis.data.select()
        sort -- řazení odpovídající argumentu volání pytis.data.select()
        show_headers -- pokud je True, zobrazí se záhlaví sloupců, na základě
                        'label' z jednotlivých políček
        klass -- None nebo funkce jednoho argumentu, kterým je řádek tabulky
                 a která vrací None nebo odpovídající styl
        attrs -- atributy pro HyperText.TABLE
        
        Vrací instanci HyperText.TABLE.
        
        """
        self._spec = spec
        self._columns = columns
        self._condition = condition
        self._sort = sort
        self._view = pytis.util.resolver().get(self._spec, 'view_spec')
        self._data = data_object(self._spec)
        self._fields = self._get_fields()
        self._klass = klass
        self._table = TABLE(**attrs)
        if show_headers:
            self._headers = self._get_headers()
            self._append_headers()

    def _get_headers(self):
        return [f.label() for f in self._fields]

    def _append_headers(self):
        headerline = TR(*[TH(h) for h in self._headers])
        self._table.append(headerline)

    def _get_fields(self):
        return [self._view.field(c) for c in self._columns]

    def _col_aligns(self):
        def align(f):
            column = self._data.find_column(f.id())
            if column and isinstance(column.type(), pytis.data.Number):
                return 'right'
            else:
                return 'left'
        return [align(f) for f in self._fields]

    def spec(self):
        return self._spec

    def columns(self):
        return self._columns

    def condition(self):
        return self._condition

    def sort(self):
        return self._sort

    def dbrows(self):
        rows = dbselect(self._spec, condition=self._condition,
                        sort=self._sort)
        return [pytis.data.Row([(c, r[c]) for c in self._columns])
                for r in rows]
        
    def table(self):
        secret_columns = [c for c in self._columns
                          if not self._data.permitted(c, pytis.data.Permission.VIEW)]
        aligns = self._col_aligns()
        rows = self.dbrows()
        if len(rows) > 0:
            for row in rows:
                r = TR()
                for i, c in enumerate(row):
                    if c in secret_columns:
                        val = c.type().secret_export()
                    else:
                        val = c.export()
                    if self._klass:
                        style = self._klass(row, self._columns[i])
                        if style:
                            r.append(TD(val, align=aligns[i],
                                klass=style))
                        else:
                            r.append(TD(val, align=aligns[i]))
                    else:
                        r.append(TD(val, align=aligns[i]))
                self._table.append(r)
        return self._table