Module:Vérification

Ce module contient des fonctions chargées de vérifier que certaines actions ont bien été accomplies par les contributeurs et qui catégorisent automatiquement les pages dont une action est à compléter. Pour plus de détail sur l’utilisation de ces fonctions voir la page Aide:Maintenance à l'aide du Lua


La fonction p.lesson effectue un certain nombre de vérifications sur les pages contenant le Modèle:Leçon et catégorise automatiquement les leçons contenant des imperfections.


La fonction p.lessondl effectue un certain nombre de vérifications sur les pages contenant le Modèle:Leçon du jour et catégorise automatiquement les leçons du jour contenant des imperfections.


La fonction p.travrecherche effectue un certain nombre de vérifications sur les pages contenant le Modèle:Travail de recherche et catégorise automatiquement les Travaux de recherche ou recherches contenant des imperfections.


local p = {}

local categorie = ""

require("Module:Réserve")

function maj(phrase)
	local debut = mw.ustring.sub(phrase,1,1)  --Extrait la première lettre de la phrase
	local fin = mw.ustring.sub(phrase,2)      --Extrait la fin de la phrase (sans la première lettre)
	return mw.ustring.upper(debut)..mw.ustring.lower(fin) -- Reconstruit la phrase en mettant la première lettre en majuscule et le reste en minuscule
end

function p.lesson(frame)
	local model = frame:getParent()
	local title = mw.title.getCurrentTitle()
	local titre = title.text
	if model.args["département"] then
		local page = "Département:"..model.args["département"].."/Leçons par thèmes"
		local texte_th = lit(page)
		if texte_th then
			local trouve = mw.ustring.find(texte_th,titre,1,true)
			if trouve == nil then
				categorie = categorie.."[[Catégorie:Leçons non déclarées dans sous page par thème du département]] "
			end
		else       -- La sous-page Leçons par thèmes n'a pas été créé
			categorie = categorie.."[[Catégorie:Leçons sans sous page par thème du département]] "
		end
		page = "Département:"..model.args["département"].."/Leçons par niveaux"
		local texte_nv = lit(page)
		if texte_nv then
			local trouve = mw.ustring.find(texte_nv,titre,1,true)
			if trouve == nil then
				categorie = categorie.."[[Catégorie:Leçons non déclarées dans sous page par niveaux du département]] "
			end
		else       -- La sous-page Leçons par niveaux n'a pas été créé
			categorie = categorie.."[[Catégorie:Leçons sans sous page par niveaux du département]] "
		end
	end
	if model.args["w"] then
		local texte_w = lit("w:fr:"..model.args["w"])
		if texte_w then
			local rep = mw.ustring.find(texte_w,"wikiversity",1,true)
			if rep == nil then
				categorie = categorie.."[[Catégorie:Leçons avec interwiki sans retour vers Wikipédia]] "
			end
		end
	end
	local titledis = title.talkPageTitle
	local rep
	if titledis.exists then
		local textedis = lit(titledis.prefixedText)
		rep = mw.ustring.find(textedis,"Évaluation")
	end
	if rep == nil then
		categorie = categorie.."[[Catégorie:Leçons sans évaluation]] "
	end
	if model.args["idfaculté"] then -- Vérification en rapport avec la page classant toutes les leçon par niveau d'une faculté
		page = "Leçons de "..model.args["idfaculté"].." par niveau/Leçons par niveaux" -- Si le nom de la faculté commence par une consonne
		local texte_nv = lit(page)
		if texte_nv then
			local trouve = mw.ustring.find(texte_nv,titre,1,true) -- cherche la leçon dans la page
			if trouve == nil then -- n'a pas trouvé la leçon
				categorie = categorie.."[[Catégorie:Leçons absente de la page leçons par niveaux de la faculté]] "
			end
		else       -- peut-être que le nom de la faculté commence par une voyelle
			page = "Leçons d'"..model.args["idfaculté"].." par niveau/Leçons par niveaux" -- Si le nom de la faculté commence par une voyelle
			local texte_nv = lit(page)
			if texte_nv then
				local trouve = mw.ustring.find(texte_nv,titre,1,true) -- cherche la leçon dans la nouvelle page
				if trouve == nil then -- n'a toujours pas trouvé la leçon
					categorie = categorie.."[[Catégorie:Leçons absente de la page leçons par niveaux de la faculté]] "
				end
			else       -- La sous-page Leçons par niveaux n'a pas été créé
				categorie = categorie.."[[Catégorie:Leçons sans page par niveaux de la faculté]] "
			end
		end
	end
	return categorie	
end

