وحدة:ب.ص.م/بطاقة/فريق دراجات

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث

هذه الصفحة شرح لوحدة من وحدات البطاقات المبنية اعتمادا على وحدة:ب.ص.م. وتستعمل في {{بطاقة فريق دراجات}}.

local wikidata = require "Module:Wikidata/fr"
local general = require "وحدة:ب.ص.م/أدوات"
local sports = require "وحدة:ب.ص.م/أدوات/منافسة رياضية"
local linktopic = '-'

local function getFormerNames( item )
	local claims =  wikidata.getClaims{
		property = vals,
		entity = item,
		property = 'P1448',
		rank = 'valid',
		sorttype = 'chronological'
	}
	if not claims then
		return nil
	end
	local names, periods = {}, {}
	for i, val in pairs(claims) do
		table.insert(names, wikidata.formatStatement(val))
		table.insert(periods, wikidata.getFormattedDate(val, {linktopic = '-', precision = 'day'}))
	end
	return names, periods
end

local function formerNamesTable( localdata ) -- retourne une table de lignes contenant les anciens noms de l'équipe
	local names, periods = localdata['اسم قديم'], localdata['موسم']
	if names then
		names =  mw.text.split(names, '<br />')
		periods = mw.text.split(periods or '', '<br />')
	else
		names, periods = getFormerNames( localdata.item )
	end
	if not names then
		return nil
	end
	local rows = {}
	for i, period in pairs(periods) do
		table.insert( rows, {type = 'row', label = period, value = function () return names[i] end})	
	end
	local title = 'التسميات'
	if #names == 1 then
		title = 'تسمية'
	end
	return {type = 'table', title = title, rows = rows}
end

return {
	maincolor = '#FFDF80',
	parts = {
		general.title('cyclisme'),
		general.mainimage('مقالة عن فريق دراجات'),
		{type = 'table', title = 'معلومات عامة', rows = {			
			{
				type = 'row',
				label = function ( localdata )
					local claims = wikidata.getClaims{property = 'P1998', entity = localdata.item}
					if (not claims) or #claims == 1 then
						return "رمز UCI"
					end
					return "رموز UCI"
				end,
				value = 'code',
				wikidata = function ( item )
					local claims = wikidata.getClaims{
						entity = item,
						property = 'P1998',
						conjtype = '<br />',
						sorttype = 'chronological',
						rank = 'valid'
					}
					if not claims then
						return nil
					end
					local conjtype,textformat = '<br />', 'long'
					if #claims > 4 then
						conjtype, textformat = 'comma', 'long'
					end
					return wikidata.formatAndCat{
						entity = item,
						property = 'P1998',
						showdate = true,
						textformat = textformat,
						linktopic = '-',
						rank = 'valid'
					}
				end
			},
			{type = 'row', label = 'الرياضة', value = 'رياضة', property = 'P641'},
			function ( localdata ) -- affichage du pays, avec les dates seulement s'il y en a plus qu'1
				local c = wikidata.getClaims{entity = localdata.item, property = 'P17', rank = 'valid'}
				if not c then
					return nil
				elseif c == 1 then
					return general.country{rank = 'valid', sorttype = 'chronological'}
				else
					return general.country{rank = 'valid', sorttype = 'chronological', showdate = true}
				end
			end,
			{type = 'row', label = 'التأسيس', value = {'creation','تأسيس','founded'}, property = 'P571'},
			{type = 'row', label = 'انحلال', value = {'disbanded','نهاية'}, property = 'P576'},
                        sports.typeofteam,
			{
				type = 'row',
				label = 'المواسم',
				value = 'مواسم',
				wikidata = function ( item ) -- suppose que P527 ne contienne que des saisons, et contienne toutes les saisons
					local seasons = wikidata.getClaims{entity = item, property = 'P527'}
					if not seasons then
						return nil
					end
					local str = tostring(#seasons)
					str = wikidata.addLinkBack(str, item, 'P527')
					str = str .. wikidata.addTrackingCat('P527')
					return str
				end,
			},
			{type = 'row', label = 'الميزانية', value = 'ميزانية', wikidata = {
				property = 'P2769',
				separator = '<br />',
				rank = 'valid',
				showdate = true
			}},
			{type = 'row', label = 'الراعي الرسمي', value = 'راعي', plurallabel = 'الرعاة الرسميون', property = 'P859'},
			{type = 'row', label = 'دراجات', value = {'velo','دراجات','bicycles'}},
			general.website('site'),
		}},
		{type = 'table', title = 'التأطير', rows = {
			{type = 'row', label = 'المدير العام', value = {'مدير عام','generalmanager','manager'}, wikidata = {
				property = 'P505',
				conjtype = '<br />',
				showdate = true,
				linktopic = linktopic
			}},
			{type = 'row', label = 'المدير التقني', value = 'مدير تقني'},
			{type = 'row',
				label = 'المدير الرياضي',
				plurallabel = 'المدراء الرياضيون',
				value = function ( localdata )
					local vals = {}
					for i = 1, 10 do
						local dir = localdata['ds' .. tostring(i)]
						if dir then
							table.insert(vals, dir)
						end
					end
					if #vals > 0 then
						return table.concat(vals, '<br />')
					end
				end,
				wikidata = {
					property = 'P286',
					conjtype = '<br />',
					showdate = true,
					linktopic = linktopic
				}
			},
			{type = 'row', label = 'المعالج', value = 'معالج'},
			{type = 'row', label = 'الطبيب', value = 'طبيب'},
		}},
		formerNamesTable,
	}
}