Modulo:Indekso

El Vikifontaro

Dokumentado por ĉi tiu modulo povas esti kreata ĉe Modulo:Indekso/dokumentado

local p = {}

function p.progreso(frame)
	local index = mw.ext.proofreadPage.newIndex(mw.title.getCurrentTitle())
	if index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.PROBLEMATIC) > 0 then
		return "Problema[[Kategorio:Indeksoj - Problema]]"
	end
	if index.missingPages > 0 then
		return "Ne kompleta[[Kategorio:Indeksoj - Ne kompleta]]"
	end
	if index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.NOT_PROOFREAD) > 0 then
		return "Ne provlegita[[Kategorio:Indeksoj - Ne provlegita]]"
	end
	if index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.PROOFREAD) > 0 then
		return "Provlegita[[Kategorio:Indeksoj - Provlegita]]"
	end
	if index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.VALIDATED)
		+ index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.WITHOUT_TEXT) == index.pageCount
		and index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.VALIDATED) > 0 then
		return "Validigita[[Kategorio:Indeksoj - Validigita]]"
	end
	return "Nekonata progreso[[Kategorio:Indeksoj - Nekonata progreso]]"	
end

function p.tabelo(frame)
	local index = mw.ext.proofreadPage.newIndex(mw.title.getCurrentTitle())
	local missing_pages = index.missingPages
	local red_pages = index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.NOT_PROOFREAD)
	local problematic_pages = index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.PROBLEMATIC)
	local yellow_pages = index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.PROOFREAD)
	local green_pages = index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.VALIDATED)
	local grey_pages = index:pagesWithLevel(mw.ext.proofreadPage.QualityLevel.WITHOUT_TEXT)
	local total_pages = missing_pages + red_pages + problematic_pages + yellow_pages + green_pages
	local page_count = index.pageCount
	local procento = (red_pages + yellow_pages * 2 + green_pages * 3) * 100 / ((page_count - grey_pages) * 3)
	
	local html = mw.html.create("table")
	html:wikitext(mw.ustring.format("<tr><td>Kreotaj paĝoj</td><td>%i</td><td>%.2f%%</td></tr>", missing_pages, missing_pages/total_pages*100))
	html:wikitext(mw.ustring.format("<tr><td>Ne provlegitaj paĝoj</td><td>%i</td><td>%.2f%%</td></tr>", red_pages, red_pages/total_pages*100))
	html:wikitext(mw.ustring.format("<tr><td>Problemaj paĝoj</td><td>%i</td><td>%.2f%%</td></tr>", problematic_pages, problematic_pages/total_pages*100))
	html:wikitext(mw.ustring.format("<tr><td>Provlegitaj paĝoj</td><td>%i</td><td>%.2f%%</td></tr>", yellow_pages, yellow_pages/total_pages*100))
	html:wikitext(mw.ustring.format("<tr><td>Validigitaj paĝoj</td><td>%i</td><td>%.2f%%</td></tr>", green_pages, green_pages/total_pages*100))
	html:wikitext(mw.ustring.format("<tr><td>Sentekstaj paĝoj</td><td>%i</td><td>-</td></tr>", grey_pages))
	html:wikitext(mw.ustring.format("<tr><td>Totalo</td><td>%i</td><td>-</td></tr>", page_count))
	html:wikitext(mw.ustring.format("<tr><td>Kompleta procento</td><td>-</td><td>%.2f%%</td></tr>", procento))
	
	local procenta_deko = math.floor(procento / 10)
	if procenta_deko == 10 then
		html:wikitext("[[Kategorio:Progresa procento egalas 100]]")
	elseif procenta_deko >= 0 and procenta_deko < 10 then
		html:wikitext(mw.ustring.format("[[Kategorio:Progresa procento inter %d kaj %d|%f]]", procenta_deko * 10, (procenta_deko + 1) * 10, procento - procenta_deko * 10))
	end
	
	return tostring(html)
	
end

return p