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)
#!/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
#!/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
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
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