Skip to content
This repository was archived by the owner on Dec 8, 2022. It is now read-only.

Commit f611dc4

Browse files
authored
Merge branch 'master' into mailgun-add
2 parents ca7c4f0 + 4f99539 commit f611dc4

File tree

10 files changed

+85
-26
lines changed

10 files changed

+85
-26
lines changed

CodeChallenge/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ class ProductionConfig(DefaultConfig):
7575
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
7676
SHEET_ID = os.getenv("SHEET_ID")
7777
MG_LIST = os.getenv("MG_LIST")
78+
ANSWER_ATTEMPT_LIMIT = "5 per 1 minutes"
7879

7980

8081
class DevelopmentConfig(ProductionConfig):

CodeChallenge/core.py

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import datetime, timezone, timedelta, time
1+
from datetime import datetime, timezone, timedelta
22

33
from flask import current_app
44
from sqlalchemy import func
@@ -20,7 +20,8 @@ def day_number() -> int:
2020
return -1
2121

2222
delta = now - start
23-
return 1 if delta.days == 0 else delta.days
23+
24+
return delta.days + 1
2425

2526

2627
def current_rank() -> int:
@@ -42,16 +43,8 @@ def time_until_next_rank() -> str:
4243
epoch = int(current_app.config["CODE_CHALLENGE_START"])
4344
start = datetime.fromtimestamp(epoch, timezone.utc)
4445
now = datetime.now(timezone.utc)
45-
46-
if start > now:
47-
diff = datetime.combine(start, time.min, now.tzinfo) - now
48-
return str(diff)
49-
50-
tomorrow = now + timedelta(days=1)
51-
52-
diff = datetime.combine(tomorrow, time.min, now.tzinfo) - now
53-
54-
return str(diff)
46+
next_date = start + timedelta(days=day_number())
47+
return str(next_date - now)
5548

5649

5750
def friendly_starts_on() -> str:

src/api/quiz.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ async function submit(answer) {
2323
}
2424

2525
async function getLeaderboard() {
26-
return request(routes.questionsapi_leaderboard, { params: { per: 1000 } });
26+
return request(routes.questionsapi_leaderboard, { params: { per: 1500 } });
2727
}
2828

2929
async function submitFinal(answer, language, checkOnly) {

src/components/Toolbars/LeaderboardBar.vue

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
<template>
2-
<v-toolbar elevation="0" color="white" :height="height" :min-height="height" :max-height="height" class="leaderboard-bar">
2+
<v-toolbar
3+
elevation="0"
4+
color="white"
5+
:height="height"
6+
:min-height="height"
7+
:max-height="height"
8+
class="leaderboard-bar"
9+
>
310
<div class="rotated-text">
411
LEADER
512
<br />BOARD
@@ -16,13 +23,13 @@
1623
</template>
1724

1825
<script>
19-
import MarqueeText from 'vue-marquee-text-component';
20-
import * as api from '@/api';
21-
import { shuffle } from '@/util';
26+
import MarqueeText from "vue-marquee-text-component";
27+
import * as api from "@/api";
28+
import { shuffle } from "@/util";
2229
2330
export default {
2431
components: {
25-
MarqueeText,
32+
MarqueeText
2633
},
2734
async mounted() {
2835
const leaders = (await api.quiz.getLeaderboard()).items;
@@ -35,7 +42,7 @@ export default {
3542
for (const leader of leaders) {
3643
this.items.push({
3744
username: leader[0],
38-
rank: leader[1],
45+
rank: leader[1]
3946
});
4047
}
4148
}
@@ -49,8 +56,8 @@ export default {
4956
data() {
5057
return {
5158
height: 50,
52-
items: [],
59+
items: []
5360
};
54-
},
61+
}
5562
};
5663
</script>

src/plugins/router.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ const routes = [
9696
name: "admin",
9797
component: () => import("@/views/Accounts/Admin"),
9898
meta: { auth: true }
99+
},
100+
{
101+
path: "super-secret-rank-page",
102+
name: "super-secret-rank-page",
103+
component: () => import("@/views/Accounts/SuperSecretRank"),
104+
meta: { auth: true }
99105
}
100106
]
101107
},

src/views/Accounts/Register/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ export default {
259259
"15 years old",
260260
"16 years old",
261261
"17 years old",
262-
"18 years old or older"
262+
"18 years old"
263263
],
264264
value: "How old is the student?",
265265
rules: [
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<template>
2+
<v-container>
3+
<page-card>
4+
<template #title>
5+
Shhh it's a secret page
6+
<small style="position: absolute; right:12px;top:20px"
7+
>showing {{ leaders.length }} total entries</small
8+
>
9+
</template>
10+
<v-simple-table>
11+
<thead>
12+
<tr>
13+
<td>Username</td>
14+
<td>Rank</td>
15+
</tr>
16+
</thead>
17+
<tbody>
18+
<tr v-for="item in leaders" :key="item.username">
19+
<td>
20+
{{ item[0] }}
21+
</td>
22+
<td>
23+
{{ item[1] }}
24+
</td>
25+
</tr>
26+
</tbody>
27+
</v-simple-table>
28+
</page-card>
29+
</v-container>
30+
</template>
31+
32+
<script>
33+
import * as api from "@/api";
34+
import PageCard from "@/components/PageCard.vue";
35+
export default {
36+
components: {
37+
PageCard
38+
},
39+
name: "super-secret-rank",
40+
data() {
41+
return {
42+
leaders: []
43+
};
44+
},
45+
46+
async mounted() {
47+
this.leaders = (await api.quiz.getLeaderboard()).items.sort((a, b) => {
48+
return a[1] < b[1];
49+
});
50+
}
51+
};
52+
</script>

src/views/Quiz/QuizAnswer.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ export default {
215215
"Snackbar/showError",
216216
"That answer was not correct"
217217
);
218-
this.fields.answer.errorMessages = ["That answer was not correct"];
218+
this.fields.answer.errorMessages = ["Your answer was not correct"];
219219
}
220220
} catch (err) {
221221
if (err.status === 429) {

src/views/Quiz/QuizIntro.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
</p>
1818
<p class="text-center">
1919
<v-btn color="secondary darken-2" @click="onClick" x-large
20-
>Okay!</v-btn
20+
>OK!</v-btn
2121
>
2222
</p>
2323
</template>

tests/test_question.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
NOW = datetime.now(timezone.utc)
1212

1313
CC_CLOSED = (NOW - timedelta(days=5)).timestamp()
14-
CC_2D_PRIOR = (NOW - timedelta(days=2)).timestamp()
15-
CC_4D_PRIOR = (NOW - timedelta(days=4)).timestamp()
14+
CC_2D_PRIOR = (NOW - timedelta(days=1)).timestamp()
15+
CC_4D_PRIOR = (NOW - timedelta(days=3)).timestamp()
1616
CC_2D_FUTURE = (NOW + timedelta(days=2)).timestamp()
1717

1818

0 commit comments

Comments
 (0)