Utilisation

Fonctions dédiées à la génération des textes de sources des tableaux.
Les fonctions à appeler sont :

  • p.sources(data) : retourne les sources (sous forme de texte) d'un tableau de population pour l'entité dont les données sont dans data.
  • p.sources_graphique(data) : retourne les sources (sous forme de texte) d'un graphique de population pour l'entité dont les données sont dans data.

Les autres fonctions sont des sous-fonctions dédiées à une partie des traitements.

--[[
  Sous-module de Module:Tableau population d'article de commune de France contenant
  les fonctions de génération des sources associées à des données de population
--]]

local p = {}

p.outils = require("Module:Population de France/Outils")

local function addRef(txt, args)
	return mw.getCurrentFrame():extensionTag{ name = "ref", content = txt, args = args }
end


function p.source_canton(data, debut, fin)
	local resu
	local premier = tonumber(debut) or data["premier"]

	if (premier >= 2013) then
		-- nouveau canton
		resu = "Base [[Institut national de la statistique et des études économiques|Insee]], population municipale à partir de 2013"
		local txt = "Fiches Insee - Populations de référence du canton " .. p.outils.liste_annees(data, debut, fin)
		resu = resu .. addRef(txt .. ".") .. "."
	else  -- sinon canton plus ancien
		if (premier < 2006) then
			resu = "Base [[Institut national de la statistique et des études économiques|Insee]], [[Recensement de la population en France#Types de population distingués par l'Insee|population sans doubles comptes]] à partir de 1962"
			resu = resu .. addRef("[https://www.insee.fr/fr/statistiques/1893204 Population selon le sexe et l'âge quinquennal de 1968 à 2013 - Recensements harmonisés - Séries départementales et communales]")
			resu = resu .. " puis "
		else
			resu = "Base [[Institut national de la statistique et des études économiques|Insee]], "
		end
		resu = resu .. "[[Recensement de la population en France#Décomposition de la population légale depuis 2009|population municipale]] à partir de 2006"
		local txt = "Fiches Insee - Populations de référence du canton " .. p.outils.liste_annees(data, debut, fin)
		resu = resu .. addRef( txt .. ".") .. "."
	end
	return resu
end

--[[
--]]
function p.source_arrondissement(data, debut, fin)
	local resu
	local premier = tonumber(debut) or data["premier"]
	
	if (premier < 2006) then
		resu = "Base [[Institut national de la statistique et des études économiques|Insee]], [[Recensement de la population en France#Types de population distingués par l'Insee|population sans doubles comptes]] à partir de 1962"
		resu = resu .. addRef("[https://www.insee.fr/fr/statistiques/1893204 Population selon le sexe et l'âge quinquennal de 1968 à 2013 - Recensements harmonisés - Séries départementales et communales]")
			resu = resu .. " puis "
		else
			resu = "Base [[Institut national de la statistique et des études économiques|Insee]], "
		end
	resu = resu .. "[[Recensement de la population en France#Décomposition de la population légale depuis 2009|population municipale]] à partir de 2006"
	local txt = "Fiches Insee - Populations de référence de l'arrondissement " .. p.outils.liste_annees(data, debut, fin)
	resu = resu .. addRef( txt .. ".") .. "."
	
	return resu
end

--[[
--]]
function p.source_departement(data, debut, fin)
	local resu
	local premier = tonumber(debut) or data["premier"]
	if (data["nom"] == "Métropole de Lyon") then -- Pas de SPLAF pour la métropole de Lyon
		resu = "Base [[Institut national de la statistique et des études économiques|Insee]], population municipale à partir de 2013"
		local txt = "Fiches Insee - Populations de référence de la métropole " .. p.outils.liste_annees(data, debut, fin)
		resu = resu .. addRef(txt) .. "."
		return resu
	else
		if (premier <= 1968) then
			resu = "SPLAF - population totale du département depuis sa création jusqu'en 1962"
				if (data["source1"] ~= nil) then
				resu = resu .. addRef( "Site sur la Population et les Limites Administratives de la France - [".. data["source1"] .." Fiche historique du département]" , { name="SPLAF-his" } )
				else --- rétrocompatibilité
				resu = resu .. addRef( "Site sur la Population et les Limites Administratives de la France - [http://splaf.free.fr/ Fiche historique du département]" , { name="SPLAF-his" } )
			end
				resu = resu .. " - puis b"
			else
				resu = "B"
		end
		resu = resu .. "ase [[Institut national de la statistique et des études économiques|Insee]] − population sans doubles comptes de 1968 à 2006"
		resu = resu .. addRef("[https://www.insee.fr/fr/statistiques/1893204 Population selon le sexe et l'âge quinquennal de 1968 à 2013 - Recensements harmonisés - Séries départementales et communales]")
		resu = resu .. " puis population municipale à partir de 2006"
		local txt = "Fiches Insee - Populations de référence du département " .. p.outils.liste_annees(data, debut, fin)
		resu = resu .. addRef(txt) .. "."
		return resu
	end
end

