Module:Infobox/Fonctions/Organisation
La documentation pour ce module peut être créée à Module:Infobox/Fonctions/Organisation/doc
-- Ce module étant utilisé par plus de 10 000 pages, avant de le modifier, testez le avec sa version bac à sable et à l'aide de la page de test (Modèle:Infobox Organisation2/Test).
local p = {}
local localdata = require 'Module:Infobox/Localdata'
local item = localdata.item
local wd = require 'Module:Wikidata'
local linguistic = require 'Module:Linguistique'
-- Recherche le titre le plus approprié en fonction de la forme juridique de l'organisation (P1454)
-- item : élement wikidata sous la forme Qxxxx
-- plural : booléen pour indiquer le pluriel
local function ownerLabel(item, plural)
local formeJuridique = wd.stringTable{entity = item, property = 'P1454', displayformat = 'raw', excludespecial = true}
if wd.isSubclass('Q134161', formeJuridique[1]) then -- société par actions
if plural then return "Actionnaires" else return "Actionnaire" end
else
if plural then return "Propriétaires" else return "Propriétaire" end
end
end
function p.membres(id)
local dir = wd.formatStatements{entity = item, property = 'P1037', defaultlink = '-', numval = 1, displayformat = 'raw'}
local pres = wd.formatStatements{entity = item, property = 'P488', defaultlink = '-', numval = 1, displayformat = 'raw'}
local direx = wd.formatStatements{entity = item, property = 'P169', defaultlink = '-', numval = 1, displayformat = 'raw'}
local secgen = wd.formatStatements{entity = item, property = 'P3975', defaultlink = '-', numval = 1, displayformat = 'raw'}
dir = dir or pres or direx or secgen
local genredirigeant = wd.getgender(dir) or "m"
local titredirigeant = localdata['titre dirigeant'] or localdata['titre dirigeant1']
titredirigeant = titredirigeant or wd.formatStatements{
entity = item,
property = 'P2388',
defaultlink = '-',
labelformat = function(titleid) return wd.genderedlabel(titleid, genredirigeant) end,
labelformat2 = linguistic.removecomplement
}
return {type = 'multi', rows = {
{type = 'row',
label = 'Membres',
value = {'membre', 'membres', 'nombre_membres', 'nombre de membres'},
wikidata = {property = 'P2124', showdate = true, sorttype = 'inverted', showunit = 'long'}
},
{type = 'row',
label = '[[Bénévolat|Volontaires]]',
value = {'volontaires', 'bénévoles', 'nombre_volontaires', 'nombre_benevoles'},
wikidata = {property = 'P6125', showdate = true, sorttype = 'inverted'}
},
{type = 'row',
label = 'Effectif',
value = {'effectif', 'effectifs', 'employés', 'personnel', 'personnels', 'nombre_employes', 'effectif total'},
wikidata = {property = 'P1128', showdate = true, sorttype = 'inverted', targetunit = 'employé', showunit = 'long'}
},
{type = 'row', label = 'Effectif statutaire', value = 'effectif statutaire'},
{type = 'row', label = '[[Chercheur]]s', value = {'chercheurs', 'chercheurs statutaires'}},
{type = 'row', label = 'Chercheurs associés', value = 'chercheurs associés'},
{type = 'row', label = '[[Doctorant]]s', value = 'doctorants'},
{type = 'row',
label = {ms = 'Fondateur', fs = 'Fondatrice', mp = 'Fondateurs', fp = 'Fondatrices', default = 'Fondateur'},
value = {'fondateur', 'fondatrice', 'fondateurs', 'fondatrices'},
wikidata = {property = {'P112', 'P170'}}
},
{type = 'row',
label = {
ms = function() if titredirigeant and not direx then return titredirigeant else return "Président" end end,
fs = function() if titredirigeant and not direx then return titredirigeant else return "Présidente" end end,
mp = function() if titredirigeant and not direx then return titredirigeant else return "Présidents" end end,
fp = function() if titredirigeant and not direx then return titredirigeant else return "Présidentes" end end,
default = function() if titredirigeant and not direx then return titredirigeant else return "Président" end end
},
value = {'président', 'president', 'presidente'},
wikidata = {property = 'P488', atdate = 'today', showdate = true, precision = 'year'}
},
{type = 'row',
label = {
ms = function() return localdata['titre recteur'] or '[[Recteur d\'université|Recteur]]' end,
fs = function() return localdata['titre recteur'] or '[[Recteur d\'université|Rectrice]]' end,
mp = function() return localdata['titre recteur'] or '[[Recteur d\'université|Recteurs]]' end,
fp = function() return localdata['titre recteur'] or '[[Recteur d\'université|Rectrices]]' end,
default = function() return localdata['titre recteur'] or '[[Recteur d\'université|Recteur]]' end
},
value = 'recteur',
wikidata = { property = 'P1075', atdate = 'today', showdate = true, precision = 'year' }
},
{type = 'row',
label = function()
return localdata['titre dirigeant'] or localdata['titre dirigeant1'] or localdata['intitulé dirigeant1'] or localdata['intitule_fonction1'] or 'Dirigeant'
end,
value = {'dirigeant', 'dirigeant1', 'fonction1'}
},
{type = 'row',
label = function()
return localdata['titre dirigeant2'] or localdata['intitulé dirigeant2'] or localdata['intitule_fonction2'] or 'Dirigeant'
end,
value = {'dirigeant2', 'fonction2'}
},
{type = 'row',
label = function()
return localdata['titre dirigeant3'] or localdata['intitulé dirigeant3'] or localdata['intitule_fonction3'] or 'Dirigeant'
end,
value = {'dirigeant3', 'fonction3'}
},
{type = 'row',
label = function() return localdata['titre dirigeant4'] or localdata['intitulé dirigeant4'] or localdata['intitule_fonction4'] or 'Dirigeant' end,
value = {'dirigeant4', 'fonction4'}
},
{type = 'row',
label = function() return localdata['titre dirigeant5'] or localdata['intitulé dirigeant5'] or localdata['intitule_fonction5'] or 'Dirigeant' end,
value = {'dirigeant5', 'fonction5'}
},
{type = 'row',
label = {ms = 'Président d\'honneur', fs = 'Présidente d\'honneur', mp = 'Présidents d\'honneur', fp = 'Présidentes d\'honneur', default = 'Président d\'honneur'},
value = {'président d\'honneur', 'président honoraire'},
wikidata = {property = {'P2828', 'P3320'}, qualifier = 'P39', qualifiervalue = 'Q1300660', atdate = 'today', showdate = true, precision = 'year'}},
{type = 'row',
label = {ms = '[[Vice-président]]', fs = '[[Vice-président]]e', mp = '[[Vice-président]]s', fp = '[[Vice-président]]es', default = '[[Vice-président]]'},
value = {'vice-président', 'vice-president', 'vice-présidente', 'vice-presidente', 'vice-présidents', 'vice-presidents'},
wikidata = {property = {'P2828', 'P3320'}, qualifier = 'P39', qualifiervalue = 'Q42178', atdate = 'today', showdate = true, precision = 'year'}},
{type = 'row',
label = {ms = 'Procureur', fs = 'Procureure', mp = 'Procureurs', fp = 'Procureures', default = 'Procureur'},
value = {'procureur', 'procureure', 'procureuse', 'procureures', 'procureuses', 'procureurs'},
wikidata = {property = {'P1592'}, qualifier = 'P39', atdate = 'today', showdate = true, precision = 'year'}},
{type = 'row',
label = function(id)
if titredirigeant then
return titredirigeant
else
return "Direction"
end
end,
label = {
ms = function() if titredirigeant then return titredirigeant else return "Directeur" end end,
fs = function() if titredirigeant then return titredirigeant else return "Directrice" end end,
mp = function() if titredirigeant then return titredirigeant else return "Directeurs" end end,
fp = function() if titredirigeant then return titredirigeant else return "Directrices" end end,
default = function() if titredirigeant then return titredirigeant else return "Direction" end end
},
value = {'directeur', 'directrice', 'direction', 'directeur_general'},
wikidata = {property = {'P169', 'P1037'}, atdate = 'today', showdate = true, precision = 'year'},
blockers = {'dirigeant', 'dirigeant1', 'fonction1'}},
{type = 'row',
label = function(id)
if titredirigeant and not pres and not direx then
return titredirigeant
else
return "Secrétaire général"
end
end,
plurallabel = 'Secrétaires généraux',
value = {'secrétaire général', 'secretaire_general', 'secretaire_generale'},
wikidata = {property = 'P3975', atdate = 'today', showdate = true, precision = 'year'},
blockers = {'dirigeant', 'dirigeant1', 'fonction1'}
},
{type = 'row',
label = '[[Secrétaire perpétuel]]',
plurallabel = '[[Secrétaire perpétuel|Secrétaire perpétuels]]',
value = {'secrétaire perpétuel', 'secretaire perpetuel'},
wikidata = {
property = {'P2828', 'P3320'},
qualifier = {'P39', 'P2868', 'P642'},
qualifiervalue = 'Q1282146',
atdate = 'today',
showdate = true,
precision = 'year'
}
},
{type = 'row',
label = 'Secrétaire',
plurallabel = 'Secrétaires',
value = {'secrétaire', 'secretaire'},
wikidata = {
property = {'P2828', 'P3320'},
qualifier = 'P39',
qualifiervalue = {'Q80687', 'Q836971'},
atdate = 'today',
showdate = true,
sorttype = 'inverted',
precision = 'year'
}
},
{type = 'row', label = 'Protecteur', plurallabel = 'Protecteurs', value = 'protecteur'},
{type = 'row',
label = {ms = 'Trésorier', fs = 'Trésorière', mp = 'Trésoriers', fp = 'Trésorière', default = 'Trésorier'},
value = {'trésorier', 'tresorier', 'trésorière', 'tresoriere'},
wikidata = {property = 'P3320', qualifier = 'P39', qualifiervalue = 'Q388338', atdate = 'today', showdate = true, precision = 'year'}
},
{type = 'row',
label = 'Personnes clés',
value = {'personne clé', 'pers', 'personnage_clef'},
wikidata = {
property = {'P3342', 'P2828', 'P3320', 'P5052'},
conjtype = 'new line',
showqualifiers = {'P39', 'P2868', 'P642'},
qualifconjtype = 'comma',
excludequalifier = {'P39', 'P2868', 'P642'},
excludequalifiervalue = {'Q1300660', 'Q42178', 'Q1282146', 'Q80687', 'Q836971', 'Q388338'},
atdate = 'today'
}
},
{type = 'row',
label = ownerLabel(item, false),
plurallabel = ownerLabel(item, true),
value = 'propriétaire',
wikidata = {property = 'P127', atdate = "today", showdate = true, sorttype = 'inverted', precision = 'year', showqualifiers = "P1107", qualiftargetunit = 'percent'}},
{type = 'row',
label = 'Soutenu par',
value = {'soutenu par', 'soutien', 'soutiens'},
wikidata = {property = 'P8001', showdate = true, sorttype = 'inverted'}
},
}
}
end
-- Champs optionnels
function p.custom()
return {type = 'multi', rows = {
{type = 'row', label = function() return localdata['option-1'] or 'Option 1' end, value = 'valeur-1'},
{type = 'row', label = function() return localdata['option-2'] or 'Option 2' end, value = 'valeur-2'},
{type = 'row', label = function() return localdata['option-3'] or 'Option 3' end, value = 'valeur-3'},
{type = 'row', label = function() return localdata['option-4'] or 'Option 4' end, value = 'valeur-4'},
{type = 'row', label = function() return localdata['option-5'] or 'Option 5' end, value = 'valeur-5'},
{type = 'row', label = function() return localdata['option-6'] or 'Option 6' end, value = 'valeur-6'},
}
}
end
-- Identifiants
function p.ids()
return {type = 'table', title = 'Identifiants',
rows = {
{type = 'row', label = '[[Répertoire national des associations|RNA]]', value = 'rna', wikidata = {property = {'P3918', 'P6309'}, urlpattern = wd.formatStatements{entity = "P3918", property = "P1630", numval = 1}}},
{type = 'row', label = '[[Système d\'identification du répertoire des entreprises|SIREN]]', value = 'siren', wikidata = {property = 'P1616', urlpattern = wd.formatStatements{entity = "P1616", property = "P1630", numval = 1}}},
{type = 'row', label = '[[Système d\'identification du répertoire des établissements|SIRET]]', value = 'siret', wikidata = {property = 'P3215', urlpattern = wd.formatStatements{entity = "P3215", property = "P1630", numval = 1}}},
{type = 'row', label = '[[TVA dans l\'Union européenne|TVA européenne]]', value = 'tva', wikidata = {property = 'P3608', urlpattern = wd.formatStatements{entity = "P3608", property = "P1630", numval = 1}}},
{type = 'row', label = '[[Internal Revenue Service|IRS]]', value = 'irs', wikidata = {property = 'P1297', urlpattern = wd.formatStatements{entity = "P1297", property = "P3303", numval = 1}}},
{type = 'row', label = '[[Securities and Exchange Commission|CIK]]', value = 'cik', wikidata = {property = 'P5531', urlpattern = wd.formatStatements{entity = "P5531", property = "P1630", numval = 1}}},
{type = 'row', label = '[[Banque-Carrefour des Entreprises|BCE]]', value = 'bce', wikidata = {property = 'P3376', urlpattern = wd.formatStatements{entity = "P3376", property = "P1630", numval = 1}}},
{type = 'row', label = '[[:en:Central Business Register (Denmark)|CVR]]', value = 'cvr', wikidata = {property = 'P1059', urlpattern = wd.formatStatements{entity = "P1059", property = "P1630", numval = 1}}},
{type = 'row', label = '[[:hu:Cégjegyzékszámok Magyarországon|Cégjegyzékszám]]', value = 'hun', wikidata = {property = 'P2619', urlpattern = wd.formatStatements{entity = "P2619", property = "P1630", numval = 1}}},
{type = 'row', label = '[[:en:Companies House|Companies House]]', value = 'companies house', wikidata = {property = 'P2622', urlpattern = wd.formatStatements{entity = "P2622", property = "P1630", numval = 1}}},
{type = 'row', label = '[[:en:Brønnøysund Register Centre|Registre de Brønnøysund]]', value = 'orgnr', wikidata = {property = 'P2333', urlpattern = wd.formatStatements{entity = "P2333", property = "P1630", numval = 1}}},
{type = 'row', label = '[[:en:Russian Federal State Statistics Service|OKPO]]', value = 'okpo', wikidata = {property = 'P2391', urlpattern = wd.formatStatements{entity = "P2391", property = "P1630", numval = 1}}},
{type = 'row', label = '[[OpenCorporates]]', value = 'opencorporates', wikidata = {property = 'P1320', urlpattern = wd.formatStatements{entity = "P1320", property = "P1630", numval = 1}}},
{type = 'row', label = '[[data.gouv.fr]]', value = 'datagouv', wikidata = {property = {'P3206'}, urlpattern = wd.formatStatements{entity = "P3206", property = "P1630", numval = 1}}},
{type = 'row', label = '[[Unité administrative immatriculée|UAI]]', value = 'uai', wikidata = {property = {'P3202'}, urlpattern = wd.formatStatements{entity = "P3202", property = "P1630", numval = 1}}},
{type = 'row', label = '[[Service-public.fr|Annuaire du service public]]', value = 'servicepublic', wikidata = {property = {'P6671'}, urlpattern = wd.formatStatements{entity = "P6671", property = "P1630", numval = 1}}},
}
}
end
return p