mNo edit summary
mNo edit summary
 
(15 intermediate revisions by the same user not shown)
Line 6: Line 6:
     { "", "", "Hero of the Federation", "", "" },
     { "", "", "Hero of the Federation", "", "" },
     { "M.I. Bronze Star", "M.I. Cross", "Medal of Valour", "Legion of Merit", "M.I. Silver Star" },
     { "M.I. Bronze Star", "M.I. Cross", "Medal of Valour", "Legion of Merit", "M.I. Silver Star" },
    { "Corporal", "Sergeant", "Commanding Officer", "Marauder", "Pathfinder" },
    { "MIPOD", "Medic", "Trooper", "Engineer", "Aviator" },
     { "Superior Command Commendation", "Distinguished Service Commendation", "Veterans Commendation", "Prisoner of War Commendation", "Emergency First Aid Commendation" },
     { "Superior Command Commendation", "Distinguished Service Commendation", "Veterans Commendation", "Prisoner of War Commendation", "Emergency First Aid Commendation" },
     { "Professional Development Commendation", "Meritorious Service Commendation", "Good Conduct Commendation", "Humanitarian Aid Commendation", "M.I. Reconnaissance Commendation" },
     { "Professional Development Commendation", "Meritorious Service Commendation", "Good Conduct Commendation", "Humanitarian Aid Commendation", "M.I. Reconnaissance Commendation" },
     { "Combat Commendation", "PsyOps Accomplishment Commendation", "Medical Accomplishment Commendation", "Engineering Accomplishment Commendation", "Purple Heart" },
     { "Combat Commendation", "PsyOps Accomplishment Commendation", "Medical Accomplishment Commendation", "Engineering Accomplishment Commendation", "Purple Heart" },
     { "", "", "Veteran's Ribbon", "", "" }
     { "", "", "Veteran's Ribbon", "", "" },
}
     { "Operation Big K Pin", "", "", "", "" }
 
local imgTable =
{
    ["Hero of the Federation"] = "HOTF.png",
     ["M.I. Bronze Star"] = "BRONZESTAR.png",
    ["M.I. Cross"] = "MICROSS.png",
    ["Medal of Valour"] = "VALOR.png",
    ["Legion of Merit"] = "LEGIONOFMERIT.png",
    ["M.I. Silver Star"] = "SILVERSTAR.png",
    ["Superior Command Commendation"] = "SUPERIORCOMMAND.png",
    ["Distinguished Service Commendation"] = "DISTINGUISHEDSERVICE.png",
    ["Veterans Commendation"] = "VETERANSCOMMENDATION.png",
    ["Prisoner of War Commendation"] = "POW.png",
    ["M.I. Reconnaissance Commendation"] = "RECON.png",
    ["Emergency First Aid Commendation"] = "FIRSTAID.png",
    ["Professional Development Commendation"] = "PROFESSIONALDEVELOPMENT.png",
    ["Meritorious Service Commendation"] = "MERITORIOUSSERVICE.png",
    ["Good Conduct Commendation"] = "GOODCONDUCT.png",
    ["Humanitarian Aid Commendation"] = "HUMAID.png",
    ["M.I. Reconnaissance Commendation"] = "RECON.png",
    ["Combat Commendation"] = "COMBATCOMMEND.png",
    ["PsyOps Accomplishment Commendation"] = "PSYOPSACCOMPLISHMENT.png",
    ["Medical Accomplishment Commendation"] = "MEDICALACCOMPLISHMENT.png",
    ["Engineering Accomplishment Commendation"] = "ENGINEERINGACCOMPLISHMENT.png",
    ["PsyOps Accomplishment Commendation"] = "PSYOPSACCOMPLISHMENT.png",
    ["Purple Heart"] = "PURPLEHEART.png",
    ["Veteran's Ribbon"] = "VETERANRIBBON.png"
}
}


Line 47: Line 22:
     local args = {
     local args = {
         groupBy = 'Commendation',
         groupBy = 'Commendation',
         where = 'pageName = ' .. frame.args[1] ' AND Approved = true'
         where = 'Recipient = "' .. frame.args[1] .. '" AND Approved = true'
     }
     }


Line 72: Line 47:
             if v ~= "" then
             if v ~= "" then
                 table.insert(t,  
                 table.insert(t,  
                                 frame:expandTemplate({title = "Commendation", args = { v, imgTable[v] or "", (g or 0) } })
                                 frame:expandTemplate({title = "Commendation", args = { v, v .. ".png", (g or 0) } })
                 )
                 )
             end
             end

Latest revision as of 23:24, 17 November 2022

Documentation for this module may be created at Module:Commendations/doc

local p = {}
local cargo = mw.ext.cargo

local x = 
{
    { "", "", "Hero of the Federation", "", "" },
    { "M.I. Bronze Star", "M.I. Cross", "Medal of Valour", "Legion of Merit", "M.I. Silver Star" },
    { "Corporal", "Sergeant", "Commanding Officer", "Marauder", "Pathfinder" },
    { "MIPOD", "Medic", "Trooper", "Engineer", "Aviator" },
    { "Superior Command Commendation", "Distinguished Service Commendation", "Veterans Commendation", "Prisoner of War Commendation", "Emergency First Aid Commendation" },
    { "Professional Development Commendation", "Meritorious Service Commendation", "Good Conduct Commendation", "Humanitarian Aid Commendation", "M.I. Reconnaissance Commendation" },
    { "Combat Commendation", "PsyOps Accomplishment Commendation", "Medical Accomplishment Commendation", "Engineering Accomplishment Commendation", "Purple Heart" },
    { "", "", "Veteran's Ribbon", "", "" },
    { "Operation Big K Pin", "", "", "", "" }
}

function p.Main( frame )
    local t = {}
    local tables = 'Commendations'
    local fields = 'Commendation, COUNT(*)'

    local args = {
        groupBy = 'Commendation',
        where = 'Recipient = "' .. frame.args[1] .. '" AND Approved = true'
    }

    local results = cargo.query( tables, fields, args )
    local groups = {}
    
    for r = 1, #results do
        local r = results[r]
        groups[r.Commendation] = r["COUNT(*)"]
    end
    
    table.insert(t, "<table class='citations-table'>")
    for k, r in pairs(x) do

        if k == 1 then
            table.insert(t, "<tr class='first'>")
        else
            table.insert(t, "<tr>")
        end

        for k2, v in pairs(r) do
            local g = groups[v]
            table.insert(t, "<td>")
            if v ~= "" then
                table.insert(t, 
                                frame:expandTemplate({title = "Commendation", args = { v, v .. ".png", (g or 0) } })
                )
            end
            table.insert(t, "</td>")
        end
        table.insert(t, "</tr>")
    end
    table.insert(t, "</table>")
    return table.concat(t, '')
end

return p


Categories: