Tabs to spaces; small fixes
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 12 Nov 2019 22:36:55 +0000 (16:36 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 12 Nov 2019 22:36:55 +0000 (16:36 -0600)
.gitignore
codebox/app/app.moon
codebox/controllers/problem/submit.moon
codebox/migrations.moon
codebox/services/scoring.moon
codebox/views/ssr/leaderboard.moon
docker-compose.yaml
executer/app/executer.coffee

index fa6efdd48ea360b381069383af8c878e3c791fff..bb2a76db553b7e62141f783087b0ce5061ce532e 100644 (file)
@@ -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
index 53328afbd0d6d031d2342c7414da71bae8b6d199..b6042407deb89951931274943a45625cffa5f0ca 100644 (file)
@@ -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!
index 12e76b01a503996b1b8032c73fa14ec3b367eb10..ae472952d90c50dba1c7f1b88bf488414511d1ab 100644 (file)
@@ -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!
 
index 3c745ec2f6f56b670ec7992e2ec59c76d596ba32..6fac11ed097992d793a802ec1790a15a903fc0c5 100644 (file)
@@ -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: "")
 }
index ed2ecf975e479b8d4737de2551f986d7725f2314..692118a3c0a8808ab992a08e7b9bf30d4d34ea92 100644 (file)
@@ -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
index 7aa97bdb88f092d6476ffc22c197a8bf31ab24e3..9696a63f0b3581ddb25cd56203239d64e832de97 100644 (file)
@@ -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
index 6de52eddf9e1117c96217564728dba6e2a580fd8..003d6f73deb91ab96d99faf407b20e73ba101dad 100644 (file)
@@ -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:
index c1266faefcfca7c362678b4fd44b59e145cfe7c9..e3f95298fe1166894c4b0c5214d2584604e9fa93 100644 (file)
@@ -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()