User:TriforceTony/Sandbox/Progress
The project tracking pages that I've made use a combination of DPL and cargo queries. It uses DPL to find a range of pages, and cargo to retrieve any information about those pages that is stored.
What this means is that you can retrieve any number of pages (which through this method is reliant upon categorization), but you need to have information stored in order to track progress made along this DPL query.
In essence the process of creating a progress list would look like this:
- creating a page and categorizing it (such as with
Category:Locations in X
) - creating a cargo template that declares a table and then works to store information in that table when used on other pages. What is stored may change based on what you need to look at and you can always make more tables/templates, but it should at least have information on what is needed for the page
- create the cargo table once stored information exists. The range of what you're asking for is called the
scope
here. - create a project page that performs queries (see below) to display what is stored, this project page should use the Project Progress template to calculate the percentage of work that is completed
There are limitations to this process because of the limitations of the software. The biggest limitation is that it works by relying on the presence of something else. The Project Progress template makes its calculation by subtracting the number of things left to do from the number of total pages. If there are no pages that contain the template defined in its DPL query, it will subtract 0 and announce that 100% of the work is completed, which may not be true. Similarly, if new pages are made in a category that the DPL query is looking at but these pages do not have the template that it uses to subtract from the total, it will simply add this page to the total and count it among those that are completed. Please consider adding the appropriate template for the project when creating a page so that it is not marked incorrectly and ignored.