From 2b817538857748aab0fa61114f11603918be5282 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 12 Nov 2019 16:36:55 -0600 Subject: [PATCH] Tabs to spaces; small fixes --- .gitignore | 5 +- codebox/app/app.moon | 6 +- codebox/controllers/problem/submit.moon | 14 +- codebox/migrations.moon | 206 ++++++++++++------------ codebox/services/scoring.moon | 8 +- codebox/views/ssr/leaderboard.moon | 28 ++-- docker-compose.yaml | 4 +- executer/app/executer.coffee | 1 - 8 files changed, 136 insertions(+), 136 deletions(-) diff --git a/.gitignore b/.gitignore index fa6efdd..bb2a76d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ config.env .tup/ .vscode/ -data/ \ No newline at end of file +data/ + +# ignore projector (my custom project manager) configuration files +.projector.yml \ No newline at end of file diff --git a/codebox/app/app.moon b/codebox/app/app.moon index 53328af..b604240 100644 --- a/codebox/app/app.moon +++ b/codebox/app/app.moon @@ -40,8 +40,8 @@ class extends lapis.Application ['join_competition': '/join']: controller "account.join_competition" - ['leaderboard': '/leaderboard']: controller "leaderboard.view" - ['leaderboard.update': '/leaderboard/update']: controller "leaderboard.update" + ['leaderboard': '/leaderboard']: controller "leaderboard.view" + ['leaderboard.update': '/leaderboard/update']: controller "leaderboard.update" ['problem': '/problems']: controller "problem.problem" ['problem.description': '/problems/:problem_name']: controller "problem.problem" @@ -83,6 +83,6 @@ class extends lapis.Application ['admin.competition.activate': "/admin/competitions/activate/:competition_id"]: controller "admin.competition.activate" ['admin.competition.remove_user': "/admin/competitions/remove_user"]: controller "admin.competition.remove_user" - ['admin.utils.score': "/admin/score"]: controller "admin.utils.score" + ['admin.utils.score': "/admin/score"]: controller "admin.utils.score" "/console": console.make! diff --git a/codebox/controllers/problem/submit.moon b/codebox/controllers/problem/submit.moon index 12e76b0..ae47295 100644 --- a/codebox/controllers/problem/submit.moon +++ b/codebox/controllers/problem/submit.moon @@ -5,10 +5,10 @@ import capture_errors, capture_errors_json, yield_error from require 'lapis.appl import Competitions, Problems from require 'models' make_controller - inject: + inject: executer: 'executer' - middleware: { 'logged_in', 'joined_competition', 'during_competition' } + middleware: { 'logged_in', 'joined_competition', 'during_competition' } scripts: { 'vendor/ace/ace', 'problem_submit' } get: capture_errors_json => @@ -16,11 +16,11 @@ make_controller { "problem_name", exists: true } } - @navbar.selected = 1 + @navbar.selected = 1 @problem = Problems\find short_name: @params.problem_name - render: 'problem.submit' + render: 'problem.submit' post: capture_errors_json => assert_valid @params, { @@ -33,9 +33,9 @@ make_controller unless problem return json: { status: 'problem not found' } - blacklisted = string.split problem.blacklisted_langs, ',' - if table.contains blacklisted, @params.lang - return json: { status: 'Language is blacklisted for this problem' } + blacklisted = string.split problem.blacklisted_langs, ',' + if table.contains blacklisted, @params.lang + return json: { status: 'Language is blacklisted for this problem' } test_cases = problem\get_test_cases! diff --git a/codebox/migrations.moon b/codebox/migrations.moon index 3c745ec..6fac11e 100644 --- a/codebox/migrations.moon +++ b/codebox/migrations.moon @@ -2,101 +2,101 @@ import create_table, add_column, types from require "lapis.db.schema" import insert, query from require "lapis.db" { - [1]: => - create_table "users", { - { "id", types.serial }, - { "username", types.varchar }, - { "password_hash", types.varchar }, - { "nickname", types.varchar }, - { "email", types.varchar }, - - "PRIMARY KEY (id)" - } - - [2]: => - create_table "jobs", { - { "id", types.serial }, - { "job_id", types.varchar unique: true }, - { "user_id", types.foreign_key }, - { "problem_id", types.foreign_key }, - { "competition_id", types.foreign_key }, - { "status", types.enum }, - { "lang", types.varchar }, - { "code", types.text null: true }, - { "time_initiated", types.integer }, - { "data", types.text null: true }, - - "PRIMARY KEY (id)" - } - - [3]: => - create_table "problems", { - { "id", types.serial }, - { "short_name", types.varchar unique: true }, - { "name", types.varchar }, - { "kind", types.enum }, - { "description", types.text null: true }, - { "time_limit", types.integer }, - - "PRIMARY KEY (id)" - } - - [4]: => - create_table "test_cases", { - { "id", types.serial }, - { "uuid", types.varchar unique: true }, - { "problem_id", types.foreign_key }, - { "testcase_order", types.integer, default: 1 } - { "input", types.text }, - { "output", types.text }, - - "PRIMARY KEY (id)" - } - - [5]: => - insert "users", { - username: "admin" - password_hash: "$2b$10$uZasTmdngnbGO4ogkvY9b.S7bn.YxLJseCc3MufyX7S0wr5UpgNxy" - nickname: "admin" - email: "admin@admin.org" - } - - [6]: => - create_table "competitions", { - { "id", types.serial } - { "start", types.time null: true } - { "end", types.time null: true } - { "name", types.varchar } - { "active", types.boolean } - } - - [7]: => - create_table "competition_problems", { - { "id", types.serial } - { "competition_id", types.foreign_key } - { "problem_id", types.foreign_key } - { "letter", types.varchar } - } - - [8]: => - create_table "leaderboard_placements", { - { "id", types.serial } - { "competition_id", types.foreign_key } - { "user_id", types.foreign_key } - { "place", types.integer default: 1 } - { "score", types.integer default: 0 } - } - - [9]: => - create_table "leaderboard_problems", { - { "id", types.serial } - { "leaderboard_placement_id", types.foreign_key } - { "user_id", types.foreign_key } - { "problem_id", types.foreign_key } - { "points", types.integer default: 0 } - { "attempts", types.integer default: 0 } - { "status", types.enum default: 1 } - } + [1]: => + create_table "users", { + { "id", types.serial }, + { "username", types.varchar }, + { "password_hash", types.varchar }, + { "nickname", types.varchar }, + { "email", types.varchar }, + + "PRIMARY KEY (id)" + } + + [2]: => + create_table "jobs", { + { "id", types.serial }, + { "job_id", types.varchar unique: true }, + { "user_id", types.foreign_key }, + { "problem_id", types.foreign_key }, + { "competition_id", types.foreign_key }, + { "status", types.enum }, + { "lang", types.varchar }, + { "code", types.text null: true }, + { "time_initiated", types.integer }, + { "data", types.text null: true }, + + "PRIMARY KEY (id)" + } + + [3]: => + create_table "problems", { + { "id", types.serial }, + { "short_name", types.varchar unique: true }, + { "name", types.varchar }, + { "kind", types.enum }, + { "description", types.text null: true }, + { "time_limit", types.integer }, + + "PRIMARY KEY (id)" + } + + [4]: => + create_table "test_cases", { + { "id", types.serial }, + { "uuid", types.varchar unique: true }, + { "problem_id", types.foreign_key }, + { "testcase_order", types.integer, default: 1 } + { "input", types.text }, + { "output", types.text }, + + "PRIMARY KEY (id)" + } + + [5]: => + insert "users", { + username: "admin" + password_hash: "$2b$10$uZasTmdngnbGO4ogkvY9b.S7bn.YxLJseCc3MufyX7S0wr5UpgNxy" + nickname: "admin" + email: "admin@admin.org" + } + + [6]: => + create_table "competitions", { + { "id", types.serial } + { "start", types.time null: true } + { "end", types.time null: true } + { "name", types.varchar } + { "active", types.boolean } + } + + [7]: => + create_table "competition_problems", { + { "id", types.serial } + { "competition_id", types.foreign_key } + { "problem_id", types.foreign_key } + { "letter", types.varchar } + } + + [8]: => + create_table "leaderboard_placements", { + { "id", types.serial } + { "competition_id", types.foreign_key } + { "user_id", types.foreign_key } + { "place", types.integer default: 1 } + { "score", types.integer default: 0 } + } + + [9]: => + create_table "leaderboard_problems", { + { "id", types.serial } + { "leaderboard_placement_id", types.foreign_key } + { "user_id", types.foreign_key } + { "problem_id", types.foreign_key } + { "points", types.integer default: 0 } + { "attempts", types.integer default: 0 } + { "status", types.enum default: 1 } + } [10]: => add_column "competitions", "programming_points", (types.integer default: 1000) @@ -108,13 +108,13 @@ import insert, query from require "lapis.db" [11]: => query "alter table jobs add column bytes int generated always as (char_length(code)) stored" - [12]: => - create_table "competition_users", { - { "id", types.serial } - { "competition_id", types.foreign_key } - { "user_id", types.foreign_key } - } + [12]: => + create_table "competition_users", { + { "id", types.serial } + { "competition_id", types.foreign_key } + { "user_id", types.foreign_key } + } - [13]: => - add_column "problems", "blacklisted_langs", (types.varchar default: "") + [13]: => + add_column "problems", "blacklisted_langs", (types.varchar default: "") } diff --git a/codebox/services/scoring.moon b/codebox/services/scoring.moon index ed2ecf9..692118a 100644 --- a/codebox/services/scoring.moon +++ b/codebox/services/scoring.moon @@ -3,9 +3,9 @@ import Users, Jobs, Problems, Competitions, LeaderboardProblems, LeaderboardPlac require 'utils.table' class Scoring extends Injectable - new: => + new: => @time = @make 'time' - @updater = @make 'updater' + @updater = @make 'updater' -- Get the currently active competition @competition = Competitions\find active: true @@ -116,7 +116,7 @@ class Scoring extends Injectable points: 0 attempts: 0 - score_user: (user_id) => + score_user: (user_id) => for p in *@comp_problems @score user_id, p.problem_id @@ -158,7 +158,7 @@ class Scoring extends Injectable place: num score: u.score - @updater\push_leaderboard_update! + @updater\push_leaderboard_update! rescore_everything: => -- Completely resets everything if a problem is diff --git a/codebox/views/ssr/leaderboard.moon b/codebox/views/ssr/leaderboard.moon index 7aa97bd..9696a63 100644 --- a/codebox/views/ssr/leaderboard.moon +++ b/codebox/views/ssr/leaderboard.moon @@ -7,7 +7,7 @@ class Leaderboard extends html.Widget content: => div class: 'leaderboard', -> drawn_labels = false - offset = 0 + offset = 0 for place in *@placements @problems = place\get_problems! CompetitionProblems\include_in @problems, "problem_id", @@ -15,11 +15,11 @@ class Leaderboard extends html.Widget flip: true local_key: 'problem_id' where: { competition_id: @competition.id } - Problems\include_in @problems, 'id', - as: 'p' - flip: true - local_key: 'problem_id' - fields: 'id, kind' + Problems\include_in @problems, 'id', + as: 'p' + flip: true + local_key: 'problem_id' + fields: 'id, kind' -- Sort the problems by letter prob.lnum = (prob.cp.letter\byte 1) for prob in *@problems @@ -33,17 +33,17 @@ class Leaderboard extends html.Widget div class: 'problem', style: "grid-template-columns: repeat(#{#@problems}, 1fr)", -> for prob in *@problems div style: 'position: relative', -> - if prob.p.kind == Problems.kinds.golf - span style: "position: absolute; left: 0; top 0; font-size:.8rem", 'Golf' - div "#{prob.cp.letter}" + if prob.p.kind == Problems.kinds.golf + span style: "position: absolute; left: 0; top 0; font-size:.8rem", 'Golf' + div "#{prob.cp.letter}" div "Score" - offset += 36 + offset += 36 drawn_labels = true div { - 'data-setonload': "top:#{offset}px", - style: "top: #{if @first_load then '0' else offset}px; z-index: #{1000-place.place}", - class: "placement #{@user.id == place.user_id and "user" or ""}" }, -> + 'data-setonload': "top:#{offset}px", + style: "top: #{if @first_load then '0' else offset}px; z-index: #{1000-place.place}", + class: "placement #{@user.id == place.user_id and "user" or ""}" }, -> div "#{place.place}" div "#{place\get_user!.nickname}" @@ -60,4 +60,4 @@ class Leaderboard extends html.Widget div "#{place.score}" - offset += 44 + offset += 44 diff --git a/docker-compose.yaml b/docker-compose.yaml index 6de52ed..003d6f7 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -59,12 +59,10 @@ services: image: "postgres:12-alpine" restart: always volumes: - - ../codebox-data:/var/lib/postgresql/data/pgdata + - ../codebox-data-new:/var/lib/postgresql/data/pgdata networks: appnet: ipv4_address: 192.168.0.2 - logging: - driver: none networks: appnet: diff --git a/executer/app/executer.coffee b/executer/app/executer.coffee index c1266fa..e3f9529 100644 --- a/executer/app/executer.coffee +++ b/executer/app/executer.coffee @@ -112,7 +112,6 @@ class Executer exec_file.delete_file() # General error yield { status: 10, data: { completed: completed, total: total_cases, run_times: run_times } } - return when 'TIME_LIMIT_EXCEEDED' exec_file.delete_file() -- 2.25.1