Modul:KategoriKjønn: Forskjell mellom sideversjoner

Fra wikisida.no
Hopp til navigering Hopp til søk
Legger til metode for statistikk
La til kategoriar for transkvinner og transmenn.
Linje 1: Linje 1:
local math_mod = require( "Module:Math" )
local p = {}
local p = {}
local useKategory = {
["Q43445"] = " ", -- kjønn hunn for dyr - kategoriserer vi ikke
["Q44148"] = " ", -- kjønn hann for dyr - kategoriserer vi ikke
["Q48270"] = " ", -- kjønnsskeiv  -- på vent
["Q189125"] = " ", -- "[[Kategori:transpersoner]]",  .. utsettes litt
["Q1052281"] = " " , -- Til vurdering: "[[Kategori:kvinner]][[Kategori:transpersoner]]",
["Q1097630"] = " ",  -- interseksuell - på vent
["Q2449503"] = " " , -- Til vurdering: "[[Kategori:menn]][[Kategori:transpersoner]]",
["Q6581072"] = "[[Kategori:kvinner]]",
["Q6581097"] = "[[Kategori:menn]]",
["Q18116794"] = " ",  -- genderfluid - på vent
["Q27679684"] = " ",  -- transfeminine - på vent
["Q96000630"] = " "  -- X-gender - på vent
 
}
local function selectSingleClaim(claims)
if not claims then
return nil
end
local selectedClaim = nil
for idx,claim in pairs(claims) do
if claim.rank == 'preferred' then
return claim
end
if claim.rank == 'normal' then
if not selectedClaim then
selectedClaim = claim
end
end
end
return selectedClaim
end


-- Return kjønn til artikkelen
-- Return kjønn til artikkelen
Linje 43: Linje 8:
     local artikkel = mw.wikibase.getEntityObject()
     local artikkel = mw.wikibase.getEntityObject()
     if not artikkel then
     if not artikkel then
         return "[[Kategori:Artikler som ikke er koblet til Wikidata]]"
         return "[[Kategori:Artiklar som manglar på Wikidata]]"
     end
     end
     local claims = artikkel.claims
     local claims = artikkel.claims
     if not claims then
     if not claims then
         return "[[Kategori:Artikler som mangler utsagn på Wikidata]]"
         return "[[Kategori:Artikler som manglar utsegn på Wikidata]]"
    end
    local p31 = claims.P31
    if p31 then
    local gnd = p31[1].mainsnak.datavalue.value["numeric-id"]
    if gnd ~= 5 then
    return ""
    end
     end
     end
   
     local p21 = claims.P21
     local p21 = selectSingleClaim(claims.P21)
     if not p21 then
     if not p21 then
         local p31 = claims.P31
         local p107 = claims.P107
         if p31 then
         if p107 then
             local forekomst = p31[1].mainsnak.datavalue.value["numeric-id"]
             local gnd = p107[1].mainsnak.datavalue.value["numeric-id"]
             if forekomst == 5 then
             if gnd == 215627 then
                 return "[[Kategori:Artikler hvor kjønn mangler på Wikidata]]"
                 return "[[Kategori:Artiklar som manglar utsegn om kjønn på Wikidata]]"
             end
             end
         end
         end
         return ""
         return ""
     end
     end
     if p21.mainsnak.datavalue == nil then
     if p21[1].mainsnak.datavalue == nil then
         return "[[Kategori:Kjønn ukjent]]"
         return "[[Kategori:Ukjent kjønn]]"
     else
     else
         local kjonnid = p21.mainsnak.datavalue.value["numeric-id"]
         local kjonnid = p21[1].mainsnak.datavalue.value["numeric-id"]
         local kjonn = "Q" ..kjonnid
         local kjonn = mw.wikibase.label( "Q" ..kjonnid)
    local kjonnkat = useKategory[kjonn] or "[[Kategori:Kjønn ukjent]]"
        if kjonn == "mann" then
    return kjonnkat
            return "[[Kategori:Einskildmenn]]"
        elseif kjonn == "kvinne" then
            return  "[[Kategori:Einskildkvinner]]"
        elseif kjonn == "transkvinne" then
            return  "[[Kategori:Transkvinner]]"
        elseif kjonn == "transmann" then
            return  "[[Kategori:Transmenn]]"
        else
            return "[[Kategori:Ukjent kjønn]]"
        end
     end
     end
end
function p.statistikk()
  local menn = mw.site.stats.pagesInCategory("menn", "pages")
  local kvinner = mw.site.stats.pagesInCategory("kvinner", "pages")
  local alle = menn+kvinner
  local prosMenn = menn*100/alle
  local prosKvinner = kvinner*100/alle
  return "Antal biografier:<br/>" ..
  "- Kvinner  " .. mw.language.getContentLanguage():formatNum(kvinner) .. " (" .. math_mod._precision_format(prosKvinner,2) .. " %)<br/>" ..
  "- Menn      " .. mw.language.getContentLanguage():formatNum(menn) .. " (" .. math_mod._precision_format(prosMenn,2) .. " %)"
end
end


return p
return p

Sideversjonen fra 24. jan. 2021 kl. 09:19

Formål

Legger biografiartikler i artikkel basert på hvilket kjønn som er registrert i Wikidata.

Bruk

Modulen brukes ved å legge inn {{#invoke:KategoriKjønn|kjonnskategori}} i en mal. Malen {{KategoriKjønn}} har implementert dette.


local p = {}

-- Return kjønn til artikkelen
function p.kjonnskategori(frame)
    if not mw.wikibase then
        return ""
    end
    local artikkel = mw.wikibase.getEntityObject()
    if not artikkel then
        return "[[Kategori:Artiklar som manglar på Wikidata]]"
    end
    local claims = artikkel.claims
    if not claims then
        return "[[Kategori:Artikler som manglar utsegn på Wikidata]]"
    end
    local p31 = claims.P31
    if p31 then
    	local gnd = p31[1].mainsnak.datavalue.value["numeric-id"]
    	if gnd ~= 5 then
    		return ""
    	end
    end
    local p21 = claims.P21
    if not p21 then
        local p107 = claims.P107
        if p107 then
            local gnd = p107[1].mainsnak.datavalue.value["numeric-id"]
            if gnd == 215627 then
                return "[[Kategori:Artiklar som manglar utsegn om kjønn på Wikidata]]"
            end
        end
        return ""
    end
    if p21[1].mainsnak.datavalue == nil then
        return "[[Kategori:Ukjent kjønn]]"
    else
        local kjonnid = p21[1].mainsnak.datavalue.value["numeric-id"]
        local kjonn = mw.wikibase.label( "Q" ..kjonnid)
        if kjonn == "mann" then
            return "[[Kategori:Einskildmenn]]"
        elseif kjonn == "kvinne" then
            return  "[[Kategori:Einskildkvinner]]"
        elseif kjonn == "transkvinne" then
            return  "[[Kategori:Transkvinner]]"
        elseif kjonn == "transmann" then
            return  "[[Kategori:Transmenn]]"
        else
            return "[[Kategori:Ukjent kjønn]]"
        end
    end
end

return p