@@ 224,24 224,22 @@ class ListBuilderCtx:
@Gtk.Template(resource_path="/net/kirgroup/confy/pages/events.ui")
class PageEvents(Gtk.Box):
+ """Talks list page (called "Events" from pentabarf xml)"""
__gtype_name__ = "CPageEvents"
+ pagebox = Gtk.Template.Child()
+
+ search_button = Gtk.Template.Child()
+ searchbar = Gtk.Template.Child()
+
filters = None
group_by = None
_update_handler_id = None
_value = None
- pagebox = Gtk.Template.Child()
-
- search_button = Gtk.Template.Child()
- searchbar = Gtk.Template.Child()
-
timeout = InterruptibleTimeout()
- def get_value(self):
- return self._value
-
@GObject.Signal(name="row-activated")
def row_activated(self):
...
@@ 273,6 271,9 @@ class PageEvents(Gtk.Box):
def model(self, v):
self._model = v
+ def get_value(self):
+ return self._value
+
def set_model(self, v):
self.props.model = v
@@ 311,7 312,7 @@ class PageEvents(Gtk.Box):
self.props.title = _("{} Track").format(obj)
self.props.subtitle = ", ".join(subtitle)
self.filters = {'track': obj}
- self.group_by = "day"
+ self.group_by = "date"
elif self._model == "rooms":
if obj.name is None:
@@ 322,13 323,13 @@ class PageEvents(Gtk.Box):
self.props.title = title
self.props.subtitle = ""
self.filters = {'room': obj}
- self.group_by = "day"
+ self.group_by = "date"
elif self._model == "starred":
self.props.title = _("Starred")
self.props.subtitle = ""
self.filters = {'starred': True}
- self.group_by = "day" # TODO: or None?
+ self.group_by = "date" # TODO: or None?
self._update_handler_id = models.dbUpdateWatcher.connect("update", self.update)
elif self.model == "search":
@@ 341,6 342,7 @@ class PageEvents(Gtk.Box):
else:
print(f"PageEvents: set_value: no valid model set '{self._model}'")
+ return
self.update()
@@ 396,7 398,7 @@ class PageEvents(Gtk.Box):
return a widget for a new header, or None.
"""
_title = None
- if self.group_by == "day":
+ if self.group_by == "date":
if before is None or current.date.strftime(FMT_DAY) != before.date.strftime(FMT_DAY):
_title = current.date.strftime(FMT_DAY)
elif self.group_by == "track":
@@ 422,11 424,15 @@ class PageEvents(Gtk.Box):
print(f"PageEvents: get_objects for {self._model} {self.filters}")
if self.model == "search":
term = self.searchbar.entry.get_text()
+ print(f"... search for {term}")
if term == "":
return []
- return models.Event.search(self.searchbar.entry.get_text())
+ return models.Event.search(term)
if self.filters is None:
return []
+ if self.searchbar.is_searching():
+ term = self.searchbar.entry.get_text()
+ return models.Event.search(term, order_by=self.group_by, **self.filters)
return models.Event.filter(**self.filters)
def build_row(self, obj):