Example #1
0
 class BarTable(Table):
     select = Column.select()  # Shortcut for creating checkboxes to select rows
     b__a = Column.number(  # Show "a" from "b". This works for plain old objects too.
         filter__include=True,  # put this field into the query language
     )
     c = Column(
         bulk__include=True,  # Enable bulk editing for this field
         filter__include=True,
     )
Example #2
0
    class FooTable(Table):
        # I can add checkboxes to each row
        s = Column.select()
        a = Column.number(
        )  # This is a shortcut that results in the css class "rj" (for right justified) being added to the header and cell
        b = Column()
        c = Column(cell__format=lambda value, **_: value[-1]
                   )  # Display the last value of the tuple
        sum_c = Column(cell__value=lambda row, **_: sum(row.c),
                       sortable=False)  # Calculate a value not present in Foo

        class Meta:
            page_size = 3
            # And register a button that will get the selection passed in its post_handler
            bulk__actions__print = Action.primary(
                display_name='print me',
                post_handler=bulk__actions__print__post_handler)
Example #3
0
    class BarTable(Table):
        select = Column.select(
        )  # Shortcut for creating checkboxes to select rows
        b__a = Column.number(
        )  # Show "a" from "b". This works for plain old objects too.

        b = Column.from_model(
            model=TBar,
            model_field_name='b',
            bulk__include=True,
            filter__include=True,
        )
        c = Column(bulk__include=True)  # The form is created automatically

        d = Column(
            display_name='Display name',
            attr__class__css_class=True,
            header__url='https://docs.iommi.rocks',
            sortable=False,
            group='Foo',
            auto_rowspan=True,
            filter__include=True,
            cell__value=lambda row, **_: row.b.a // 3,
            cell__format=lambda value, **_: '- %s -' % value,
            cell__attrs__class={'text-center': True},
            cell__attrs__title='cell title',
            cell__url='url',
            cell__url_title='cell url title',
        )
        e = Column(group='Foo', cell__value='explicit value', sortable=False)
        f = Column(include=False, sortable=False)
        g = Column(attr='c', sortable=False)
        django_templates_for_cells = Column(
            sortable=False,
            cell__value=None,
            cell__template='kitchen_sink_cell_template.html',
            group='Bar',
        )

        class Meta:
            title = 'Kitchen sink'
            _name = 'bar'
            page_size = 20
Example #4
0
class EntryUnapproveTable(EntryTable):
    select = Column.select()

    class Meta:
        title = 'Approved entries'
        bulk__title = None

        @staticmethod
        def rows(table, **_):
            return Entry.objects.filter(approver=table.get_request().user)

        bulk__actions__submit = dict(
            include=True,
            attrs__value='Unapprove',
        )

        @staticmethod
        def bulk__actions__submit__post_handler(table, **_):
            table.bulk_queryset().update(approver=None)