diff --git a/canaille/forms.py b/canaille/forms.py index e35b1900..5befbbd1 100644 --- a/canaille/forms.py +++ b/canaille/forms.py @@ -47,7 +47,11 @@ class TableForm(FlaskForm): def __init__(self, cls=None, page_size=25, filter=None, **kwargs): filter = filter or {} super().__init__(**kwargs) - self.items = cls.query(**filter) + if self.query.data: + self.items = cls.fuzzy(self.query.data, **filter) + else: + self.items = cls.query(**filter) + self.page_size = page_size self.nb_items = len(self.items) self.page_max = max(1, math.ceil(self.nb_items / self.page_size)) @@ -56,6 +60,7 @@ class TableForm(FlaskForm): self.items_slice = self.items[first_item:last_item] page = wtforms.IntegerField(default=1) + query = wtforms.StringField(default="") def validate_page(self, field): if field.data < 1 or field.data > self.page_max: diff --git a/canaille/templates/groups.html b/canaille/templates/groups.html index 1507f999..83e1caf5 100644 --- a/canaille/templates/groups.html +++ b/canaille/templates/groups.html @@ -1,4 +1,5 @@ {% extends theme('base.html') %} +{% import "macro/table.html" as table %} {% block content %}