Spun off from T194707#4620358
To make Category filter more useful, we will add the ability to use Category filters without a Participants list. Organizers will be able to filter events by category, by participants or by a combination of both—but they must select at least one filter (to reduce system load and keep reports to a reasonable size).
**When there are Categories but NO Participants:**
* Users need tomust supply a minimum of at least one category for each wiki about which they want results—or else. If they don't, they'll get no results for thatthe unfiltered wiki (and will probably see an error message, as per T216280).
* No metrics will be available for Wikidata (because category filtering isn't available there)On Wikipedias, Category filtering will apply only to __main namespace pages,__ which means that when no Participants are supplied, no metrics about local file uploading will be reported for Wikipedias.
* On Commons, Category filtering applies to files, as per T214744, and will work fine without Participants.
* On Wikidata, category filtering is not available; no metrics will be produced about Wikidata unless Participants are supplied.
* On Wikipedias, Category filtering will apply only to __main namespace pages,__ which means that when no Participants are supplied, no metrics about local file uploading will be reported for Wikipedias. (On Commons, Category filtering applies to files, as per T214744.)
* We'll need to impose sane limits on the number of pages to process. This is the [[ https://github.com/wikimedia/grantmetrics/blob/master/src/AppBundle/Repository/EventRepository.php#L113-L115 | trickiest part ]]. !!How will we determine what the limit will be?!!
* The system will count edits by all users, including IPs, but excluding bots.
* We'll need to test to make sure the revision browser still works as expected (I always seem to forget about that page)
**When there are Participants AND Categories:**
* On the Wikipedias for which categories are supplied, the PAGES about which results are returned will be those at the intersection of Participants AND Categories.
* Results for locally uploaded files, however, will be governed by the __Participants filter only__ (because categories don't affect uploaded files on Wikipedias). I.e., when a Participants list is used, metrics will be produced about all files uploaded to Wikipedias, regardless of whether a category is supplied or which categories are supplied.
* Users will also get Wikidata metrics (because the Participants list covers the minimum requirement there as well).
* If categories are supplied on Commons, the FILES about which metrics are returned will be those at the intersection of Participants AND Categories.