Module:WikiProject assessment progression and Module:WikiProject assessment progression/sandbox: Difference between pages
Appearance
(Difference between pages)
Content deleted Content added
Replace Module:No globals with require( "strict" ) |
use require('strict') instead of require('Module:No globals') |
||
Line 1: | Line 1: | ||
require('strict') |
require('strict') |
||
local |
local assessedClasses = { |
||
'List','Stub','Start','C','B', |
'List','Stub','Start','C','B', |
||
'GA','A','FA','FL','FM', |
'GA','A','FA','FL','FM', |
||
Line 10: | Line 10: | ||
local p = {} |
local p = {} |
||
local getArgs = require('Module:Arguments').getArgs |
local getArgs = require('Module:Arguments').getArgs |
||
local errorMessage = require('Module:Error') |
|||
local function categoryCount(category, project) |
local function categoryCount(category, project) |
||
Line 36: | Line 37: | ||
local function calculateProjectTotal(project) |
local function calculateProjectTotal(project) |
||
return countCategoryArticles( |
return countCategoryArticles(assessedClasses, project) + categoryCount('Unassessed', project) |
||
end |
end |
||
local function |
local function countHigherCategories(targetClass, project) |
||
local higherCategories = {} |
|||
if args[from_arg] and args[from_arg] ~= '' then |
|||
local classKey = getKeyForValue(targetClass, assessedClasses) |
|||
return args[from_arg] |
|||
for k, v in ipairs(assessedClasses) do |
|||
if k > classKey then |
|||
higherCategories[k - classKey] = v |
|||
end |
|||
end |
|||
return countCategoryArticles(higherCategories, project) |
|||
end |
|||
local function getKeyForValue(value, enclosingTable) |
|||
for k, v in ipairs(enclosingTable) do |
|||
if v == value then |
|||
⚫ | |||
end |
|||
end |
|||
return nil |
|||
end |
|||
local function setClasses(args) |
|||
local classes = {} |
|||
if args['class'] then |
|||
classes = {args['class']} |
|||
else |
else |
||
classes = assessedClasses |
|||
⚫ | |||
end |
end |
||
return classes |
|||
end |
end |
||
Line 53: | Line 76: | ||
function p._main(args) |
function p._main(args) |
||
local project = |
local project = args['project'] |
||
local classes = setClasses(args) |
|||
local classCount = countCategoryArticles(classes, project) |
local classCount = countCategoryArticles(classes, project) |
||
local total = calculateProjectTotal(project) |
local total = calculateProjectTotal(project) |
||
if total == 0 then |
|||
⚫ | |||
return errorMessage('Error: project not found for project name "'..project..'"') |
|||
else |
|||
⚫ | |||
end |
|||
end |
end |
||