Module:Populacion de France/Entroduccions
Apparence
La documentation pour ce module peut être créée à Module:Populacion de France/Entroduccions/doc
--[[
Sous-module de Module:Tableau population d'article de commune de France contenant
les fonctions de génération des introductions associées au divisions
--]]
local p = {}
p.outils = require("Module:Populacion de France/Outils")
p.donnees = require("Module:Populacion de France/Balyês")
p.constantes = require("Module:Populacion de France/Constantes")
-- textes, "constantes", mis en variables pouralléger le code
p.entro_comencement = [=[
L'évolution du nombre d'habitants est connue à travers les [[Recensement de la population|recensements de la population]]
effectués dans la commune depuis %d. À partir de 2006, les
[[Histoire du recensement de la population en France#Le recensement rénové en France (depuis 2004)|populations légales]]
des communes sont publiées annuellement par l'[[Institut national de la statistique et des études économiques|Insee]]. Le recensement repose désormais sur
une collecte d'information annuelle, concernant successivement tous
les territoires communaux au cours d'une période de cinq ans. ]=]
-- note : ci-dessous les nombres+unités sont codés « en dur » pour éviter d'avoir à appeler en plus ces modèles
-- deuxième partie, commune < 10000
p.entro_petiota = [=[
Pour les communes de moins de 10 000 habitants, une enquête de recensement portant sur toute la population est
réalisée tous les cinq ans, les populations légales des années intermédiaires étant quant à elles estimées par
interpolation ou extrapolation]=]
p.entro_petiota2 = [=[
Pour la commune, le premier recensement exhaustif entrant dans le cadre du nouveau dispositif a été réalisé en ]=]
-- idem, pour commune > 10000
p.entro_granta = [=[
Pour les communes de plus de 10 000 habitants les recensements ont lieu chaque année à la suite d'une enquête par
sondage auprès d'un échantillon d'adresses représentant 8 % de leurs logements, contrairement aux autres communes qui ont un
recensement réel tous les cinq ans]=]
p.entro_nota = [=[
Par convention dans Wikipédia, le principe a été retenu de n’afficher dans le tableau
des recensements et le graphique, pour les populations légales postérieures à 1999,
que les populations correspondant à une enquête exhaustive de recensement pour les
communes de moins de 10 000 habitants, et que les populations des années 2006, 2011, 2016, etc.
pour les communes de plus de 10 000 habitants, ainsi que la dernière population légale publiée
par l’Insee pour l'ensemble des communes. ]=]
p.entro_drom = [=[
L'évolution du nombre d'habitants est connue à travers les [[Recensement de la population|recensements de la population]]
effectués dans la commune depuis %d, premier recensement postérieur à la départementalisation de
1946. À partir de 2006, les [[Histoire du recensement de la population en France#Le recensement rénové en France (depuis 2004)|populations légales]]
des communes sont publiées annuellement par l'[[Institut national de la statistique et des études économiques|Insee]].
Le recensement repose désormais sur une collecte d'information annuelle, concernant successivement tous les
territoires communaux au cours d'une période de cinq ans. ]=]
p.entro_poli = [=[
La loi relative à la démocratie de proximité du 27 février 2002 a,
dans ses articles consacrés au recensement de la population, instauré
des recensements de la population tous les cinq ans en [[Nouvelle-Calédonie]],
en [[Polynésie française]], à [[Mayotte]] et dans les îles [[Wallis-et-Futuna]], ce qui n’était pas le cas auparavant]=]
---- ceux-ci sont en fait vide mais séparés pour permettre des évolutions futures
-- dédié introduction canton
function p.entro_canton(data)
return ""
end
-- dédié introduction arrondissement
function p.entro_arrondissement(data)
return ""
end
-- dédié introduction fractions
function p.entro_fraccion(data)
return ""
end
-- dédié introduction departement
function p.entro_departament(data)
return ""
end
-- dédié introduction région
function p.entro_region(data)
return ""
end
-- dédié introduction pays
function p.entro_payis(data)
return ""
end
-- intro "commune" avec traitement données
function p.entro_ccc(data, comencement)
if (data["premier"] == nil) then
return "" -- protection
else
return mw.ustring.format(comencement, data["premier"])
end
end
-- partie +10000
function p.entro_p1k(data)
local resu = p.entro_granta
resu = resu .. mw.getCurrentFrame():extensionTag{ name = "ref",
content = "[https://www.insee.fr/fr/information/2383265 L'organisation du recensement], sur le site de l'Insee" }
-- la note
resu = resu .. "<sup class=\"reference cite_virgule\">,</sup>" .. mw.getCurrentFrame():extensionTag{ name = "ref", args = { group = 'Nota' },
content = p.entro_nota } .. "."
return resu
end
-- partie -10000
function p.entro_m1k(data)
local resu = p.entro_petiota
-- partie de "petit" qui nécessite calcul et traitements
resu = resu .. mw.getCurrentFrame():extensionTag{ name = "ref",
content = "[https://www.insee.fr/fr/information/2383265 L'organisation du recensement], sur le site de l'Insee." }
.. "."
if ((data["recens-prem"] ~= nil) and (data["sorsa_colecta"] ~= nil)) then
resu = resu .. " " .. p.entro_petiota2 .. data["recens-prem"]
resu = resu .. mw.getCurrentFrame():extensionTag{ name = "ref",
content = "[" .. data["sorsa_colecta"] .. " Calendrier départemental des recensements], sur [http://insee.fr/ le site de l'Insee]" } .. "."
end
return resu
end
-- par type de commune
function p.entro_c_basa(data, sup1k)
local resu = p.entro_ccc(data, p.entro_comencement)
if (not sup1k) then
resu = resu .. p.entro_m1k(data)
else
resu = resu .. p.entro_p1k(data)
end
return resu
end
function p.entro_c_drom(data, sup1k)
local resu = p.entro_ccc(data, p.entro_drom)
if (not sup1k) then
resu = resu .. p.entro_m1k(data)
else
resu = resu .. p.entro_p1k(data)
end
return resu
end
function p.entro_c_com1(data, sup1k)
local resu = p.entro_poli
resu = resu .. mw.getCurrentFrame():extensionTag{ name = "ref",
content = "[https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000000593100&categorieLien=cid#LEGISCTA000006085425 Titre V de la loi n° 2002-276 du 27 février 2002 relative à la démocratie de proximité]" } .. "."
return resu
end
function p.entro_c_com2(data, sup1k)
local resu = p.entro_poli
resu = resu .. mw.getCurrentFrame():extensionTag{ name = "ref",
content = "[https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000000593100&categorieLien=cid#LEGISCTA000006085425 Titre V de la loi n° 2002-276 du 27 février 2002 relative à la démocratie de proximité]" } .. "."
if (data["recens-prem"] ~= nil) then
local lst, nb = p.outils.lista_ans_pred(data, data["recens-prem"]) -- liste des recensements précédents
resu = resu .. " Pour la commune, le premier recensement exhaustif entrant dans le cadre du nouveau dispositif a été réalisé en " ..
data["recens-prem"]
if (nb == 0) then
resu = resu .. "." -- pas d'années précédentes
elseif (nb == 1) then
resu = resu .. ", le précédent recensement a eu lieu en " .. lst[1] .. "." -- un seul
else
resu = resu .. ", les précédents recensements ont eu lieu en "
for i = 1, nb do
if (i == 1) then
resu = resu .. lst[i]
elseif (i == nb) then
resu = resu .. " et " .. lst[i] .. "."
else
resu = resu .. ", " .. lst[i]
end
end
end
end
return resu
end
function p.entro_c_nov(data)
local resu = "L'évolution du nombre d'habitants est connue à travers les recensements de la population effectués dans la commune depuis sa création."
return resu
end
-- dédié introduction des différents types de communes
function p.entro_comena(data)
local resu
-- selon la population (< ou > 10000 habitants)
local sup1k = false
if (data["recens-prem"] == "anuâl") then
sup1k = true
end
if (data["division"] == "comena") then
resu = p.entro_c_basa(data, sup1k);
elseif (data["division"] == "comena en DROM") then
resu = p.entro_c_drom(data, sup1k);
elseif (data["division"] == "comena en COM1") then
resu = p.entro_c_com1(data, sup1k);
elseif (data["division"] == "comena en COM2") then
resu = p.entro_c_com2(data, sup1k);
elseif (data["division"] == "comena novèla") then
resu = p.entro_c_nov(data, sup1k);
else
return "" -- c'est une erreur mais on ne devrait jamais être ici avec une division non gérée
end
return resu
end
-- partie évolution de population
function p.evolucion(data)
local resu = ""
-- dernière partie : chiffres, comparatifs…
resu = resu .. "En " .. data["derrier"] .. ", "
if (data["division"] == "canton") then
resu = resu .. "lo canton comptâve "
elseif (data["division"] == "arrondissement") then
resu = resu .. "l’arrondissement comptâve "
elseif (data["division"] == "dèpartament") then
resu = resu .. "lo dèpartament comptâve "
elseif (data["division"] == "règ·ion") then
resu = resu .. "la règ·ion comptâve "
elseif (data["division"] == "payis") then
resu = resu .. "lo payis comptâve "
else -- commune
resu = resu .. "la comena comptâve "
end
resu = resu .. mw.language.getContentLanguage():formatNum(data[data["derrier"]]["pop"]) .. " habitents"
-- ajout d'une note à ce propos
resu = resu .. mw.getCurrentFrame():extensionTag{ name = "ref", content =
"Population municipale légale en vigueur au 1<sup>er</sup> janvier " .. data["derrier"]+3 ..
", millésimée " .. data["derrier"] .. ", définie dans les limites territoriales en vigueur au 1<sup>er</sup> janvier " .. data["derrier"]+2 ..
", date de référence statistique : 1<sup>er</sup> janvier " .. data["derrier"]..".", args = { group = "Nota" } }
-- pas d'augmentation / diminution pour les arrondissements
if (data["division"] == "arrondissement") then
resu = resu .. "."
return resu
end
-- calcul de l'augmentation / diminution
local delta = p.balyes.variacion_texto(data)
if (delta ~= nil) then
resu = resu .. ", " .. delta
-- seulement si on a une variation
-- département associé (sauf pour les départements)
local loadedData, wlm = p.balyes.charge_balyes(data["nom-dep"])
local deltad = nil
local nomdwp = nil
if ((loadedData ~= nil) and (wlm == true)) then
nomdwp = loadedData["nom-wp"]
deltad = p.balyes.variacion(loadedData, false)
end
-- France
loadedData, wlm = p.balyes.charge_balyes("France")
local deltaf = nil
if (loadedData ~= nil) then -- pour la France on ne teste que la présence des données
deltaf = p.balyes.variacion(loadedData, false)
end
-- dernière partie
if ((deltad == nil) and (deltaf == nil)) then
resu = resu .. "."
else
resu = resu .. " ("
if (deltad ~= nil) then
if (deltad > 0) then
resu = resu .. nomdwp .. " : +" .. mw.language.getContentLanguage():formatNum(deltad) .. " %"
else
resu = resu .. nomdwp .. " : " .. mw.language.getContentLanguage():formatNum(deltad) .. " %"
end
end
if (deltaf ~= nil) then
if (deltad ~= nil) then
resu = resu .. ", "
end
if (deltaf > 0) then
resu = resu .. "[[Démographie de la France|France]] hors [[Mayotte]] : +" .. mw.language.getContentLanguage():formatNum(deltaf) .. " %"
else
resu = resu .. "[[Démographie de la France|France]] hors [[Mayotte]] : " .. mw.language.getContentLanguage():formatNum(deltaf) .. " %"
end
end
resu = resu .. ")."
end
else
resu = resu .. "."
end
return resu
end
-- fonction aiguillage pour les introduction
function p.entroduccion(data)
local resu
if (data["division"] == "canton") then
resu = p.entro_canton(data)
elseif (data["division"] == "arrondissement") then
resu = p.entro_arrondissement(data)
elseif (data["division"] == "dèpartament") then
resu = p.entro_departament(data)
elseif (data["division"] == "fraccion cantonâla") then
resu = p.entro_fraccion(data)
elseif (data["division"] == "règ·ion") then
resu = p.entro_region(data)
elseif (data["division"] == "payis") then
resu = p.entro_payis(data)
elseif (data["tipo"] == "comena") then
-- toutes les communes traitées là, différenciation après
resu = p.entro_comena(data)
else
return "<err>"
end
-- on ajoute la partie évolution de la population
local txt = p.evolucion(data)
if ((txt ~= nil) and (txt ~= "")) then
resu = resu .. "\n\n" .. txt
end
return resu
end
return p