Description
Originating from the technical exploration in T368713, the scope of this ticket is:
1. Collection definition and storage
a) We will define a simple mechanism to mark a campaign page as part of a "translation campaign". We will not retrospectively support any of the existing campaign pages.
b) These are normal wikipages. The pages can be edited as usual. The only difference is the page will have a 'marker' that tells this page is a translation campaign source. More marker information in T373132
c) Document the above process.
2. Candidate recommendation
a) The recommendation API, if the API request includes a includes-campaign param, will look for all pages with the above defined 'marker' using appropriate cirrus-search (Help:CirrusSearch#Hastemplate)
b) 3-stage processing;
-> For these pages, fetch all the candidate articles listed as Article Titles and QIDs. That article list, with the source language information forms featured list candidates.
-> Note that these articles need to go through the filtering stage to find all translatable articles, and then the ranking stage to sort/serve according to relevance.
c) Cache the pages we find with that 'marker' with a reasonable cache eviction policy.
-> Cache the article lists too.
-> Use diskcache for this purpose (recommended).
-> Fill this cache on API server startup (recommended)
d) API response can contain additional information on from where the candidates were sourced. This may not be useful for UI at this point, but I consider this info will help the development and debugging workflow.
Test Scenarios
TBD
Acceptance Criteria
TBD