Currently, indexing recurring events in Search API creates only one entry for the event. This presents UX problems when searching for events. The primary issue is that on a listing of events if the individual instances in a series of recurring events are not separated, they won't show up in the list of events where a searcher would expect. Instead of the individual instances being interspersed in the chronological order of events, the event would only show up once.

Another issue occurs during filtering when filtering for events the end by certain date. For example, if an event series begins on August 1st and recurs daily for one week, ending on August 8th, if someone searches events ending before August 8th they would not receive the expected results. Because the event series contains some events that end before August 8th, they would expect to see those instances of the event.

For content using the date recur module, this module (https://www.drupal.org/project/date_recur_search_api) has addressed this issue. It would be great to have this feature for Smart Date recurring events. Taking that module as inspiration and guidance I have worked on a solution for Smart Date.

Issue fork smart_date-3467018

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

  • 3467018-smart-date-recurring Comparecompare
  • 4.1.x Comparecompare

Comments

lelkneralfaro created an issue. See original summary.

elkaro’s picture

The code in the issue fork only works with code I have added in this sandbox module: https://git.drupalcode.org/sandbox/lelkneralfaro-3467019

So, if Smart Date maintainers are willing for this feature to be fully developed in smart date I would move what I have begun on in the sandbox module into this issue fork.

As far as I can tell for this feature to be implemented as an independent module there would have to be these additions to Smart Date which is why I opened this issue fork.

jonraedeke’s picture

This feature would be extremely useful! Thank you for this work! The fork and sandbox module work really well.

robpowell made their first commit to this issue’s fork.

robpowell’s picture

This solution works well for us. What steps can we help with to make it more prime time ready?

nickdjm’s picture

This feature is a pretty large requirement for a client we have. We'd like to know if there's anything we can do to help as well.

mandclu’s picture

I really appreciate the work that has gone into the sandbox module posted in #2. I think it would make sense to promote that to a full project, and then I could add a link to it on the project page here.

elkaro’s picture

@nickdjm, @robpowell

I have added you both as co-maintainers on the sandbox project.

If either of you would like to take on promoting the sandbox module to a full project, as @mandclu suggests and getting it to where you need it to be for your work, your contributions are welcome.

nickdjm’s picture

I've promoted it out of sandbox: https://www.drupal.org/project/smart_date_recur_search_api

I am actively testing this on a project, so I'll see what still needs to be done with it.

jlj changed the visibility of the branch 3467018-smart-date-recurring to hidden.

jlj changed the visibility of the branch 3467018-smart-date-recurring to active.

mandclu’s picture

Version: 4.1.x-dev » 4.2.x-dev

The project page here has been updated, but I will also update the README.

  • mandclu committed c9f632cf on 4.2.x
    fix: #3467018 Smart Date Recurring Events as Separate Events in Search...
mandclu’s picture

Status: Active » Fixed

I have added a link to this project's page and README, so I don't see that there's more to do here. I did open some issues on Smart Date Recur Search API to improve its appeal. Thanks all!

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.