Module:Infobox/Descriptif course cycliste

 Documentation[voir] [modifier] [historique] [purger]

Cette page définit un module d'infobox. Pour les conseils sur l'usage de ce module, voyez Modèle:Infobox Descriptif course cycliste.

Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.

local wikidata = require "Module:Wikidata"
local general = require "Module:Infobox/Fonctions"
local sports = require "Module:Infobox/Fonctions/Compétition sportive"
local nombre2texte = require "Module:Nombre2texte"


local function race(name, edition) -- affichage de la course et de son numéro d'édition
	if not(name or edition) then
		return nil
	end
	return (edition or '') .. ' ' .. (name or ' édition')
end

local function country_table( localdata ) 
	local names = localdata['Pays']
	if names then
		return {type = 'row', label = 'Pays traversé(s)', value = 'Pays'}
	else
		return general.country()
	end
end

return {
	maincolor = '#FFDF80',
	parts = {
		general.title('cyclisme'),
		general.mainimage('Article à illustrer Descriptif course cycliste'),
		{type = 'table', title = 'Généralités', rows = {
			{	type = 'row',
				label = 'Course',
				value = function ( localdata )
					return race(localdata['Course'], localdata['Edition'])
				end,
				wikidata = function ( item )
					local edition = wikidata.formatStatements{
						property = 'P393',
						entity = item,
						displayformat = function(snak) return nombre2texte.ordinal(snak.datavalue.value) end
					}
					local name = wikidata.formatAndCat{property = 'P31', entity = item}
					if edition then
						edition = edition .. wikidata.addTrackingCat('P393')
					end
					return race(name, edition)
				end
			},
			{type = 'row', label = 'Nom officiel', value = 'nom officiel', property = 'P1448'},
			{type = 'row', label = 'Compétition', value = 'compétition', property = 'P361'},
			{	type = 'row',
				label = 'Étapes',
				value = 'nombre_étape',
				wikidata = function ( item ) -- suppose que P527 ne contienne que des étapes, et contienne toutes les étapes
					local stages = wikidata.getClaims{entity = item, property = 'P527'}
					if not stages then
						return nil
					end
					local str = tostring(#stages)
					str = wikidata.addLinkBack(str, item, 'P527')
					return str
				end
			},
			{type = 'row', label = 'Date', value = 'date', wikidata = function ( item ) return wikidata.mainDate(item) end},
			{type = 'row', label = 'Distance', value = 'distance_parcourue', property = 'P2043'},
			country_table,
			{type = 'row', label = 'Lieu de départ', value = 'ville_depart', property = 'P1427'},
			{type = 'row', label = "Lieu d'arrivée", value = 'ville_arrivee', property = 'P1444'},
			{type = 'row', label = 'Coût', property = 'P2130'},
			{	type = 'row',
				label = 'Équipes',
				value = 'nombre_équipes',
				wikidata = function ( item ) -- suppose que P1923 ne contienne que des équipes, et contienne toutes les équipes
					local teams = wikidata.getClaims{entity = item, property = 'P1923'}
					if not teams then
						return nil
					end
					local str = tostring(#teams)
					str = wikidata.addLinkBack(str, item, 'P1923')
					str = str .. wikidata.addTrackingCat('P1923')
					return str
				end
			},
			{type = 'row', label = 'Partants', wikidata = {property = 'P1132', qualifier = 'P276', qualifiervalue = 'Q529711'} },
			{type = 'row', label = 'Arrivants', wikidata = {property = 'P1132', qualifier = 'P276', qualifiervalue = 'Q15053716'} },
			{type = 'row', label = 'Coureurs au départ', value = 'nombre_participant'}, -- paramètre obsolète, ne plus utiliser
			{type = 'row', label = 'Coureurs à l\'arrivée', value = 'coureurs_arrives'}, -- paramètre obsolète, ne plus utiliser
			{type = 'row', label = 'Vitesse moyenne', value = 'moyenne_du_vainqueur', property = 'P2052'},
			{type = 'row', label = 'Temps', value = 'temps'}, -- remplissage manuel en attendant la possibilité d'utiliser des unités sur Wikidata
			},
		},
		{type = 'table', title = 'Résultats', rows = {
			-- chaque ligne contient : le libellé, le paramètre de modèle à utiliser, le qualificatif Wikidata à utiliser
			sports.winnerRow2('Vainqueur', 'vainqueur', 'Q20882667'),
			sports.winnerRow2('Deuxième', 'deuxième', 'Q20882668'),
			sports.winnerRow2('Troisième', 'troisième', 'Q20882669'),
			sports.winnerRow2('Classement par points', 'meilleur_points', 'Q20883007'),
			sports.winnerRow2('Meilleur grimpeur', 'meilleur_grimpeur', 'Q20883212'),
			sports.winnerRow2('Meilleur sprinteur', 'meilleur_sprinteur',  'Q20883328'),
			sports.winnerRow2('Meilleur jeune', 'meilleur_jeune', 'Q20883139'),
			sports.winnerRow2('Super-combatif', 'super_combatif', 'Q20893983'),
			sports.winnerRow2('Vainqueur du combiné', 'classement_combiné', 'Q20893979'),
			sports.winnerRow2('Meilleure équipe', 'meilleure_equipe',  'Q20882921'),
		}},
		{	type = 'images',
			imageparameters = {'carte', '1.2'},
			property = 'P242',
			numval = 1
		},
		{	type = 'navbox',
			previousparameter = "compétition précédente",
			previouswikidata = {property = "P155", excludespecial = true},
			nextparameter = "compétition suivante",
			nextwikidata = {property = "P156", excludespecial = true},
			separated = true,
		},
	}
}