diff --git a/lua/wikis/commons/Widget/Tournament/Label.lua b/lua/wikis/commons/Widget/Tournament/Label.lua index bfdc72b8c56..6c372641f29 100644 --- a/lua/wikis/commons/Widget/Tournament/Label.lua +++ b/lua/wikis/commons/Widget/Tournament/Label.lua @@ -46,11 +46,9 @@ function TournamentsTickerLabelWidget:render() css = { ['padding-left'] = self.props.displayGameIcon and '50px' or '25px', }, - children = { - Title{ - tournament = tournament, - displayGameIcon = self.props.displayGameIcon - } + children = Title{ + tournament = tournament, + displayGameIcon = self.props.displayGameIcon }, }, HtmlWidgets.Small{ diff --git a/lua/wikis/commons/Widget/Tournament/TierPill.lua b/lua/wikis/commons/Widget/Tournament/TierPill.lua index d8f410864fb..fe7c3b56829 100644 --- a/lua/wikis/commons/Widget/Tournament/TierPill.lua +++ b/lua/wikis/commons/Widget/Tournament/TierPill.lua @@ -15,7 +15,6 @@ local HtmlWidgets = Lua.import('Module:Widget/Html/All') ---@class TournamentsTickerPillWidget: Widget ---@operator call(table): TournamentsTickerPillWidget - local TournamentsTickerPillWidget = Class.new(Widget) local COLOR_CLASSES = { diff --git a/lua/wikis/commons/Widget/Tournament/Title.lua b/lua/wikis/commons/Widget/Tournament/Title.lua index 22d2978367c..7ada66e830b 100644 --- a/lua/wikis/commons/Widget/Tournament/Title.lua +++ b/lua/wikis/commons/Widget/Tournament/Title.lua @@ -25,14 +25,14 @@ local Link = Lua.import('Module:Widget/Basic/Link') ---@field props TournamentTitleProps local TournamentTitleWidget = Class.new(Widget) ----@return Widget? +---@return Widget[]? function TournamentTitleWidget:render() local tournament = self.props.tournament if not tournament then return end - return HtmlWidgets.Fragment{children = WidgetUtil.collect( + return WidgetUtil.collect( self.props.displayGameIcon and Game.icon{ game = tournament.game, noLink = true, @@ -62,7 +62,7 @@ function TournamentTitleWidget:render() }, } } - )} + ) end return TournamentTitleWidget diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker.lua b/lua/wikis/commons/Widget/Tournaments/Ticker.lua index 4e7909521b8..a1c22dc7a8e 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker.lua @@ -23,7 +23,6 @@ local Tournament = Lua.import('Module:Tournament') ---@class TournamentsTickerWidget: Widget ---@operator call(table): TournamentsTickerWidget - local TournamentsTickerWidget = Class.new(Widget) TournamentsTickerWidget.defaultProps = { upcomingDays = 5, @@ -50,6 +49,9 @@ function TournamentsTickerWidget:render() } local currentTimestamp = DateExt.getCurrentTimestamp() + + ---@param tournament StandardTournament + ---@return boolean local function isWithinDateRange(tournament) local modifiedThreshold = tierThresholdModifiers[tournament.liquipediaTier] or 0 local modifiedCompletedThreshold = tierTypeThresholdModifiers[tournament.liquipediaTierType] or modifiedThreshold @@ -71,17 +73,17 @@ function TournamentsTickerWidget:render() return false end - local lpdbFilter = Condition.Tree(Condition.BooleanOperator.all) - :add(Condition.Tree(Condition.BooleanOperator.any) - :add(Condition.Node(Condition.ColumnName('status'), Condition.Comparator.eq, '')) - :add(Condition.Node(Condition.ColumnName('status'), Condition.Comparator.eq, 'finished')) - ) - :add(Condition.Node(Condition.ColumnName('liquipediatiertype'), Condition.Comparator.eq, '!Points')) + local lpdbFilter = Condition.Tree(Condition.BooleanOperator.all):add{ + Condition.Util.anyOf(Condition.ColumnName('status'), {'', 'finished'}), + Condition.Node(Condition.ColumnName('liquipediatiertype'), Condition.Comparator.neq, 'Points') + } local allTournaments = Tournament.getAllTournaments(lpdbFilter, function(tournament) return isWithinDateRange(tournament) end) + ---@param phase TournamentPhase + ---@return fun(tournament: StandardTournament): boolean local function filterByPhase(phase) return function(tournament) return tournament.phase == phase @@ -91,7 +93,8 @@ function TournamentsTickerWidget:render() ---@param a StandardTournament ---@param b StandardTournament ---@param dateProperty 'endDate' | 'startDate' - ---@param operator fun(a: StandardTournament, b: StandardTournament): boolean + ---@param operator fun(a: integer, b: integer): boolean + ---@return boolean? local function sortByDateProperty(a, b, dateProperty, operator) if not a[dateProperty] and not b[dateProperty] then return nil @@ -108,6 +111,9 @@ function TournamentsTickerWidget:render() return nil end + ---@param a StandardTournament + ---@param b StandardTournament + ---@return boolean local function sortByDate(a, b) local endDateSort = sortByDateProperty(a, b, 'endDate', Operator.gt) if endDateSort ~= nil then @@ -120,6 +126,9 @@ function TournamentsTickerWidget:render() return a.pageName < b.pageName end + ---@param a StandardTournament + ---@param b StandardTournament + ---@return boolean local function sortByDateUpcoming(a, b) local endDateSort = sortByDateProperty(a, b, 'startDate', Operator.gt) if endDateSort ~= nil then diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua b/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua index 4d00ed8547a..d13d1bcd0df 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua @@ -15,9 +15,14 @@ local HtmlWidgets = Lua.import('Module:Widget/Html/All') local TournamentLabel = Lua.import('Module:Widget/Tournament/Label') local FilterConfig = Lua.import('Module:FilterButtons/Config') ----@class TournamentsTickerSublistWidget: Widget ----@operator call(table): TournamentsTickerSublistWidget +---@class TournamentsTickerSublistWidgetProps +---@field title string +---@field tournaments StandardTournament[] +---@field displayGameIcons boolean +---@class TournamentsTickerSublistWidget: Widget +---@operator call(TournamentsTickerSublistWidgetProps): TournamentsTickerSublistWidget +---@field props TournamentsTickerSublistWidgetProps local TournamentsTickerSublistWidget = Class.new(Widget) ---@return Widget? @@ -26,6 +31,9 @@ function TournamentsTickerSublistWidget:render() return end + ---@param tournament StandardTournament + ---@param child Widget + ---@return Widget local createFilterWrapper = function(tournament, child) return Array.reduce(FilterConfig.categories, function(prev, filterCategory) local itemIsValid = filterCategory.itemIsValid or function(item) return true end