![]() | This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
Module to generate conservation status information in taxoboxes. Plan is to replace {{Taxobox/species}}.
Usage
Entry point function "status", currently used in {{taxobox/species}} for some conservation systems:
{{#invoke:Conservation status|status|conservation status system|conservation status code|status reference}}
The entry point function "main" is planned to replace {{taxobox/species}}.
local p = {}
-- function main() - entry point for template
function p.main(frame)
local system = mw.text.trim(frame:getParent().args[1]) -- needs trim() for unnamed parameters
local status = mw.text.trim(frame:getParent().args[2])
local refs = mw.text.trim(frame:getParent().args[3] or "" )
--TODO add handling of extinct parameter
return '! colspan = 2 | <div style = "text-align:center;">[[Conservation status]]</div>' -- header row
.. '\n|-'
.. '\n| colspan = 2 | <div style = "text-align:center;">'
.. p._main(frame, system, status, refs) -- status content
.. '</div>'
end
-- function status() - entry point for direct invoke testing (assumes table structure and adds cell content)
function p.status(frame)
local system = mw.text.trim(frame.args[1])
local status = mw.text.trim(frame.args[2])
local refs = mw.text.trim(frame.args[3] or "" )
--TODO if system and status then return
return p._main(frame, system, status, refs)
end
function p._main(frame, system, status, refs)
local output = "ERROR"
system = string.upper(system)
status = string.upper(status)
local systemText = ""
--TODO check for system; if none give needs handling with long list of possible statuses to match current system
if system == "IUCN3.1" or system == "IUCN" then
output = p.IUCN31(frame, system, status)
systemText = "[[IUCN Red List|IUCN 3.1]]"
elseif system == "IUCN2.3" then
output = p.IUCN23(frame, system, status)
systemText = "[[IUCN Red List|IUCN 2.3]]"
elseif system == "CNCFLORA" then
--output = p.CNCFlora(frame, system, status)
output = p.UsesIUCN31(frame, system, status) -- uses IUCN3.1 system and criteria (need to block catgories)
systemText = "[[CNCFlora]]"
elseif system == "TPWCA" then
output = p.UsesIUCN31(frame, system, status) -- uses IUCN3.1 system and criteria (need to block catgories)
systemText = "[[NTFlora#TPWCA|TPWCA]]"
elseif system == "SANBI" or system == "RLSAP" then
output = p.SANBI(frame, system, status)
systemText = "[[Red List of South African Plants|SANBI Red List]]"
elseif system == "NATURESERVE" or system == "TNC" then
output = p.NatureServe(frame, system, status)
systemText = "[[NatureServe conservation status|NatureServe]]"
elseif system == "EPBC" then
output = p.EPBC(frame, system, status)
systemText = "[[Environment Protection and Biodiversity Conservation Act 1999|EPBC Act]]"
elseif system == "ESA" then
output = p.ESA(frame, system, status)
systemText = "[[Endangered Species Act|ESA]]"
elseif system == "COSEWIC" then
output = p.COSEWIC(frame, system, status)
systemText = "[[Committee on the Status of Endangered Wildlife in Canada|COSEWIC]]"
elseif system == "DECF" then
output = p.DECF(frame, system, status)
systemText = "[[Declared Rare and Priority Flora List|DEC]]"
elseif system == "NSWBCA" then
output = p.NSWBCA(frame, system, status)
systemText = "[[Biodiversity Conservation Act 2016 (NSW)|NSWBCA]]"
elseif system == "QLDNCA" then
output = p.QLDNCA(frame, system, status)
systemText = "[[Nature Conservation Act 1992|NCA]]"
elseif system == "CITES" then
output = p.CITES(frame, system, status)
systemText = "[[CITES]]"
elseif system == "NZTCS" then
output = p.NZTCS(frame, system, status)
systemText = "[[New Zealand Threat Classification System|NZ TCS]]"
else
output = p.SystemNotRecognised(frame, system, status)
systemText = "[[" .. system .. "]]" -- should this be linked?
end
if output ~= "ERROR" then
--[=[ template code
<small> ({{#if:{{{status_text|}}}
|[[{{{status_text|#Conservation status}}}|See text]] -- links to section in article?
|[[IUCN Red List|IUCN 3.1]]}}){{{3|}}}</small>
]=]
local statusText = frame:getParent().args['status_text']
--local systemText = " [[IUCN Red List|IUCN 3.1]]"
if statusText then
if statusText == "" then statusText = "#Conservation status" end
systemText = "[[" .. statusText .. "|See text]]"
end
output = output .. "<small> (" .. systemText .. ")" .. refs .. "</small>" -- "</div>"
return output
end
end
--[[ OTHER SYSTEMS
Territory Parks and Wildlife Conservation Act 2000 (TPWCA)
]]
function p.SystemNotRecognised(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
local extinct = "[[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status iucn3.1 EX.svg") .. extinct
elseif status == "CR" then
output = "[[Critically endangered species|Critically Endangered]]"
elseif status == "EN" then
output = "[[Endangered species|Endangered]]"
elseif status == "NT" then
output = "[[Near Threatened]]"
else
output = status
end
return output .. p.addCategory("Taxoboxes with an unrecognised status system")
end
--***************************************** IUCN 3.1 **********************************
function p.IUCN31(frame, system, status)
-- | EX = [[file:Status iucn3.1 EX.svg|frameless|link=|alt=]]<br />[[Extinction|Extinct]] {{#if:{{{extinct|}}}| ({{{extinct}}}) }} {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List extinct species]] | }}
-- | EW = [[file:Status iucn3.1 EW.svg|frameless|link=|alt=]]<br />[[Extinct in the Wild]] {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List extinct in the wild species]] | }}
-- | CR = [[file:Status iucn3.1 CR.svg|frameless|link=|alt=]]<br />[[Critically endangered species|Critically Endangered]] {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List critically endangered species]] |}}
-- | EN = [[file:Status iucn3.1 EN.svg|frameless|link=|alt=]]<br />[[Endangered species|Endangered]] {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List endangered species]] | }}
-- | VU = [[file:Status iucn3.1 VU.svg|frameless|link=|alt=]]<br />[[Vulnerable species|Vulnerable]] {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List vulnerable species]] |}}
local output = system .. ' ' .. status
if status == "EX" then
local extinct = "[[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status iucn3.1 EX.svg") .. extinct .. p.addCategory("IUCN Red List extinct species")
elseif status == "EW" then
output = p.addImage("Status iucn3.1 EW.svg") .. "[[Extinct in the Wild]]" .. p.addCategory("IUCN Red List extinct in the wild species")
elseif status == "CR" then
output = p.addImage("Status iucn3.1 CR.svg") .. "[[Critically endangered species|Critically Endangered]]" .. p.addCategory("IUCN Red List critically endangered species")
elseif status == "EN" then
output = p.addImage("Status iucn3.1 EN.svg") .. "[[Endangered species (IUCN status)|Endangered]]" .. p.addCategory("IUCN Red List endangered species")
elseif status == "VU" then
output = p.addImage("Status iucn3.1 VU.svg") .. "[[Vulnerable species|Vulnerable]]" .. p.addCategory("IUCN Red List vulnerable species")
-- | NT = [[file:Status iucn3.1 NT.svg|frameless|link=|alt=]]<br />[[Near Threatened]] {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List near threatened species]] | }}
-- | LC = [[file:Status iucn3.1 LC.svg|frameless|link=|alt=]]<br />[[Least Concern]] {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List least concern species]] |}}
-- | DD = [[file:Status iucn3.1 blank.svg|frameless|link=|alt=]]<br/>[[Data Deficient]] {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List data deficient species]] |}}
-- | NE = ''Not evaluated''
-- | NR = ''Not recognized''
-- | PE = [[file:Status iucn3.1 CR.svg|frameless|link=|alt=]]<br />[[Critically endangered]], possibly extinct {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List critically endangered species]] |}}
-- | PEW = [[file:Status iucn3.1 CR.svg|frameless|link=|alt=]]<br />[[Critically endangered]], possibly extinct in the wild {{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:IUCN Red List critically endangered species]]|}}
elseif status == "NT" then
output = p.addImage("Status iucn3.1 NT.svg") .. "[[Near Threatened]]" .. p.addCategory("IUCN Red List near threatened species")
elseif status == "LC" then
output = p.addImage("Status iucn3.1 LC.svg") .. "[[Least Concern]]" .. p.addCategory("IUCN Red List least concern species")
elseif status == "DD" then
output = p.addImage("Status iucn3.1 blank.svg") .. "[[Data Deficient]]" .. p.addCategory("IUCN Red List data deficient species")
elseif status == "NE" then
output = "''Not evaluated''"
elseif status == "NR" then
output = "''Not recognized''"
elseif status == "PE" then
output = p.addImage("Status iucn3.1 CR.svg") .. "[[Critically endangered]], possibly extinct" .. p.addCategory("IUCN Red List critically endangered species")
elseif status == "PEW" then
output = p.addImage("Status iucn3.1 CR.svg") .. "[[Critically endangered]], possibly extinct in the wild" .. p.addCategory("IUCN Red List critically endangered species")
else
-- | '''''Invalid status'''''{{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:Invalid conservation status]]|}}
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
-- | '''''Invalid status'''''{{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:Invalid conservation status]]|}}
--}}<small> ({{#if:{{{status_text|}}}|[[{{{status_text|#Conservation status}}}|See text]]|[[IUCN Red List|IUCN 3.1]]}}){{{3|}}}</small></div><!--
-- local thirdParam = "" --mw.text.trim(frame:getParent().args[3] or "")
-- local statusText = frame:getParent().args['status_text']
-- local systemText = " [[IUCN Red List|IUCN 3.1]]"
-- if statusText then
-- systemText = "[[{{{status_text|#Conservation status}}}|See text]]"
-- end
-- output = output .. "<small> (" .. systemText .. thirdParam .. ")</small></div>"
return output
end
-- ********************************* IUCN 2.3 **********************************************
function p.IUCN23(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
local extinct = "[[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status iucn2.3 EX.svg") .. extinct .. p.addCategory("IUCN Red List extinct species")
elseif status == "EW" then
output = p.addImage("Status iucn2.3 EW.svg") .. "[[Extinct in the Wild]]" .. p.addCategory("IUCN Red List extinct in the wild species")
elseif status == "CR" then
output = p.addImage("Status iucn2.3 CR.svg") .. "[[Critically endangered species|Critically Endangered]]" .. p.addCategory("IUCN Red List critically endangered species")
elseif status == "EN" then
output = p.addImage("Status iucn2.3 EN.svg") .. "[[Endangered species (IUCN status)|Endangered]]" .. p.addCategory("IUCN Red List endangered species")
elseif status == "VU" then
output = p.addImage("Status iucn2.3 VU.svg") .. "[[Vulnerable species|Vulnerable]]" .. p.addCategory("IUCN Red List vulnerable species")
elseif status == "LR" then
output = p.addImage("Status iucn2.3 blank.svg") .. "Lower risk" .. p.addCategory("Invalid conservation status")
elseif status == "CD" or status == "LR/CD" then
output = p.addImage("Status iucn2.3 CD.svg") .. "[[Conservation Dependent]]" .. p.addCategory("IUCN Red List conservation dependent species")
elseif status == "NT" or status == "LR/NT" then
output = p.addImage("Status iucn2.3 NT.svg") .. "[[Near Threatened]]" .. p.addCategory("IUCN Red List near threatened species")
elseif status == "LC" or status == "LR/LC" then
output = p.addImage("Status iucn2.3 LC.svg") .. "[[Least Concern]]" .. p.addCategory("IUCN Red List least concern species")
elseif status == "DD" then
output = p.addImage("Status iucn2.3 blank.svg") .. "[[Data Deficient]]" .. p.addCategory("IUCN Red List data deficient species")
elseif status == "NE" then
output = "''Not evaluated''"
elseif status == "NR" then
output = "''Not recognized''"
elseif status == "PE" then
output = p.addImage("Status iucn2.3 CR.svg") .. "[[Critically endangered]], possibly extinct" .. p.addCategory("IUCN Red List critically endangered species")
elseif status == "PEW" then
output = p.addImage("Status iucn2.3 CR.svg") .. "[[Critically endangered]], possibly extinct in the wild" .. p.addCategory("IUCN Red List critically endangered species")
else -- | '''''Invalid status'''''{{#ifeq: {{NAMESPACEE}} | {{ns: 0}} | [[Category:Invalid conservation status]]|}}
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
--******************************************* CNCFlora***************************************
-- Note: this is not needed if using IUCN 3.1 system and criteria; just use that function with no catgories
-- alternatively rename this function as p.UsesIUCN31()
--function p.CNCFlora(frame, system, status)
function p.UsesIUCN31(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
output = p.addImage("Status iucn3.1 EX.svg") .. "[[Extinction|Extinct]]" --.. p.addCategory("IUCN Red List extinct species")
elseif status == "EW" then
output = p.addImage("Status iucn3.1 EW.svg") .. "[[Extinct in the Wild]]" --.. p.addCategory("IUCN Red List extinct in the wild species")
elseif status == "CR" then
output = p.addImage("Status iucn3.1 CR.svg") .. "[[Critically endangered species|Critically Endangered]]" --.. p.addCategory("IUCN Red List critically endangered species")
elseif status == "EN" then
output = p.addImage("Status iucn3.1 EN.svg") .. "[[Endangered species|Endangered]]" --.. p.addCategory("IUCN Red List endangered species")
elseif status == "VU" then
output = p.addImage("Status iucn3.1 VU.svg") .. "[[Vulnerable species|Vulnerable]]" --.. p.addCategory("IUCN Red List vulnerable species")
elseif status == "NT" then
output = p.addImage("Status iucn3.1 NT.svg") .. "[[Near Threatened]]" --.. p.addCategory("IUCN Red List near threatened species")
elseif status == "LC" then
output = p.addImage("Status iucn3.1 LC.svg") .. "[[Least Concern]]" --.. p.addCategory("IUCN Red List least concern species")
elseif status == "DD" then
output = p.addImage("Status iucn3.1 blank.svg") .. "[[Data Deficient]]" --.. p.addCategory("IUCN Red List data deficient species")
elseif status == "NE" then
output = "''Not evaluated''"
elseif status == "NR" then
output = "''Not recognized''"
elseif status == "PE" then
output = p.addImage("Status iucn3.1 CR.svg") .. "[[Critically endangered]], possibly extinct" --.. p.addCategory("IUCN Red List critically endangered species")
elseif status == "PEW" then
output = p.addImage("Status iucn3.1 CR.svg") .. "[[Critically endangered]], possibly extinct in the wild" --.. p.addCategory("IUCN Red List critically endangered species")
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- *************** Natureserve/TNC ********************************
function p.NatureServe(frame, system, status)
local output = system .. ' ' .. status
if status == "GX" then
local extinct = "Presumed [[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status TNC GX.svg") .. extinct .. p.addCategory("NatureServe presumed extinct species")
elseif status == "GH" then
output = p.addImage("Status TNC GH.svg") .. "Possibly [[Extinction|Extinct]]" .. p.addCategory("NatureServe possibly extinct species")
elseif status == "G1" then
output = p.addImage("Status TNC G1.svg") .. "Critically Imperiled" .. p.addCategory("NatureServe critically imperiled species")
elseif status == "G2" then
output = p.addImage("Status TNC G2.svg") .. "Imperiled" .. p.addCategory("NatureServe imperiled species")
elseif status == "G3" then
output = p.addImage("Status TNC G3.svg") .. "Vulnerable" .. p.addCategory("NatureServe vulnerable species")
elseif status == "G4" then
output = p.addImage("Status TNC G4.svg") .. "Apparently Secure" .. p.addCategory("NatureServe apparently secure species")
elseif status == "G5" then
output = p.addImage("Status TNC G5.svg") .. "Secure" .. p.addCategory("NatureServe secure species")
elseif status == "GU" then
output = p.addImage("Status TNC blank.svg") .. "Unrankable"
elseif status == "GNR" then
output = p.addImage("Status TNC blank.svg") .. "Unranked"
elseif status == "TX" then
local extinct = "Presumed [[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status TNC TX.svg") .. extinct .. p.addCategory("NatureServe presumed extinct species")
elseif status == "TH" then
output = p.addImage("Status TNC TH.svg") .. "Possibly [[Extinction|Extinct]]" .. p.addCategory("NatureServe possibly extinct species")
elseif status == "T1" then
output = p.addImage("Status TNC T1.svg") .. "Critically Imperiled" .. p.addCategory("NatureServe critically imperiled species")
elseif status == "T2" then
output = p.addImage("Status TNC T2.svg") .. "Imperiled" .. p.addCategory("NatureServe imperiled species")
elseif status == "T3" then
output = p.addImage("Status TNC T3.svg") .. "Vulnerable" .. p.addCategory("NatureServe vulnerable species")
elseif status == "T4" then
output = p.addImage("Status TNC T4.svg") .. "Apparently Secure" .. p.addCategory("NatureServe apparently secure species")
elseif status == "T5" then
output = p.addImage("Status TNC T5.svg") .. "Secure" .. p.addCategory("NatureServe secure species")
elseif status == "TU" then
output = p.addImage("Status TNC blank.svg") .. "Unrankable"
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- ********* EPBC: Environment Protection and Biodiversity Conservation Act 1999 (Australia) ************
function p.SANBI(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
local extinct = "[[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status SANBI EX.svg") .. extinct --.. p.addCategory("SANBI Red List extinct biota")
elseif status == "EW" then
output = p.addImage("Status SANBI EW.svg") .. "[[Extinct in the Wild]]" --.. p.addCategory("SANBI Red List extinct in the wild biota")
elseif status == "RE" then
output = p.addImage("Status SANBI RE.svg") .. "Regionally Extinct" --.. p.addCategory("SANBI Red List regionally extinct biota")
elseif status == "CR" then
output = p.addImage("Status SANBI CR.svg") .. "[[Critically endangered species|Critically endangered]]" --.. p.addCategory("SANBI Red List critically endangered biota")
elseif status == "EN" then
output = p.addImage("Status SANBI EN.svg") .. "[[Endangered species|Endangered]]" --.. p.addCategory("SANBI Red List endangered biota")
elseif status == "VU" then
output = p.addImage("Status SANBI VU.svg") .. "[[Vulnerable species|Vulnerable]]" --.. p.addCategory("SANBI Red List vulnerable biota")
elseif status == "NT" then
output = p.addImage("Status SANBI NT.svg") .. "[[Near Threatened]]" --.. p.addCategory("SANBI Red List near threatened biota")
elseif status == "LC" then
output = p.addImage("Status SANBI LC.svg") .. "[[Least Concern]]" --.. p.addCategory("SANBI Red List least concern biota")
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
function p.EPBC(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
local extinct = "[[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status EPBC EX.svg") .. extinct .. p.addCategory("EPBC Act extinct biota")
elseif status == "EW" then
output = p.addImage("Status EPBC EW.svg") .. "[[Extinct in the Wild]]" .. p.addCategory("EPBC Act extinct in the wild biota")
elseif status == "CR" then
output = p.addImage("Status EPBC CR.svg") .. "[[Critically endangered species|Critically endangered]]" .. p.addCategory("EPBC Act critically endangered biota")
elseif status == "EN" then
output = p.addImage("Status EPBC EN.svg") .. "[[Endangered species|Endangered]]" .. p.addCategory("EPBC Act endangered biota")
elseif status == "VU" then
output = p.addImage("Status EPBC VU.svg") .. "[[Vulnerable species|Vulnerable]]" .. p.addCategory("EPBC Act vulnerable biota")
elseif status == "CD" then
output = p.addImage("Status EPBC CD.svg") .. "[[Conservation Dependent]]" .. p.addCategory("EPBC Act conservation dependent biota")
elseif status == "DL" or status == "DELISTED" then
output = p.addImage("Status EPBC DL.svg") .. "Delisted"
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- *************** ESA ********************************
function p.ESA(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
local extinct = "[[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status ESA EX.svg") .. extinct
elseif status == "LE" or status == "E" then
output = p.addImage("Status ESA LE.svg") .. "[[Endangered species|Endangered]]" .. p.addCategory("ESA endangered species")
elseif status == "LT" or status == "T" then
output = p.addImage("Status ESA EX.svg") .. "[[Threatened species|Threatened]]" .. p.addCategory("ESA threatened species")
elseif status == "DL" or status == "DELISTED" then
output = p.addImage("Status ESA DL.svg") .. "Delisted"
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- ********** COSEWIC: Committee on the Status of Endangered Wildlife in Canada **************
function p.COSEWIC(frame, system, status)
local output = system .. ' ' .. status
if status == "X" then
local extinct = "[[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status COSEWIC X.svg") .. extinct
elseif status == "XT" then
output = p.addImage("Status COSEWIC XT.svg") .. "Extirpated (Canada)"
elseif status == "E" then
output = p.addImage("Status COSEWIC E.svg") .. "[[Endangered species|Endangered]]"
elseif status == "T" then
output = p.addImage("Status COSEWIC T.svg") .. "[[Threatened species|Threatened]]"
elseif status == "SC" then
output = p.addImage("Status COSEWIC SC.svg") .. "Special Concern"
elseif status == "DD" then
output = p.addImage("Status_COSEWIC_blank.svg") .. "Data Deficient"
elseif status == "NAR" then
output = p.addImage("Status COSEWIC NAR.svg") .. "[[Least Concern|Not at risk]]"
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- *************** DECF ********************************
function p.DECF(frame, system, status)
local output = system .. ' ' .. status
if status == "X" then
local extinct = "Declared Rare — Presumed [[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status DECF X.svg") .. extinct
elseif status == "R" then
output = p.addImage("Status DECF R.svg") .. "Declared [[Rare species|rare]]"
elseif status == "P1" then
output = p.addImage("Status DECF P1.svg") .. "Priority One — Poorly Known Taxa"
elseif status == "P2" then
output = p.addImage("Status DECF P2.svg") .. "Priority Two — Poorly Known Taxa"
elseif status == "P3" then
output = p.addImage("Status DECF P3.svg") .. "Priority Three — Poorly Known Taxa"
elseif status == "P4" then
output = p.addImage("Status DECF P4.svg") .. "Priority Four — Rare Taxa"
elseif status == "DL" or status == "DELISTED" then
output = p.addImage("Status DECF DL.svg") .. "Delisted"
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- *************** QLDNCA (Queensland Nature Conservation Act ********************************
-- https://www.data.qld.gov.au/dataset/conservation-status-of-queensland-wildlife/resource/d20c485d-b5dc-4c07-8304-df6a21783d4b
function p.QLDNCA(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
output = "[[Extinct]]" .. p.addCategory("Nature Conservation Act extinct biota")
elseif status == "EW" or status == "PE" then -- PE is the code used but keep EW for compatibility
output = "[[Extinct in the Wild]]" .. p.addCategory("Nature Conservation Act extinct in the wild biota")
elseif status == "CR" then
output = "[[Critically endangered species|Critically Endangered]]" .. p.addCategory("Nature Conservation Act critically endangered biota")
elseif status == "EN" or status == "E" then
output = "[[Endangered species|Endangered]]" .. p.addCategory("Nature Conservation Act endangered biota")
elseif status == "VU" or status == "V" then
output = "[[Vulnerable species|Vulnerable]] " .. p.addCategory("Nature Conservation Act vulnerable biota")
elseif status == "R" then
output = "Rare" .. p.addCategory("Nature Conservation Act rare biota")
elseif status == "NT" then
output = "[[Near Threatened]]" .. p.addCategory("Nature Conservation Act near threatened biota")
elseif status == "SL" then
output = "[[Special Least Concern]]" .. p.addCategory("Nature Conservation Act special least concern biota")
elseif status == "LC" or status == "C" then
output = "[[Least Concern]]" .. p.addCategory("Nature Conservation Act least concern biota")
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- *************** NSWBCA ********************************
function p.NSWBCA(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
output = "[[Extinct]]"
elseif status == "EW" then
output = "[[Extinct in the Wild]]"
elseif status == "CR" then
output = "[[Critically endangered species|Critically Endangered]]"
elseif status == "EN" then
output = "[[Endangered species|Endangered]]"
elseif status == "VU" then
output = "[[Vulnerable species|Vulnerable]] "
-- elseif status == "R" then
-- output = "Rare"
-- elseif status == "NT" then
-- output = "[[Near Threatened]]"
elseif status == "LC" then
output = "[[Least Concern]]"
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- *************** CITES ********************************
function p.CITES(frame, system, status)
local output = system .. ' ' .. status
if status == "CITES_A1" then
output = "[[CITES]] Appendix I"
elseif status == "CITES_A2" then
output = "[[CITES]] Appendix II"
elseif status == "CITES_A3" then
output = "[[CITES]] Appendix III"
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- *************** NZTCS ********************************
function p.NZTCS(frame, system, status)
local output = system .. ' ' .. status
if status == "EX" then
local extinct = "Declared Rare — Presumed [[Extinction|Extinct]]"
if frame:getParent().args['extinct'] then extinct = " (" .. frame:getParent().args['extinct'] .. ")" end
output = p.addImage("Status NZTCS EX.svg") .. extinct
-- Threatened categories (NC,NE,NV)
elseif status == "NC" then
output = p.addImage("Status NZTCS NC.svg") .. "Nationally Critical"
elseif status == "NE" then
output = p.addImage("Status NZTCS NE.svg") .. "Nationally endangered"
elseif status == "NV" then
output = p.addImage("Status NZTCS NV.svg") .. "Nationally vulnerable"
-- Chronically Threatened and At Risk categories (version 2002): SD,GD,SP,RR
elseif status == "SD" then
output = p.addImage("Status NZTCS SD.svg") .. "Serious Decline"
elseif status == "GD" then
output = p.addImage("Status NZTCS GD.svg") .. "Gradual Decline"
elseif status == "SP" then
output = p.addImage("Status NZTCS SP.svg") .. "Sparse"
elseif status == "RR" then
output = p.addImage("Status NZTCS RR.svg") .. "Range Restricted"
-- At Risk categories (2008 version):
elseif status == "D" or status == "d" then
output = p.addImage("Status NZTCS D.svg") .. "Declining"
elseif status == "R" or status == "r" then
output = p.addImage("Status NZTCS R.svg") .. "Recovering"
elseif status == "REL" or status == "Rel" or status == "rel" then
output = p.addImage("Status NZTCS REL.svg") .. "Relict"
elseif status == "NU" or status == "nu" then
output = p.addImage("Status NZTCS NU.svg") .. "Naturally Uncommon"
-- otherwise invalid conservation status
else
output = "'''''Invalid status'''''" .. p.addCategory("Invalid conservation status")
end
return output
end
-- *************** functions for image and category output ********
function p.addImage(file)
if file ~= "" then
return "[[File:" .. file .. "|frameless|link=|alt=|class=skin-invert-image]]<br />"
end
return ""
end
function p.addCategory(category)
local ns = mw.title.getCurrentTitle().namespace
-- ns = 0 -- to test category put on page
if category ~= "" and ns == 0 then
return "[[Category:" .. category .. "]]"
end
return ""
end
return p