Este módulo no tiene página de documentación[crear]
local z = {}

-- Módulos y funciones externas
local ModuloArgumentos	= require('Módulo:Argumentos')
local ModuloFormatos	= require('Módulo:Wikidata/Formatos')
local ModuloFicha		= require('Módulo:Ficha')
local ModuloWikidata	= require('Módulo:Wikidata')
local ModuloPaginas		= require('Módulo:Páginas')
local formatoNumero		= ModuloFormatos.formatoNumero2
local argumentos		= ModuloArgumentos.obtenerValorDeArgumentos
local entidadId

function z.Ficha(frame)
	ModuloWikidata:setFrame(frame)
    ModuloArgumentos.obtenerTablaDeArgumentos(frame)
	entidadId		= argumentos{'id','entidad'} or mw.wikibase.getEntityIdForCurrentPage()
    local titulo	= argumentos{'titulo',
    	{mw.wikibase.getLabel, entidadId}, {ModuloPaginas.nombrePagina, {desambiguar='sí'}}}
    
    local imagen		= argumentos{'imagen'}
    local tamano_imagen	= argumentos{'tamaño_imagen'} or '220px'
    local pie_imagen	= argumentos{'pie_imagen'}
    
    local poblacion = argumentos{'poblacion'}
    if poblacion~=nil and poblacion~='' and argumentos{'variacion'}~=nil and argumentos{'variacion'}~='' then
    	poblacion = formatoNumero(argumentos{'poblacion'}) .. '&nbsp;hab. <small>(' .. argumentos{'variacion'} .. '&nbsp;%)</small>'
    elseif (poblacion~=nil and poblacion~='' ) then
    	poblacion = formatoNumero(argumentos{'poblacion'}) .. '&nbsp;hab.'
    end
    
    local hombres = argumentos{'poblacion_masc'}
    if argumentos{'poblacion_masc'}~=nil and argumentos{'poblacion_masc'}~='' and argumentos{'porcentaje_masc'}~=nil and argumentos{'porcentaje_masc'}~='' then
    	hombres = formatoNumero(argumentos{'poblacion_masc'}) .. '&nbsp;hab. <small>(' .. argumentos{'porcentaje_masc'} ..'&nbsp;%)</small>'
    elseif (argumentos{'poblacion_masc'}~=nil and argumentos{'poblacion_masc'}~='') then
    	hombres = formatoNumero(argumentos{'poblacion_masc'}) .. '&nbsp;hab.'
    end
    
    local mujeres = argumentos{'poblacion_fem'}
    if argumentos{'poblacion_fem'}~=nil and argumentos{'poblacion_fem'}~='' and argumentos{'porcentaje_fem'}~=nil and argumentos{'porcentaje_fem'}~='' then
    	mujeres = formatoNumero(argumentos{'poblacion_fem'}) .. '&nbsp;hab. <small>(' .. argumentos{'porcentaje_fem'} .. '&nbsp;%)</small>'
    elseif (argumentos{'poblacion_fem'}~=nil and argumentos{'poblacion_fem'}~='') then
    	mujeres = formatoNumero(argumentos{'poblacion_fem'}) .. '&nbsp;hab.'
    end
    
    local densidad = argumentos{'densidad'}
    if densidad~=nil and densidad~='' then
    	densidad = densidad .. '&nbsp;'..'hab/km²'
    end
    
    local region_mayor = argumentos{'region_mayor'}
    if argumentos{'region_mayor'}~=nil and argumentos{'region_mayor'}~='' and argumentos{'region_mayor_pob'}~=nil and argumentos{'region_mayor_pob'}~='' then
    	region_mayor = argumentos{'region_mayor'} .. ' <small>(' .. formatoNumero(argumentos{'region_mayor_pob'}) .. '&nbsp;hab.)</small>'
    elseif argumentos{'region_mayor'}~=nil and argumentos{'region_mayor'}~='' then
    	region_mayor = argumentos{'region_mayor'}
    end
    
    local region_menor = argumentos{'region_menor'}
    if argumentos{'region_menor'}~=nil and argumentos{'region_menor'}~='' and argumentos{'region_menor_pob'}~=nil and argumentos{'region_menor_pob'}~='' then
    	region_menor = argumentos{'region_menor'} .. ' <small>(' .. formatoNumero(argumentos{'region_menor_pob'}) .. '&nbsp;hab.)</small>'
    elseif argumentos{'region_menor'}~=nil and argumentos{'region_menor'}~='' then
    	region_menor = argumentos{'region_menor'}
    end
    
    local ciudad = argumentos{'ciudad_mayor'}
    if argumentos{'ciudad_mayor'}~=nil and argumentos{'ciudad_mayor'}~='' and argumentos{'ciudad_mayor_pob'}~=nil and argumentos{'ciudad_mayor_pob'}~='' then
    	ciudad = argumentos{'ciudad_mayor'} .. ' <small>(' .. formatoNumero(argumentos{'ciudad_mayor_pob'}) .. '&nbsp;hab.)</small>'
    elseif argumentos{'ciudad_mayor'}~=nil and argumentos{'ciudad_mayor'}~='' then
    	ciudad = argumentos{'ciudad_mayor'}
    end
    
    local previo = argumentos{'anterior_año'}
    if argumentos{'anterior_año'}~=nil and argumentos{'anterior_año'}~='' and argumentos{'anterior_enlace'}~=nil and argumentos{'anterior_enlace'}~='' then
    	previo = '[['..argumentos{'anterior_enlace'}..'|'..argumentos{'anterior_año'}..']]'
    elseif argumentos{'anterior_año'}~=nil and argumentos{'anterior_año'}~='' then
    	previo = argumentos{'anterior_año'}
    end
    
    local proximo = argumentos{'siguiente_año'}
    if argumentos{'siguiente_año'}~=nil and argumentos{'siguiente_año'}~='' and argumentos{'siguiente_enlace'}~=nil and argumentos{'siguiente_enlace'}~='' then
    	proximo = '[[' .. argumentos{'siguiente_enlace'} .. '|' .. argumentos{'siguiente_año'}..']]'
    elseif argumentos{'siguiente_año'}~=nil and argumentos{'siguiente_año'}~='' then
    	proximo =  argumentos{'siguiente_año'}
    end
    
    local sucesion
    	if argumentos{'anterior_año'} or argumentos{'siguiente_año'} then
    		sucesion = {
			tipo         = 'sección',
			['título']	 = 'Cronología',
			estilotitulo = estiloseccion,
			{
				tipo      = 'sucesión',
				anterior  = previo,
				actual    = '◄ Actual ►',
				siguiente = proximo,
			}
		}
    end
    
    local Ficha = {
		tipocabecera    	= "humano",
		colorfondotitulo	= "#DCDCDC",
		estilosubtitulo 	= "background-color:#DCDCDC",
		estiloseccion   	= "background-color:#DCDCDC",
		estilopiedetabla	= "background-color:#DCDCDC",
		estilopie       	= "font-size:85%",
		
        titulo      		= titulo,

        imagen      		= argumentos{'logo'},
        ['tamañoimagen']	= '180px',
        imagen2      		= imagen,
        ['tamañoimagen2']	= tamano_imagen,
        pie2	    		= pie_imagen,
        
        {tipo='sección',
        	titulo = 'Información general',
        	{'Nombre oficial', argumentos{'nombre_oficial'}},
        	{'Tipo de censo', argumentos{'tipo'}},
			{'Lugar', argumentos{'lugar'}},
			{'Fecha de realización', argumentos{'fecha'}},
			{'Autoridad responsable', argumentos{'autoridad'}},
			{'Costo de realización', argumentos{'costo'}}
		},

		{tipo='sección',
			titulo = 'Datos de población',
			{'Población', poblacion},
			{'Población masculina', hombres},
			{'Población femenina', mujeres},
			{'Densidad de población', densidad},
			{'Región más poblada', region_mayor},
			{'Región menos poblada', region_menor},
			{'Ciudad más poblada', ciudad}
		},
	
		{tipo='sección',
			titulo = 'Datos de vivienda',
			{'Total de viviendas', formatoNumero(argumentos{'vivienda_total'})},
			{'Viviendas urbanas', formatoNumero(argumentos{'vivienda_urbana'})},
			{'Viviendas rurales', formatoNumero(argumentos{'vivienda_rural'})}
		},
	
		{tipo='sección',
			titulo = 'Datos económicos',
			{'Total de establecimientos', formatoNumero(argumentos{'establecimientos'})},
			{'Total de trabajadores', formatoNumero(argumentos{'trabajadores'})},
			},
	
		sucesion,

		piedetabla = argumentos{'sitio_web'}
	}
    return ModuloFicha.infobox(Ficha)
end

function propiedad(idPropiedad,opciones)
	local declaraciones = entidadId and mw.wikibase.getBestStatements(entidadId, idPropiedad)
    if declaraciones then
        if not opciones then
            opciones = {['linkback']='sí'}
        end
        opciones.entityId  = entidadId
        opciones.propiedad = idPropiedad
        valorPropiedad = ModuloWikidata.getPropiedad(opciones,declaraciones)
        return valorPropiedad
    end
end

return z