This section is empty.


This section is empty.


This section is empty.


type ContestCtx

type ContestCtx struct {

	Contest  *models.Contest
	Problems []*models.Problem

ContestCtx implements a context that is common to all Contest UI page.

type ContestsCtx

type ContestsCtx struct {

	ActiveContests []*models.Contest
	PastContests   []*models.Contest

ContestsCtx is a context for rendering a list of all contests

type Group

type Group struct {

	// contains filtered or unexported fields


Group is the /contests handling group

func New

func New(db *db.DB, g *echo.Group) (*Group, error)

New creates a new group

func (*Group) ConestsGetNearestOngoingContest

func (g *Group) ConestsGetNearestOngoingContest(c echo.Context) error

Render the nearest ongoing contest or a table of all contests

func (*Group) ContestsGet

func (g *Group) ContestsGet(c echo.Context) error

Render a table of all contests

func (*Group) FileGet

func (g *Group) FileGet(c echo.Context) error

FileGet implements GET /contest/:id/problems/:problem/files/:file

func (*Group) OverviewGet

func (g *Group) OverviewGet(c echo.Context) error

OverviewGet implements GET "/contests/:id"

func (*Group) ProblemGet

func (g *Group) ProblemGet(c echo.Context) error

ProblemGet implements GET /contest/:id/problems/:problem

func (*Group) ScoreboardCSVGet

func (g *Group) ScoreboardCSVGet(c echo.Context) error

ScoreboardCSVGet implements GET /contests/:id/scoreboard/csv

func (*Group) ScoreboardGet

func (g *Group) ScoreboardGet(c echo.Context) error

ScoreboardGet implements GET /contest/:id/scoreboard

func (*Group) ScoreboardJSONGet

func (g *Group) ScoreboardJSONGet(c echo.Context) error

ScoreboardJSONGet implements GET /contest/:id/scoreboard/json

func (*Group) SubmissionDownload

func (g *Group) SubmissionDownload(c echo.Context) error

SubmissionDownload implements GET /contests/:id/submissions/:submission/download

func (*Group) SubmissionGet

func (g *Group) SubmissionGet(c echo.Context) error

SubmissionGet implements GET /contests/:id/submissions/:submission

func (*Group) SubmissionVerdictGet

func (g *Group) SubmissionVerdictGet(c echo.Context) error

SubmissionVerdictGet implements GET /contests/:id/submissions/:submission/verdict

func (*Group) SubmitPost

func (g *Group) SubmitPost(c echo.Context) error

SubmitPost implements POST /contest/:id/problems/:problem/submit.

type OverviewCtx

type OverviewCtx struct {

	Problems []*models.ProblemWithTestGroups
	Scores   map[int]*models.ProblemResult

OverviewCtx is the context for rendering "/contests/:id"

func (*OverviewCtx) Render

func (o *OverviewCtx) Render(c echo.Context) error

Render renders the template corresponding to the context.

type ProblemCtx

type ProblemCtx struct {

	Problem     *models.Problem
	Files       map[string]*models.File
	Submissions []*models.Submission

ProblemCtx is the context required to display a problem page.

func (*ProblemCtx) Render

func (p *ProblemCtx) Render(c echo.Context) error

Render renders the context.

type ScoreboardCtx

type ScoreboardCtx struct {

ScoreboardCtx is the context required to display the scoreboard page

func (s *ScoreboardCtx) JSONLink() string

JSONLink returns the link to the JSON scoreboard.

func (*ScoreboardCtx) Render

func (s *ScoreboardCtx) Render(c echo.Context, wide bool) error

Render renders the scoreboard context

func (*ScoreboardCtx) RenderJSON

func (s *ScoreboardCtx) RenderJSON(c echo.Context) error

RenderJSON renders a scoreboard in JSON.

func (*ScoreboardCtx) Show

func (s *ScoreboardCtx) Show() error

Show decides whether the scoreboard can be shown.

type SubmissionCtx

type SubmissionCtx struct {

	Submission  *models.Submission
	Problem     *models.Problem
	TestGroups  []*models.TestGroupWithTests
	TestResults map[int]*models.TestResult

SubmissionCtx is the context for rendering the submission page.

func (*SubmissionCtx) Render

func (ctx *SubmissionCtx) Render(c echo.Context) error

Render renders the context.