diff --git a/internal/handlers/season_detail.go b/internal/handlers/season_detail.go index 541754f..963bcf7 100644 --- a/internal/handlers/season_detail.go +++ b/internal/handlers/season_detail.go @@ -2,6 +2,7 @@ package handlers import ( "context" + "fmt" "net/http" "git.haelnorr.com/h/golib/hws" @@ -41,6 +42,9 @@ func SeasonPage( }); !ok { return } + if season.Type == db.SeasonTypeDraft.String() { + http.Redirect(w, r, fmt.Sprintf("/seasons/%s/leagues/%s", season.ShortName, "Draft"), http.StatusTemporaryRedirect) + } renderSafely(seasonsview.DetailPage(season, leaguesWithTeams), s, r, w) }) } diff --git a/internal/view/seasonsview/season_league_layout.templ b/internal/view/seasonsview/season_league_layout.templ index 7fb6b96..069e412 100644 --- a/internal/view/seasonsview/season_league_layout.templ +++ b/internal/view/seasonsview/season_league_layout.templ @@ -3,33 +3,63 @@ package seasonsview import "git.haelnorr.com/h/oslstats/internal/view/baseview" import "git.haelnorr.com/h/oslstats/internal/db" import "fmt" +import "git.haelnorr.com/h/oslstats/internal/contexts" +import "git.haelnorr.com/h/oslstats/internal/permissions" templ SeasonLeagueLayout(activeSection string, season *db.Season, league *db.League) { + {{ + permCache := contexts.Permissions(ctx) + canEditSeason := permCache.HasPermission(permissions.SeasonsUpdate) + isDraftSeason := season.Type == db.SeasonTypeDraft.String() + }} @baseview.Layout(fmt.Sprintf("%s - %s", season.Name, league.Name)) {
-
-
-

{ season.Name } - { league.Name }

- { season.ShortName } +
+
+ if isDraftSeason { +

{ season.Name }

+ } else { +

{ season.Name } - { league.Name }

+ } + { season.ShortName } +
+
+ @SeasonTypeBadge(season.Type) + @SlapVersionBadge(season.SlapVersion) + @StatusBadge(season, false, false) +
-
- @SeasonTypeBadge(season.Type) - @SlapVersionBadge(season.SlapVersion) - @StatusBadge(season, false, false) -
-
- + Edit + + } + - Back to Season - + > + Back to Seasons + + } else { + + Back to Season + + }