Belgekirina modulê[biafirîne]
--[[
  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:Nifûsa Fransa/hacet")

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


function p.source_canton(data)
	local resu
	if (data["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 légales du canton " .. p.outils.liste_annees(data)
		resu = resu .. addRef(txt .. ".") .. "."
	else  -- sinon canton plus ancien
		resu = "Base [[Institut national de la statistique et des études économiques|Insee]], [[Chiffres de population de la France|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 [[Chiffres de population de la France#La population municipale|population municipale]] à partir de 2006"
		local txt = "Fiches Insee - Populations légales du canton " .. p.outils.liste_annees(data)
		resu = resu .. addRef( txt .. ".") .. "."
	end
	return resu
end

--[[
--]]
function p.source_arrondissement(data)
local resu
	resu = "Base [[Institut national de la statistique et des études économiques|Insee]], [[Chiffres de population de la France|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 [[Chiffres de population de la France#La population municipale|population municipale]] à partir de 2006"
	local txt = "Fiches Insee - Populations légales de l'arrondissement " .. p.outils.liste_annees(data)
	resu = resu .. addRef( txt .. ".") .. "."
	
	return resu
end

--[[
--]]
function p.source_departement(data)
	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 légales de la métropole " .. p.outils.liste_annees(data)
		resu = resu .. addRef(txt) .. "."
		return resu
	else
		local resu = "SPLAF - population totale du département depuis sa création jusqu'en 1962"
		resu = resu .. addRef( "[http://splaf.free.fr/ Site sur la Population et les Limites Administratives de la France - fiche historique du département]")
		resu = resu .. " − puis base 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 légales du département " .. p.outils.liste_annees(data)
		resu = resu .. addRef(txt) .. "."
		return resu
	end
end

--[[
--]]
function p.source_region(data)
	local resu
	if (data["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 légales de la région " .. p.outils.liste_annees(data)
		resu = resu .. addRef(txt .. ".") .. "."
	else  -- sinon région plus ancienne
		resu = "Base [[Institut national de la statistique et des études économiques|Insee]], [[Chiffres de population de la France|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 [[Chiffres de population de la France#La population municipale|population municipale]] à partir de 2006"
		local txt = "Fiches Insee - Populations légales de la région " .. p.outils.liste_annees(data)
		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)
	local resu = "[[Institut national de la statistique et des études économiques|Insee]] à partir de "
	if (prem) then
		resu = resu .. data["premier"]
	else
		resu = resu .. "2006"
	end
	local txt = "Fiches Insee - Populations légales de la commune " .. p.outils.liste_annees(data)
	resu = resu .. addRef(txt .. ".")
	return resu
end

--[[
  fonction générant les sources
--]]
function p.sources(data)
	local resu
	
	-- on aiguille type autres que commune
	if (data["division"] == "canton") then
		return p.source_canton(data)
	end
	if (data["division"] == "département") then
		return p.source_departement(data)
	end
	if (data["division"] == "arrondissement") then
		return p.source_arrondissement(data)
	end
	if (data["division"] == "région") then
		return p.source_region(data)
	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
		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 à partir de 2006" .. addRef( p.outils.liste_annees(data))
	elseif ((data["division"] == "commune nouvelle")) then
		resu = p.source_insee(data, true) .. "."
	elseif (data["division"] == "commune en COM2") then
		resu = "[[Institut de la statistique de la Polynésie française]]" .. addRef(p.outils.liste_annees(data) ) .. "."
	elseif (data["division"] == "commune en COM1") then
		resu = "Base [[Institut national de la statistique et des études économiques|Insee]], [[Chiffres de population de la France|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 à partir de 2006"
		resu = resu .. addRef( p.outils.liste_annees(data) ) .. "."
	else -- par défaut
		resu = p.source_cassini(data)
		resu = resu .. " puis " .. p.source_insee(data) .. "."
	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