--[[
--]]
function p.source_region(data, debut, fin)
	local resu
	local premier = tonumber(debut) or data["premier"]
	if (premier >= 2013) then
		-- nouvelle région
		resu = "Base [[Institut national de la statistique et des études économiques|Insee]], population municipale à partir de 2015"
		local txt = "Fiches Insee - Populations de référence de la région " .. p.outils.liste_annees(data, debut, fin)
		resu = resu .. addRef(txt .. ".") .. "."
	else  -- sinon région plus ancienne
		resu=""
		if (data["source1"] ~= nil) then
		resu = "IAURIF"
		resu = resu .. addRef( "{{Article |titre=La population des régions de 1851 à 1999 |périodique=Note rapide Population et modes de vie |date=1999-07-21 |auteur1=Philippe Louchart |lire en ligne=".. data["source1"] .." |auteur2=Séverine Albe-Tersiguel |éditeur=IAURIF |format=pdf}}"  )
		resu = resu .. ", "
		end
		resu = resu.. "Base [[Institut national de la statistique et des études économiques|Insee]], [[Recensement de la population en France#Types de population distingués par l'Insee|population sans doubles comptes]] à partir de 1962"
		resu = resu .. addRef("[https://www.insee.fr/fr/statistiques/1893204 Population selon le sexe et l'âge quinquennal de 1968 à 2013 - Recensements harmonisés - Séries départementales et communales]")
		resu = resu .. " puis [[Recensement de la population en France#Décomposition de la population légale depuis 2009|population municipale]] à partir de 2006"
		local txt = "Fiches Insee - Populations de référence de la région " .. p.outils.liste_annees(data, debut, fin)
		resu = resu .. addRef(txt .. ".") .. "."
	end
	return resu
end

--[[
  Sous-fonction de celle ci-dessous : génère la référence Cassini
--]]
function p.source_cassini(data)
	local resu = "Ldh/[[École des hautes études en sciences sociales|EHESS]]/Cassini jusqu'en 1999"
	local txt = ""
	if (data["source1"] ~= nil) then
		txt = txt .. "[" .. data["source1"] ..
		   " Des villages de Cassini aux communes d'aujourd'hui] sur le site de l'[[École des hautes études en sciences sociales]]."
		resu = resu .. addRef(txt, { name="Cassini" } )
	end
	return resu
end

--[[
  Sous-fonction de celle ci-dessous : génère la référence INSEE
--]]
function p.source_insee(data, prem, debut, fin, hide_insee)
	local resu = ""
	if not hide_insee then
	    resu = "[[Institut national de la statistique et des études économiques|Insee]] "
	end
	resu = resu .. "à partir de "
	
	local an_debut = "2006"
	if (debut and tonumber(debut) >= 2006) then
		an_debut = tonumber(debut)
	end
	
	if (prem) then
		resu = resu .. data["premier"]
	else
		resu = resu .. an_debut
	end
	local txt = "Fiches Insee - Populations de référence de la commune " .. p.outils.liste_annees(data, debut, fin)
	resu = resu .. addRef(txt .. ".")
	return resu
end

--[[
  fonction générant les sources
--]]
function p.sources(data, debut, fin)
	local resu
	local premier = tonumber(debut) or data["premier"]

	-- on aiguille type autres que commune
	if (data["division"] == "canton") then
		return p.source_canton(data, debut, fin)
	end
	if (data["division"] == "département") then
		return p.source_departement(data, debut, fin)
	end
	if (data["division"] == "arrondissement") then
		return p.source_arrondissement(data, debut, fin)
	end
	if (data["division"] == "région") then
		return p.source_region(data, debut, fin)
	end
	if (data["division"] == "pays") then
		return nil -- par prudence
	end
	
	-- selon le type (commune) // note : en fait les communes n'ont pas de "division"…
	if ((data["division"] == "commune en DROM")) then
	    if (premier < 2006) then
	        resu = "[[Institut national de la statistique et des études économiques|Insee]] de 1968 à 2006"
	        resu = resu .. addRef("[https://www.insee.fr/fr/statistiques/1893204 Population selon le sexe et l'âge quinquennal de 1968 à 2013 - Recensements harmonisés - Séries départementales et communales]")
	        resu = resu .. " puis " .. p.source_insee(data, false, debut, fin, true) .. "."
	    else
	        resu = p.source_insee(data, false, debut, fin) .. "."
		end
	elseif ((data["division"] == "commune nouvelle")) then
		resu = p.source_insee(data, true, debut, fin) .. "."
	elseif (data["division"] == "commune en COM2") then
		resu = "[[Institut de la statistique de la Polynésie française]]" .. addRef(p.outils.liste_annees(data, debut, fin) ) .. "."
	elseif (data["division"] == "commune en COM1") then
		resu = "Base [[Institut national de la statistique et des études économiques|Insee]], [[Recensement de la population en France#Types de population distingués par l'Insee|population sans doubles comptes]]"
		resu = resu .. " jusqu'en 1999"
		if (data["source1"] ~= nil) then
			resu = resu .. addRef("[" .. data["source1"] .. " " .. data["source1"] .. "]")
		end
		resu = resu .. " puis population municipale " .. p.source_insee(data, false, debut, fin, true) .. "."
	else -- par défaut
		resu = p.source_cassini(data)
		resu = resu .. " puis " .. p.source_insee(data, false, debut, fin) .. "."
	end
	if ((data["sources"] ~= nil) and (data["sources"] ~= "")) then
		resu = resu .. " " .. data["sources"]
	end

	return resu
end

-- sources pour les graphiques
function p.sources_graphique(data)
	local resu
	if ((data["division"] == "canton") or (data["division"] == "région") or
		(data["division"] == "arrondissement") or (data["division"] == "commune nouvelle") or
		(data["division"] == "commune en DROM") or (data["division"] == "commune en COM1") or
		(data["division"] == "commune en COM3")) then
		resu = "base Insee."
	elseif (data["division"] == "commune en COM2") then
		resu = "base IsPf."
	elseif (data["division"] == "département") then
		resu = "SPLAF et base Insee."
	else -- commune + commune nouvelle
		resu = "base Cassini de l'EHESS et base Insee."
	end
	return resu
end


return p