Aller au contenu

Module:Vérification

Une page de Wikiversité, la communauté pédagogique libre.

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