Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions lua/wikis/trackmania/TournamentsListing/CardList/Custom.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
-- @Liquipedia
-- page=Module:TournamentsListing/CardList/Custom
--
-- Please see https://github.com/Liquipedia/Lua-Modules to contribute
--

local Lua = require('Module:Lua')

local Arguments = Lua.import('Module:Arguments')
local Array = Lua.import('Module:Array')
local Class = Lua.import('Module:Class')
local Logic = Lua.import('Module:Logic')

local Condition = Lua.import('Module:Condition')
local ConditionTree = Condition.Tree
local ConditionNode = Condition.Node
local Comparator = Condition.Comparator
local BooleanOperator = Condition.BooleanOperator
local ColumnName = Condition.ColumnName
local ConditionUtil = Condition.Util

local ListingConditions = Lua.import('Module:TournamentsListing/Conditions')
local TournamentsListing = Lua.import('Module:TournamentsListing/CardList')

local CustomTournamentsListing = Class.new(TournamentsListing)

---@protected
---@return string
function CustomTournamentsListing:buildConditions()

local conditions = ListingConditions.base(self.args)

if Logic.isNotEmpty(self.args.circuit) then
conditions:add(
ConditionTree(BooleanOperator.all):add{
ConditionNode(ColumnName('circuit', 'extradata'), Comparator.eq, self.args.circuit),
ConditionUtil.anyOf(
ColumnName('circuittier', 'extradata'), Array.parseCommaSeparatedString(self.args.circuittier)
)
}
)
end

if self.args.additionalConditions then
return tostring(conditions) .. self.args.additionalConditions
end

return tostring(conditions)
end

---@param frame Frame
---@return Html|Widget?
function CustomTournamentsListing.run(frame)
local args = Arguments.getArgs(frame)

if Logic.readBool(args.byYear) then
return CustomTournamentsListing.byYear(args)
end

return CustomTournamentsListing(args):create():build()
end

return CustomTournamentsListing
Loading