Module:Article history/config

This is an old revision of this page, as edited by Mr. Stradivarius (talk | contribs) at 15:38, 10 October 2014 (add basic status codes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

-------------------------------------------------------------------------------
--              Configuration data for [[Module:Article history]]
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
-- Actions
-------------------------------------------------------------------------------

local actions = {
	FAC = {
		name = 'Featured article candidate',
		results = {
			promoted = {
				text = 'Promoted',
				aliases = {'pass', 'passed'}
			},
			['not promoted'] = {
				text = 'Not promoted',
				aliases = {'fail', 'failed'}
			}
		},
		validStatuses = {
			FFAC = true,
			FA = true,
			FFA = true
		},
		blurb = '',
		image = ''
	},
	FAR = {
		name = 'Featured article review',
		aliases = {'FARC'},
		results = {
			kept = {
				text = 'Kept',
				aliases = {'pass', 'passed', 'keep'}
			},
			demoted = {
				text = 'Demoted',
				aliases = {'fail', 'failed', 'remove', 'removed'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			}
		},
		validStatuses = {
			FA = true,
			FFA = true
		},
		blurb = '',
		image = '',
		categories = {
			function (actionObj)
				local result = actionObj:getResult()
				if result == 'demoted' or result == 'merged' then
					local currentStatus = actionObj:getCurrentStatus()
					local sortKey = actionObj.title.subjectPageTitle.prefixedText
					if currentStatus == 'FA' or currentStatus == 'FL' then
						sortKey = '#' .. sortKey
					end
					return 'Wikipedia former featured articles', sortKey
				end
			end
		}
	},
	BP = {
		name = 'Brilliant prose',
		results = {
			nominated = {
				text = 'Nominated',
				aliases = {'pass', 'promoted', 'nom'}
			}
		},
		validStatuses = {
		},
		blurb = '',
		image = ''
	},
	RBP = {
		name = 'Refreshing brilliant prose',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'pass', 'passed', 'keep'}
			},
			['not kept'] = {
				text = 'Not kept',
				aliases = {'fail', 'failed', 'remove', 'removed', 'demoted'}
			}
		},
		validStatuses = {
			FA = true,
			FFAC = true
		},
		blurb = '',
		image = '',
		categories = {
			function (actionObj)
				if actionObj:getResult() == 'not kept' then
					return 'Wikipedia former brilliant prose', actionObj.title.text
				end
			end
		}
	},
	FLC = {
		name = 'Featured list candidate',
		results = {
			promoted = {
				text = 'Promoted',
				aliases = {'pass', 'passed'}
			},
			['not promoted'] = {
				text = 'Not promoted',
				aliases = {'fail', 'failed'}
			}
		},
		validStatuses = {
			FFLC = true,
			FL = true,
			FFL = true
		},
		blurb = '',
		image = ''
	},
	FLR = {
		name = 'Featured list removal candidate',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'pass', 'passed', 'keep'}
			},
			demoted = {
				text = 'Demoted',
				aliases = {'fail', 'failed', 'remove', 'removed'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			}
		},
		validStatuses = {
			FL = true,
			FFL = true
		},
		blurb = '',
		image = '',
		categories = {
			function (actionObj)
				local result = actionObj:getResult()
				if result == 'demoted' or result == 'merged' then
					local sortKey
					if actionObj:getCurrentStatus() == 'FL' then
						sortKey = '#' .. actionObj.title.subjectPageTitle.prefixedText
					else
						sortKey = actionObj.title.text
					end
					return 'Wikipedia former featured lists', sortKey
				end
			end
		}
	},
	FTC = {
		name = 'Featured topic candidate',
		results = {
			promoted = {
				text = 'Promoted',
				aliases = {'pass', 'passed'}
			},
			['not promoted'] = {
				text = 'Not promoted',
				aliases = {'fail', 'failed'}
			}
		},
		validStatuses = false, -- Any status
		blurb = '',
		image = ''
	},
	FTR = {
		name = 'Featured topic removal candidate',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'pass', 'passed', 'keep'}
			},
			demoted = {
				text = 'Demoted',
				aliases = {'fail', 'failed', 'remove', 'removed'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			}
		},
		validStatuses = false, -- Any status
		blurb = '',
		image = ''
	},
	FPOC = {
		name = 'Featured portal candidate',
		results = {
			promoted = {
				text = 'Promoted',
				aliases = {'pass', 'passed'}
			},
			['not promoted'] = {
				text = 'Not promoted',
				aliases = {'fail', 'failed'}
			}
		},
		validStatuses = {
			FFPOC = true,
			FPO = true,
			FFPO = true
		},
		blurb = '',
		image = ''
	},
	FPOR = {
		name = 'Featured portal review',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'pass', 'passed', 'keep'}
			},
			demoted = {
				text = 'Demoted',
				aliases = {'fail', 'failed', 'remove', 'removed'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			}
		},
		validStatuses = {
			FPO = true,
			FFPO = true
		},
		blurb = '',
		image = ''
	},
	GAN = {
		name = 'Good article nominee',
		aliases = {'GAC'},
		results = {
			listed = {
				text = 'Listed',
				aliases = {'pass', 'passed', 'promoted'}
			},
			['not listed'] = {
				text = 'Not listed',
				aliases = {'fail', 'failed', 'not promoted'}
			}
		},
		validStatuses = {
			FGAN = true,
			GA = true,
			DGA = true,
			FFAC = true,
			FA = true,
			FFA = true
		},
		blurb = '',
		image = '',
		categories = {
			function (actionObj)
				if actionObj:getResult() == 'not listed' then
					local currentStatus = actionObj:getCurrentStatus()
					if currentStatus ~= 'FA'
						and currentStatus ~= 'GA'
						and currentStatus ~= 'FFA'
					then
						return 'Former good article nominees', actionObj.title.text
					end
				end
			end
		}
	},
	GAR = {
		name = 'Good article reassessment',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'pass', 'passed', 'keep'}
			},
			delisted = {
				text = 'Delisted',
				aliases = {'fail', 'failed'}
			},
			listed = {
				text = 'Listed'
			},
			['not listed'] = {
				text = 'Not listed'
			}
		},
		validStatuses = {
			GA = true,
			DGA = true,
			FFAC = true,
			FA = true,
			FFA = true
		},
		blurb = '',
		image = '',
		categories = {
			function (actionObj)
				if actionObj:getResult() == 'delisted' then
					local currentStatus = actionObj:getCurrentStatus()
					if currentStatus ~= 'FA'
						and currentStatus ~= 'GA'
					then
						return 'Delisted good articles', actionObj.title.text
					end
				end
			end
		}
	},
	GTC = {
		name = 'Good topic candidate',
		results = {
			promoted = {
				text = 'Promoted',
				aliases = {'pass', 'passed'}
			},
			['not promoted'] = {
				text = 'Not promoted',
				aliases = {'fail', 'failed'}
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	GTR = {
		name = 'Good topic removal candidate',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'pass', 'passed', 'keep'}
			},
			demoted = {
				text = 'Demoted',
				aliases = {'fail', 'failed', 'remove', 'removed'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	PR = {
		name = 'Peer review',
		results = {
			reviewed = {
				text = 'Reviewed',
			},
			['not reviewed'] = {
				text = 'Not reviewed',
			}
		},
		validStatuses = false,
		blurb = '',
		image = '',
		categories = {'Old requests for peer review'}
	},
	WPR = {
		name = function (actionObj)
			local names = {
				approved = 'WikiProject approved revision',
				copyedited = 'Guild of Copy Editors',
				collaboration = 'WikiProject collaboration',
				maindate = "Today's featured article"
			}
			local result = actionObj:getResult()
			return result and names[result] or 'WikiProject peer review'
		end,
		results = {
			approved = {
				text = function(actionObj)
					if actionObj.oldid then
						local url = mw.uri.fullUrl(
							actionObj.title.prefixedText,
							{diff = 'cur', oldid = actionObj.oldid}
						)
						return string.format(
							'[%s %s]',
							tostring(url),
							'Diff to current version'
						)
					else
						error(string.format(
							"No oldid detected for the approved version; " ..
								"please set the 'action%doldid' parameter " ..
								"or give the 'action%dresult' parameter a " ..
								"different value.",
							actionObj.paramNum,
							actionObj.paramNum
						))
					end
				end,
				aliases = {'approved version'}
			},
			copyedited = {
				text = 'Copyedited',
				aliases = {'copyedit', 'proofread'}
			},
			maindate = {
				text = 'Main Page'
			},
			collaborated = {
				text = 'Collaborated',
				aliases = {'cotw', 'collaboration'}
			},
			reviewed = {
				text = 'Reviewed',
				aliases = {''} -- This is "Reviewed" if the reason is blank, but not absent.
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	WAR = {
		name = 'WikiProject A-class review',
		results = {
			approved = {
				text = 'Approved',
				aliases = {'pass', 'passed'}
			},
			['not approved'] = {
				text = 'Not approved',
				aliases = {'fail', 'failed', 'not reviewed'}
			},
			reviewed = {
				text = 'Reviewed',
				aliases = {''}
			},
			kept = {
				text = 'Kept',
				aliases = {'keep'}
			},
			demoted = {
				text = 'Demoted',
				aliases = {'demote'}
			},
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	AFD = {
		name = 'Articles for deletion',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'withdrawn', 'keep'}
			},
			deleted = {
				text = 'Deleted',
				aliases = {'delete'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			},
			['no consensus'] = {
				text = 'No consensus'
			},
			['speedily kept'] = {
				text = 'Speedily kept',
				aliases = {'speedy keep'}
			},
			['speedily deleted'] = {
				text = 'Speedily deleted',
				aliases = {'speedy delete'}
			},
			redirected = {
				text = 'Redirected',
				aliases = {'redirect'}
			},
			renamed = {
				text = 'Renamed',
				aliases = {'rename', 'move', 'moved'}
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	MFD = {
		name = 'Miscellanea for deletion',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'withdrawn', 'keep'}
			},
			deleted = {
				text = 'Deleted',
				aliases = {'delete'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			},
			['no consensus'] = {
				text = 'No consensus'
			},
			['speedily kept'] = {
				text = 'Speedily kept',
				aliases = {'speedy keep'}
			},
			['speedily deleted'] = {
				text = 'Speedily deleted',
				aliases = {'speedy delete'}
			},
			redirected = {
				text = 'Redirected',
				aliases = {'redirect'}
			},
			renamed = {
				text = 'Renamed',
				aliases = {'rename', 'move', 'moved'}
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	TFD = {
		name = 'Templates for discussion',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'withdrawn', 'keep'}
			},
			deleted = {
				text = 'Deleted',
				aliases = {'delete'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			},
			['no consensus'] = {
				text = 'No consensus'
			},
			['speedily kept'] = {
				text = 'Speedily kept',
				aliases = {'speedy keep'}
			},
			['speedily deleted'] = {
				text = 'Speedily deleted',
				aliases = {'speedy delete'}
			},
			redirected = {
				text = 'Redirected',
				aliases = {'redirect'}
			},
			renamed = {
				text = 'Renamed',
				aliases = {'rename', 'move', 'moved'}
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	CSD = {
		name = 'Candidate for speedy deletion',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'withdrawn', 'keep'}
			},
			deleted = {
				text = 'Deleted',
				aliases = {'delete'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			},
			['no consensus'] = {
				text = 'No consensus'
			},
			['speedily kept'] = {
				text = 'Speedily kept',
				aliases = {'speedy keep'}
			},
			['speedily deleted'] = {
				text = 'Speedily deleted',
				aliases = {'speedy delete'}
			},
			redirected = {
				text = 'Redirected',
				aliases = {'redirect'}
			},
			renamed = {
				text = 'Renamed',
				aliases = {'rename', 'move', 'moved'}
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	PROD = {
		name = 'Proposed deletion',
		results = {
			kept = {
				text = 'Kept',
				aliases = {'withdrawn', 'keep'}
			},
			deleted = {
				text = 'Deleted',
				aliases = {'delete'}
			},
			merged = {
				text = 'Merged',
				aliases = {'merge'}
			},
			['no consensus'] = {
				text = 'No consensus'
			},
			['speedily kept'] = {
				text = 'Speedily kept',
				aliases = {'speedy keep'}
			},
			['speedily deleted'] = {
				text = 'Speedily deleted',
				aliases = {'speedy delete'}
			},
			redirected = {
				text = 'Redirected',
				aliases = {'redirect'}
			},
			renamed = {
				text = 'Renamed',
				aliases = {'rename', 'move', 'moved'}
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	},
	DRV = {
		name = 'Deletion review',
		results = {
			endorsed = {
				text = 'Endorsed',
				aliases = {'endorse'}
			},
			relisted = {
				text = 'Relisted',
				aliases = {'relist'}
			},
			overturned = {
				text = 'Overturned',
				aliases = {'overturn'}
			},
			['no consensus'] = {
				text = 'No consensus'
			}
		},
		validStatuses = false,
		blurb = '',
		image = ''
	}
}

-------------------------------------------------------------------------------
-- Statuses
-------------------------------------------------------------------------------

local statuses = {
	FFA = {
	},
	FAC = {
	},
	FFAC = {
		aliases = {'FACFAILED'}
	},
	FA = {
	},
	FFLC = {
	},
	FL = {
	},
	FFL = {
	},
	GA = {
		aliases = {'FFA/GA'}
	},
	FGAN = {
		aliases = {'FAILEDGA'}
	},
	DGA = {
		aliases = {'DELISTEDGA'}
	},
	FFT = {
	},
	FFTC = {
	},
	FPO = {
	},
	FFPO = {
	},
	FFPOC = {
	},
}

local invalidStatuses = {
	FAR = {
	},
	STUB = {
		aliases = {'START', 'B', 'A'}
	},
	NA = {
		aliases = {'PR', ''}
	},
}

return {
	actions = actions,
	statuses = statuses
}