function p.lessondj(frame)
	local model = frame:getParent()
	local title = mw.title.getCurrentTitle()
	local titre = title.text
	if model.args["département"] then
		local page = "Département:"..model.args["département"].."/Leçons par thèmes"
		local texte_th = lit(page)
		if texte_th then
			local trouve = mw.ustring.find(texte_th,titre,1,true)
			if trouve == nil then
				categorie = categorie.."[[Catégorie:Leçons non déclarées dans sous page par thème du département]] "
			end
		else       -- La sous-page Leçons par thèmes n'a pas été créé
			categorie = categorie.."[[Catégorie:Leçons sans sous page par thème du département]] "
		end
		page = "Département:"..model.args["département"].."/Leçons par niveaux"
		local texte_nv = lit(page)
		if texte_nv then
			local trouve = mw.ustring.find(texte_nv,titre,1,true)
			if trouve == nil then
				categorie = categorie.."[[Catégorie:Leçons non déclarées dans sous page par niveaux du département]] "
			end
		else       -- La sous-page Leçons par niveaux n'a pas été créé
			categorie = categorie.."[[Catégorie:Leçons sans sous page par niveaux du département]] "
		end
	end
	if model.args["w"] then
		local texte_w = lit("w:fr:"..model.args["w"])
		if texte_w then
			local rep = mw.ustring.find(texte_w,"wikiversity",1,true)
			if rep == nil then
				categorie = categorie.."[[Catégorie:Leçons avec interwiki sans retour vers Wikipédia]] "
			end
		end
	end
	local titledis = title.talkPageTitle
	local rep
	if titledis.exists then
		local textedis = lit(titledis.prefixedText)
		rep = mw.ustring.find(textedis,"Évaluation")
	end
	if rep == nil then
		categorie = categorie.."[[Catégorie:Leçons sans évaluation]] "
	end
	if model.args["idfaculté"] then -- Vérification en rapport avec la page classant toutes les leçon par niveau d'une faculté
		page = "Leçons de "..model.args["idfaculté"].." par niveau/Leçons par niveaux" -- Si le nom de la faculté commence par une consonne
		local texte_nv = lit(page)
		if texte_nv then
			local trouve = mw.ustring.find(texte_nv,titre,1,true) -- cherche la leçon dans la page
			if trouve == nil then -- n'a pas trouvé la leçon
				categorie = categorie.."[[Catégorie:Leçons absente de la page leçons par niveaux de la faculté]] "
			end
		else       -- peut-être que le nom de la faculté commence par une voyelle
			page = "Leçons d'"..model.args["idfaculté"].." par niveau/Leçons par niveaux" -- Si le nom de la faculté commence par une voyelle
			local texte_nv = lit(page)
			if texte_nv then
				local trouve = mw.ustring.find(texte_nv,titre,1,true) -- cherche la leçon dans la nouvelle page
				if trouve == nil then -- n'a toujours pas trouvé la leçon
					categorie = categorie.."[[Catégorie:Leçons absente de la page leçons par niveaux de la faculté]] "
				end
			else       -- La sous-page Leçons par niveaux n'a pas été créé
				categorie = categorie.."[[Catégorie:Leçons sans page par niveaux de la faculté]] "
			end
		end
	end
	return categorie	
end

function p.travrecherche(frame)
	local page,texte = "",""
	local model = frame:getParent()
	local title = mw.title.getCurrentTitle()
	local titre = title.text
	if model.args["parent"] and model.args["parent"] ~= "" then
		page = model.args["parent"]
		page = decrochette(page)
		page = page.."/Contenu"
		texte = lit(page)
		if texte then
			local trouve = mw.ustring.find(texte,titre,1,true) -- cherche la recherche dans la page
			if trouve == nil then -- n'a pas trouvé la recherche
				categorie = categorie.."[[Catégorie:Recherches absente du département recherche de la faculté]] "
			end
		else       -- La sous-page contenant les recherches n'a pas été créé
			categorie = categorie.."[[Catégorie:Recherche avec paramètre parent à vérifier]] "
			if model.args["idfaculté"] then
				page = "Recherche:Département:"..maj(model.args["idfaculté"]).."/Contenu" -- nom de la page contenant la recherche
				texte = lit(page)
				if texte then
					local trouve = mw.ustring.find(texte,titre,1,true) -- cherche la recherche dans la page
					if trouve == nil then -- n'a pas trouvé la recherche
						categorie = categorie.."[[Catégorie:Recherches absente du département recherche de la faculté]] "
					end
				else       -- La sous-page contenant les recherches n'a pas été créé
					categorie = categorie.."[[Catégorie:Recherche sans département recherche standard de la faculté]] "
				end
			else
				categorie = categorie.."[[Catégorie:Recherche sans idfaculté]] "
			end
		end
	elseif model.args["idfaculté"] then
		page = "Recherche:Département:"..maj(model.args["idfaculté"]).."/Contenu" -- nom de la page contenant la recherche
		texte = lit(page)
		if texte then
			local trouve = mw.ustring.find(texte,titre,1,true) -- cherche la recherche dans la page
			if trouve == nil then -- n'a pas trouvé la recherche
				categorie = categorie.."[[Catégorie:Recherches absente du département recherche de la faculté]] "
			end
		else       -- La sous-page contenant les recherches n'a pas été créé
			categorie = categorie.."[[Catégorie:Recherche sans département recherche de la faculté]] "
		end
	else
		categorie = categorie.."[[Catégorie:Recherche sans parent ni idfaculté]] "
	end
	return categorie
end

return p