Skip to content

Conversation

@killianeletellier
Copy link

Summary

Implemented sorting of events by descending start date in the EventsSearchProvider class.
This ensures that the most recent events appear first in the search results.

Checklist

usort($searchResults, function ($a, $b) {
$componentA = $this->getPrimaryComponent($a['calendardata'], self::$componentType);
$componentB = $this->getPrimaryComponent($b['calendardata'], self::$componentType);
$dateA = $componentA->DTSTART->getDateTime();

Check notice

Code scanning / Psalm

PossiblyNullReference

Cannot call method getDateTime on possibly null value
usort($searchResults, function ($a, $b) {
$componentA = $this->getPrimaryComponent($a['calendardata'], self::$componentType);
$componentB = $this->getPrimaryComponent($b['calendardata'], self::$componentType);
$dateA = $componentA->DTSTART->getDateTime();

Check notice

Code scanning / Psalm

UndefinedMethod

Method Sabre\VObject\Property::getDateTime does not exist
$componentA = $this->getPrimaryComponent($a['calendardata'], self::$componentType);
$componentB = $this->getPrimaryComponent($b['calendardata'], self::$componentType);
$dateA = $componentA->DTSTART->getDateTime();
$dateB = $componentB->DTSTART->getDateTime();

Check notice

Code scanning / Psalm

PossiblyNullReference

Cannot call method getDateTime on possibly null value
$componentA = $this->getPrimaryComponent($a['calendardata'], self::$componentType);
$componentB = $this->getPrimaryComponent($b['calendardata'], self::$componentType);
$dateA = $componentA->DTSTART->getDateTime();
$dateB = $componentB->DTSTART->getDateTime();

Check notice

Code scanning / Psalm

UndefinedMethod

Method Sabre\VObject\Property::getDateTime does not exist
}

protected function generateSubline(Component $eventComponent): string {
protected function generateSubline(Component $eventComponent): string

Check notice

Code scanning / Psalm

InvalidReturnType

The declared return type 'string' for OCA\DAV\Search\EventsSearchProvider::generateSubline is incorrect, got 'false|int|string'
@solracsf solracsf added the 2. developing Work in progress label Jul 16, 2024
@github-actions
Copy link
Contributor

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

(If you believe you should not receive this message, you can add yourself to the blocklist.)

Signed-off-by: Killiane Letellier <killiane.letellier@mailo.com>
@teutat3s
Copy link

teutat3s commented Apr 8, 2025

Thank you for starting this!

When testing this PR, I noticed that sorting of events works nicely. But events are still loaded / paginated starting with the oldest event first.

  1. Search "event name"
  2. See oldest result, e.g. from 2020
  3. Click "Load additional results" ("Weitere Ergebnisse laden")
  4. Newer result show up above the previous ones, e.g. events from 2024

This was referenced Aug 22, 2025
This was referenced Sep 2, 2025
This was referenced Sep 25, 2025
@skjnldsv skjnldsv modified the milestones: Nextcloud 32, Nextcloud 33 Sep 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sorting of search results for events

6 participants