Dokumentācijas ikona Moduļa dokumentācija[izveidot]
local person = require "Module:Infokaste/Funkcijas/Cilvēks"
local wd = require "Module:Interface Wikidata".fromLua

local occupationformats = {
	--{profession, couleur titre, couleur sous-titre, couleur texte, icône)  doivent être classés du plus spécifique au plus général
	{'Q947873',  	'#D9D9FF', '#7ABCF9', '#000000', 'television'}, -- animateur audiovisuel
	{'Q191633',  	'#80DDBF', '#B0FFD0', '#000000', 'bd'}, -- mangaka
	{'Q3285854',  	'#80DDBF', '#B0FFD0', '#000000', 'bd'}, -- manhwaga
	{'Q3285832',  	'#80DDBF', '#B0FFD0', '#000000', 'bd'}, -- manhuajia
	{'Q715301',  	'#FFEEAA', '#FFEEAA', '#000000', 'bd'}, -- auteur de bande dessinée
	{'Q1350189', 	'#CCCCAA', '#CCCCAA', '#000000', 'egypte-antique'}, -- égyptologue
	{'Q3621491', 	'#CCCCAA', '#CCCCAA', '#000000', 'defaut'}, -- archéologue
	{'Q42973', 		'#4C6099', '#7090E0', '#FFFFFF', 'defaut'}, -- architecte
	{'Q2159907', 	'#F2F2F2', '#F2F2F2', '#000000', 'defaut'}, -- criminel
	{'Q11900058', 	'#EEEEFF', '#EEEEFF', '#000000', 'map'}, -- explorateur
	{'Q12039558', 	'#EEEEFF', '#EEEEFF', '#000000', 'jeu'}, -- joueur de go
	{'Q15295720', 	'#4E957D', '#A6D0C1', '#442200', 'poker'}, -- joueur de poker
	{'Q14467526', 	'#CFA0E9', '#E3C8F2', '#000000', 'auteur'}, -- linguiste
	{'Q177220', 	'#B6CCDE', '#B6CCDE', '#000000', 'musique'}, -- chanteur
	{'Q1278335', 	'#D2C6B6', '#D2C6B6', '#000000', 'musique'}, -- instrumentiste
	{'Q3089940', 	'#B4CDCD', '#B4CDCD', '#000000', 'musique'}, -- producteur de musique
	{'Q36834', 		'#B4CDCD', '#B4CDCD', '#000000', 'musique'}, -- compositeur
	{'Q1643514', 	'#B4CDCD', '#B4CDCD', '#000000', 'musique'}, -- arrangeur
	{'Q15981151', 	'#B2FFC6', '#B2FFC6', '#000000', 'musique'}, -- musicien de jazz
	{'Q5716684', 	'#FFFF80', '#FFFF80', '#000000', 'musique'}, -- danseur
	{'Q1954956', 	'#D9B2FF', '#D9B2FF', '#000000', 'musique'}, -- acteur de comédie musicale
	{'Q2259451', 	'#AA3333', '#AA3333', '#000000', 'persofiction'}, -- acteur de théâtre
	{'Q4964182', 	'#B0C4DE', '#CFDBEB', '#000000', 'auteur'}, -- philosophe
	{'Q11631', 		'#FFDEAD', '#FFDEAD', '#000000', 'defaut'}, -- astronaute
	{'Q17125263', 	'#D62020', '#E96B6B', '#000000', 'informatique'}, -- YouTubeur
	{'Q854997', 	'#FFD068', '#FFE6AA', '#000000', 'defaut'}, -- moine bouddhiste
	{'Q245068', 	'#FF8080', '#FFC0C0', '#000000', 'persofiction'}, -- humoriste
	{'Q488111', 	'#FF66B3', '#FFA0EE', '#000000', 'cinema'}, -- acteur de films pornographiques
	{'Q10800557', 	'#09C8BD', '#5CF8F0', '#000000', 'cinema'}, -- acteur de films
	{'Q7042855', 	'#09C8BD', '#5CF8F0', '#000000', 'cinema'}, -- monteur
	{'Q3282637', 	'#09C8BD', '#5CF8F0', '#000000', 'cinema'}, -- producteur de cinéma
	{'Q37110', 		'#AAAA80', '#CCCCAA', '#000000', 'egypte-antique'}, -- pharaon
	{'Q728711', 	'#FF66B3', '#FFA0EE', '#000000', 'humain'}, -- Playmate
	{'Q18581305', 	'#FFDAB9', '#FFDAB9', '#000000', 'humain'}, -- participant à un concours de beauté
	{'Q193391', 	'#4682B4', '#B0C4DE', '#000000', 'defaut'}, -- diplomate
	{'Q203184', 	'#4682B4', '#B0C4DE', '#000000', 'defaut'}, -- première dame
	{'Q5784340', 	'#723E64', '#CDBAC8', '#000000', 'pretendant'}, -- consort
	{'Q207293', 	'#5977A8', '#C4CFE0', '#000000', 'pretendant'}, -- prince héritier
	{'Q2747456', 	'#878787', '#D4D4D4', '#000000', 'pretendant'}, -- prince
	{'Q845929', 	'#EAAC00', '#F7E1A5', '#000000', 'pretendant'}, -- prétendant au trône
	{'Q4610556', 	'#FFB6C1', '#FFB6C1', '#000000', 'humain'}, -- mannequin
	{'Q22665683', 	'#4682B4', '#B0C4DE', '#FFFFFF', 'defaut'}, -- feudataire
	{'Q2478141', 	'#DFDFDF', '#DFDFDF', '#000000', 'defaut'}, -- aristocrate
	{'Q37349', 		'#FF8888', '#FF8888', '#000000', 'humain'}, -- dalaï-lama
	{'Q842606', 	'#FFB6C1', '#FFC4EB', '#000000', 'defaut'}, -- empereur romain
	{'Q268218', 	'#FFD700', '#FFEC80', '#000000', 'defaut'}, -- empereur de Chine
	{'Q116', 		'#000080', '#BFC5F9', '#FFFFFF', 'pretendant'}, -- monarque
	{'Q11811941', 	'#FF0000', '#FFDDDD', '#000000', 'defaut'}, -- conseiller fédéral suisse
	{'Q2285706', 	'#6688FF', '#E1E1FF', '#000000', 'defaut'}, -- chef de gouvernement
	{'Q48352', 		'#0033CC', '#BFC5F9', '#000000', 'defaut'}, -- chef d'État
	{'Q15319501', 	'#5A71CE', '#7B8DD8', '#000000', 'default'}, -- spécialiste des sciences sociales
	{'Q133485', 	'#B7B7FF', '#B7B7FF', '#000000', 'israel-judaisme'}, -- rabbin
	{'Q191421', 	'#FF8888', '#FF8888', '#000000', 'defaut'}, -- lama
	{'Q619896', 	'#8000FF', '#8000FF', '#000000', 'defaut'}, -- catholicos
	{'Q9149093', 	'#BFD7FF', '#BFD7FF', '#000000', 'alpinisme'}, -- alpiniste
	{'Q13382355', 	'#FADA5E', '#FCE684', '#000000', 'arc'}, -- archer
	{'Q11513337', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- athlète
	{'Q13381753', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- coureur de demi-fond
	{'Q13381494', 	'#D7877B', '#E1A59C', '#000000',  'athletisme'}, -- coureur de fond
	{'Q4009406', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- sprinteur
	{'Q13464497', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- perchiste
	{'Q13856320', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- lanceur de marteau
	{'Q18510502', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- lanceur de javelot
	{'Q13381689', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- lanceur de disque
	{'Q18534714', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- lanceur de poids
	{'Q13382122', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- sauteur en hauteur
	{'Q13381428', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- sauteur en longueur
	{'Q13848274', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- triple sauteur
	{'Q17405793', 	'#D7877B', '#E1A59C', '#000000', 'athletisme'}, -- marcheur
	{'Q19595175', 	'#FFDFA2', '#FFE7B9', '#000000', 'lutte'}, -- lutteur
	{'Q13382576', 	'#BFD7FF', '#BFD7FF', '#000000', 'aviron'}, -- avironneur
	{'Q10871364', 	'#408080', '#80AAAA', '#000000', 'baseball'}, -- joueur de baseball
	{'Q3665646', 	'#DD8F56', '#E6AB80', '#FFFFFF', 'basket-ball'}, -- joueur de basket-ball
	{'Q11338576', 	'#85A3C2', '#ADC2D6', '#000000', 'boxe'}, -- boxeur
	{'Q13382566', 	'#BFD7FF', '#BFD7FF', '#000000', 'kayak'}, -- canoéiste
	{'Q2309784', 	'#FFDF80', '#FFE7A0', '#000000', 'cyclisme'}, -- coureur cycliste
	{'Q13381863', 	'#C0BBDB', '#D0CCE4', '#000000', 'escrime'}, -- escrimeur
	{'Q18515558', 	'#99CC99', '#B3D9B3', '#000000', 'futsal'}, -- joueur de futsal
	{'Q937857', 	'#99CC99', '#B3D9B3', '#000000', 'footballblack'}, -- footballeur
	{'Q19841381', 	'#BFD33C', '#CFDE6D', '#000000', 'defaut'}, -- joueur de football canadien
	{'Q16947675', 	'#B0C4DE', '#C4D3E6', '#000000', 'gymnastique'}, -- gymnaste
	{'Q13156709', 	'#007700', '#007700', '#000000', 'golf'}, -- golfeur
	{'Q3951423', 	'#BFD7FF', '#BFD7FF', '#000000', 'escalade'}, -- grimpeur
	{'Q13365117', 	'#E0D080', '#E8DCA0', '#000000', 'handballblack'}, -- handballeur
	{'Q9017214', 	'#FFDFA2', '#FFE7B9', '#000000', 'karate'}, -- karatéka
	{'Q6665249', 	'#FFDFA2', '#FFE7B9', '#000000', 'judo'}, -- judoka
	{'Q16004471', 	'#BFD7FF', '#BFD7FF', '#000000', 'kayak'}, -- kayakiste
	{'Q11774891', 	'#DFEDFF', '#E7F2FF', '#000000', 'hockey'}, -- joueur de hockey sur glace
	{'Q10843263', 	'#99CC99', '#B3D9B3', '#000000', 'hockey-sur-gazon'}, -- joueur de hockey sur gazon
	{'Q10843402', 	'#318CE7', '#65A9ED', '#FFFFFF', 'natation'}, -- nageur
	{'Q15958185', 	'#B4B9C3', '#C7CBD2', '#000000', 'sport-automobile'}, -- pilote automobile
	{'Q3014296', 	'#B4B9C3', '#C7CBD2', '#000000', 'sport-automobile'}, -- pilote de moto
	{'Q2730732', 	'#C3906E', '#D2B48C', '#000000', 'equitation'}, -- cavalier
	{'Q20900796', 	'#BFD7FF', '#BFD7FF', '#000000', 'rinkhockey'}, -- joueur de rink hockey
	{'Q13415036', 	'#336699', '#668CB3', '#FFFFFF', 'rugby'}, -- rugbyman
	{'Q13561328', 	'#99CCFF', '#BBDDFF', '#000000', 'surf'}, -- surfeur
	{'Q10833314', 	'#FFAA77', '#FFBF99', '#000000', 'tennis'}, -- joueur de tennis
    {'Q15306067', 	'#BFD7FF', '#BFD7FF', '#000000', 'triathlon'}, -- triathlète
	{'Q13141064', 	'#FFAA77', '#FFBF99', '#000000', 'badminton'}, -- joueur de badminton
	{'Q16278103', 	'#FFAA77', '#FFBF99', '#000000', 'squash'}, -- joueur de squash
	{'Q13382519', 	'#FFAA77', '#FFBF99', '#000000', 'tennis-de-tableblack'}, -- joueur de tennis de table
	{'Q15117302', 	'#74CC66', '#97D98C', '#000000', 'volleyball'}, -- volleyeur
	{'Q17524364', 	'#BFD7FF', '#BFD7FF', '#000000', 'water-polo'}, -- joueur de water-polo
	{'Q549322', 	'#AA3333', '#D87C7C', '#000000', 'defaut'}, -- torero
	{'Q12299841', 	'#F5F5DC', '#F5F5DC', '#000000', 'defaut'}, -- joueur de cricket
	{'Q13474373', 	'#306090', '#306090', '#000000', 'catch'}, -- catcheur
	{'Q202648', 	'#CCE6CC', '#E6F2E6', '#000000', 'arbitre'}, -- arbitre sportif
	{'Q611644', 	'#66CC80', '#BFFFBF', '#000000', 'eveque'}, -- évêque catholique
	{'Q29182',  	'#66CC80', '#BFFFBF', '#000000', 'eveque'}, -- évêque
	{'Q49476', 		'#66CC80', '#BFFFBF', '#000000', 'eveque'}, -- archévêque
	{'Q171692', 	'#66CC80', '#BFFFBF', '#000000', 'defaut'}, -- patriarche
	{'Q45722', 		'#DE143C', '#EF7777', '#000000', 'cardinal'}, -- cardinal
	{'Q19546', 		'#FED600', '#FFFF00', '#000000', 'defaut'}, -- pape
	{'Q172748', 	'#FED600', '#FFFF00', '#000000', 'defaut'}, -- antipape
	{'Q9591034', 	'#FED600', '#FFFF00', '#000000', 'defaut'}, -- bienheureux
	{'Q43115', 		'#FED600', '#FFFF00', '#000000', 'defaut'}, -- saint
	{'Q103163', 	'#8C8C8C', '#E1E1E1', '#000000', 'defaut'}, -- abbé
	{'Q1646408', 	'#8C8C8C', '#E1E1E1', '#000000', 'defaut'}, -- abbesse
	{'Q725440', 	'#AA0052', '#D580A9', '#000000', 'defaut'}, -- prélat
	{'Q81066', 		'#6495ED', '#6495ED', '#FFFFFF', 'defaut'}, -- secrétaire général de l'ONU
	{'Q20778343', 	'#F2F2F2', '#F2F2F2', '#000000', 'defaut'}, -- magistrat romain
	{'Q15253558', 	'#E1E1E1', '#E1E1E1', '#000000', 'defaut'}, -- militant
	{'Q1250916', 	'#EEEEFF', '#EEEEFF', '#000000', 'defaut'}, -- guerrier
	{'Q2722764',	'#D9D9FF', '#7ABCF9', '#000000', 'communication'}, -- animateur de radio
	{'Q3186984', 	'#D9D9FF', '#7ABCF9', '#000000', 'presse'}, -- journaliste de presse écrite
	{'Q1930187', 	'#D9D9FF', '#7ABCF9', '#000000', 'defaut'}, -- journaliste
	{'Q17291399', 	'#09C8BD', '#5CF8F0', '#000000', 'cinema'}, -- personnalité du cinéma
	{'Q13382608', 	'#DFEDFF', '#E7F2FF', '#000000', 'fondeur'}, -- fondeur
	{'Q20965770', 	'#DFEDFF', '#E7F2FF', '#000000', 'defaut'}, -- pratiquant de sports d'hiver
	{'Q11607585', 	'#FFDFA2', '#FFE7B9', '#000000', 'artsmartiauxjap'}, -- pratiquant d'arts martiaux mixtes
	{'Q11124885', 	'#FFDFA2', '#FFE7B9', '#000000', 'artsmartiauxjap'}, -- pratiquant d'arts martiaux
	{'Q2066131', 	'#BFD7FF', '#BFD7FF', '#000000', 'defaut'}, -- sportif
	{'Q82955', 		'#4682B4', '#B0C4DE', '#FFFFFF', 'defaut'}, -- personnalité politique
	{'Q36180', 		'#4C6099', '#7090E0', '#FFFFFF', 'auteur'}, -- écrivain
	{'Q33999', 		'#EEEEFF', '#EEEEFF', '#000000', 'persofiction'}, -- acteur
	{'Q639669', 	'#EEEEFF', '#EEEEFF', '#000000', 'musique'}, -- musicien
	{'Q483501', 	'#7DA7D9', '#7DA7D9', '#000000', 'artiste'}, -- artiste
	{'Q901', 		'#EEEEFF', '#EEEEFF', '#000000', 'defaut'}, -- scientifique
}

local function setformat() --retourne une table contenant la couleur principale de l'infobox et l'icône de titre
	local occupations = wd.stringTable{entity = item, property = 'P106', displayformat = 'raw', excludespecial = true} -- récupère les Qid des professions
	if not occupations or (#occupations > 1) then -- si plusieurs occupations, on ne sait pas laquelle choisir
		return  {'Q', '#EEEEFF', '#EEEEFF', '#000000', 'defaut'}
	end
	occupations = wd.addVals(occupations, {property = 'P279'}, 2) -- nombre d'étages de sous-classes à remonter
	for i, j in pairs(occupationformats) do
		for k, l in pairs(occupations) do
			if j[1] == l then
				return j
			end
		end
	end
	return {'Q', '#EEEEFF', '#EEEEFF', '#000000', 'defaut'}
end
local personformat = setformat()
return
	{
	maincolor = personformat[2],
	secondcolor = personformat[3],
	thirdcolor = personformat[4],
	parts =
    	{
			person.title(personformat[5]),
			person.mainimage(),
			person.officialposition(),
			person.nobilitytitle(),
			{type = 'table',title='Informations générales',rows = {
				person.birth(),
				person.death(),
				person.othernames(),
				person.nationality(),
				person.places(),
				person.education(),
				person.occupation(),
				{type = 'row', label = 'Organisation', plurallabel = 'Organisations', value = 'organisation', property = 'P1268'},
				person.employer(),
				{type = 'row', label = 'Domaine', plurallabel = 'Domaines', value = 'domaine', property = 'P101'},
                {type = 'row', label = 'Propriétaire de', value = 'propriétaire de', property = 'P1830'},
				person.politicalparty(),
                person.memberof(),
				person.military(),
				person.sport(),
				{type = 'row', label = 'Grade', plurallabel = 'Grades', value= 'grade', property = 'P468'},
				{type = 'row', label = 'Commandement', plurallabel = 'Commandements', wikidata = {property = 'P598', sorttype= 'chronological', showdate = true, precision = 'year'},},
				{type = 'row', label = 'Ordre religieux', plurallabel = 'Ordres religieux', value = 'ordre religieux', property = 'P611'},
				person.music(),
				person.contacts(),
				person.movement(),
				{type = 'row', label = 'Genre artistique', plurallabel= 'Genres artistiques', value= 'genre artistique', property = 'P136'},
				{type = 'row', label = 'Adjectifs dérivés', value = 'adjectifs dérivés'},
				person.appearance(),
				-- {type = 'row', label = 'Groupe ethnique', plurallabel= 'Groupes ethniques', value= 'groupe ethnique', property = 'P172'},
				person.family(),
				person.website(),
				{type = 'row', label = 'Blog officiel', value = 'blog officiel', property = 'P1581'},
				},
			},
			{type = 'table',title='Palmarès',rows = {
				person.awards(),
				person.filmography(),
				person.discography(),
				},
			},
			person.honorifictitle(),
			person.blason(),
			person.flag(),
			person.works(),
			person.signature(),
		}
	}