From 5e037d5d5733672cc423343b0ec4556ecafb8d1f Mon Sep 17 00:00:00 2001 From: bmodee <bjomo323@student.liu.se> Date: Fri, 30 Apr 2021 11:00:36 +0200 Subject: [PATCH 1/4] add question answer --- client/src/pages/views/OperatorViewPage.tsx | 2 +- server/app/database/controller/add.py | 5 ++--- server/app/database/models.py | 7 +++---- server/populate.py | 9 +++++++-- server/tests/test_helpers.py | 4 ++-- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/client/src/pages/views/OperatorViewPage.tsx b/client/src/pages/views/OperatorViewPage.tsx index e92dc1b9..efbb8354 100644 --- a/client/src/pages/views/OperatorViewPage.tsx +++ b/client/src/pages/views/OperatorViewPage.tsx @@ -62,7 +62,7 @@ import { * TODO: * - Instead of copying code for others to join the competition, copy URL. * - * - Make code popup less code by using .map instead + * * * - Fix scoreboard * diff --git a/server/app/database/controller/add.py b/server/app/database/controller/add.py index 5f9aec28..3aa0ab70 100644 --- a/server/app/database/controller/add.py +++ b/server/app/database/controller/add.py @@ -29,13 +29,12 @@ from app.database.models import ( ViewType, Whitelist, ) +from app.database.types import ID_IMAGE_COMPONENT, ID_QUESTION_COMPONENT, ID_TEXT_COMPONENT +from flask import current_app from flask.globals import current_app from flask_restx import abort from PIL import Image from sqlalchemy import exc -from flask import current_app - -from app.database.types import ID_IMAGE_COMPONENT, ID_QUESTION_COMPONENT, ID_TEXT_COMPONENT def db_add(item): diff --git a/server/app/database/models.py b/server/app/database/models.py index a59335d9..a54a77c2 100644 --- a/server/app/database/models.py +++ b/server/app/database/models.py @@ -5,9 +5,8 @@ each other. """ from app.core import bcrypt, db -from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property - from app.database.types import ID_IMAGE_COMPONENT, ID_QUESTION_COMPONENT, ID_TEXT_COMPONENT +from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property STRING_SIZE = 254 @@ -201,8 +200,8 @@ class QuestionAnswer(db.Model): question_id = db.Column(db.Integer, db.ForeignKey("question.id"), nullable=False) team_id = db.Column(db.Integer, db.ForeignKey("team.id"), nullable=False) - def __init__(self, data, score, question_id, team_id): - self.data = data + def __init__(self, answer, score, question_id, team_id): + self.answer = answer self.score = score self.question_id = question_id self.team_id = team_id diff --git a/server/populate.py b/server/populate.py index 92183b6c..0d1bcbdc 100644 --- a/server/populate.py +++ b/server/populate.py @@ -43,8 +43,8 @@ def _add_items(): city_id = City.query.filter(City.name == "Linköping").one().id # Add users - dbc.add.user("admin@test.se", "password", admin_id, city_id) - dbc.add.user("test@test.se", "password", editor_id, city_id) + dbc.add.user("admin@test.se", "password", admin_id, city_id, "Admina Denfina") + dbc.add.user("test@test.se", "password", editor_id, city_id, "Test Osteron") question_types_items = dbc.get.all(QuestionType) @@ -105,6 +105,11 @@ def _add_items(): for name in teams: dbc.add.team(f"{name}{i}", item_comp.id) + # question_answer(answer, score, question_id, team_id) + dbc.add.question_answer("ett svar som ger 2p", 2, 1, 1) + dbc.add.question_answer("ett svar som ger 2p", 2, 1, 2) + dbc.add.question_answer("ett svar som ger 3p", 3, 1, 3) + if __name__ == "__main__": app, _ = create_app("configmodule.DevelopmentConfig") diff --git a/server/tests/test_helpers.py b/server/tests/test_helpers.py index f55aa682..1b2f20ae 100644 --- a/server/tests/test_helpers.py +++ b/server/tests/test_helpers.py @@ -49,8 +49,8 @@ def add_default_values(): db.session.add(Code("111111", 1, item_competition.id, item_team1.id)) # Team db.session.add(Code("222222", 2, item_competition.id)) # Judge - dbc.add.QuestionAnswer("hej", 5, item_question.id, item_team1) - dbc.add.QuestionAnswer("då", 5, item_question.id, item_team2) + dbc.add.question_answer("hej", 5, item_question.id, item_team1) + dbc.add.question_answer("då", 5, item_question.id, item_team2) db.session.commit() -- GitLab From 40d7b3781ed11174fdda90570e2a56f66389ef78 Mon Sep 17 00:00:00 2001 From: bmodee <bjomo323@student.liu.se> Date: Fri, 30 Apr 2021 11:56:14 +0200 Subject: [PATCH 2/4] add correct redirect when starting competition --- .../admin/competitions/CompetitionManager.tsx | 36 +++++++++++-------- client/src/pages/views/OperatorViewPage.tsx | 1 - 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/client/src/pages/admin/competitions/CompetitionManager.tsx b/client/src/pages/admin/competitions/CompetitionManager.tsx index b7184d55..5230c704 100644 --- a/client/src/pages/admin/competitions/CompetitionManager.tsx +++ b/client/src/pages/admin/competitions/CompetitionManager.tsx @@ -1,17 +1,17 @@ import { + Box, Button, - Menu, - ListItem, - TablePagination, - TextField, - Typography, Dialog, - DialogTitle, - DialogContent, DialogActions, + DialogContent, + DialogTitle, + ListItem, ListItemText, + Menu, + TablePagination, + TextField, Tooltip, - Box, + Typography, } from '@material-ui/core' import FormControl from '@material-ui/core/FormControl' import InputLabel from '@material-ui/core/InputLabel' @@ -25,7 +25,9 @@ import TableCell from '@material-ui/core/TableCell' import TableContainer from '@material-ui/core/TableContainer' import TableHead from '@material-ui/core/TableHead' import TableRow from '@material-ui/core/TableRow' +import FileCopyIcon from '@material-ui/icons/FileCopy' import MoreHorizIcon from '@material-ui/icons/MoreHoriz' +import RefreshIcon from '@material-ui/icons/Refresh' import axios from 'axios' import React, { useEffect } from 'react' import { Link, useHistory } from 'react-router-dom' @@ -35,8 +37,6 @@ import { Team } from '../../../interfaces/ApiModels' import { CompetitionFilterParams } from '../../../interfaces/FilterParams' import { FilterContainer, RemoveMenuItem, TopBar, YearFilterTextField } from '../styledComp' import AddCompetition from './AddCompetition' -import FileCopyIcon from '@material-ui/icons/FileCopy' -import RefreshIcon from '@material-ui/icons/Refresh' /** * Component description: @@ -128,15 +128,21 @@ const CompetitionManager: React.FC = (props: any) => { } } - const handleStartCompetition = () => { - history.push(`/operator/id=${activeId}&code=123123`) + const handleStartCompetition = async () => { + await axios + .get(`/api/competitions/${activeId}/codes`) + .then((response) => { + console.log(response.data.items[2].code) + const operatorCode = response.data.items[2].code + history.push(`/operator/id=${activeId}&code=${operatorCode}`) + }) + .catch(console.log) } const getCodes = async () => { await axios .get(`/api/competitions/${activeId}/codes`) .then((response) => { - console.log(response.data) setCodes(response.data.items) }) .catch(console.log) @@ -146,7 +152,7 @@ const CompetitionManager: React.FC = (props: any) => { await axios .get(`/api/competitions/${activeId}/teams`) .then((response) => { - console.log(response.data.items) + // console.log(response.data.items) setTeams(response.data.items) }) .catch((err) => { @@ -158,7 +164,7 @@ const CompetitionManager: React.FC = (props: any) => { await axios .get(`/api/competitions/${activeId}`) .then((response) => { - console.log(response.data.name) + // console.log(response.data.name) setCompetitionName(response.data.name) }) .catch((err) => { diff --git a/client/src/pages/views/OperatorViewPage.tsx b/client/src/pages/views/OperatorViewPage.tsx index efbb8354..2dd8fb23 100644 --- a/client/src/pages/views/OperatorViewPage.tsx +++ b/client/src/pages/views/OperatorViewPage.tsx @@ -62,7 +62,6 @@ import { * TODO: * - Instead of copying code for others to join the competition, copy URL. * - * * * - Fix scoreboard * -- GitLab From 0768a5219605219a7e6ee1fe831e0792e47e4eb9 Mon Sep 17 00:00:00 2001 From: bmodee <bjomo323@student.liu.se> Date: Fri, 30 Apr 2021 17:32:42 +0200 Subject: [PATCH 3/4] display correct scoreboard --- client/src/pages/views/OperatorViewPage.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/client/src/pages/views/OperatorViewPage.tsx b/client/src/pages/views/OperatorViewPage.tsx index a3228752..b8d15a1a 100644 --- a/client/src/pages/views/OperatorViewPage.tsx +++ b/client/src/pages/views/OperatorViewPage.tsx @@ -204,6 +204,15 @@ const OperatorViewPage: React.FC = () => { return typeName } + const addScore = (id: number) => { + // Sums the scores for the teams. id must be id-1 because it starts at 1 + let totalScore = 0 + for (let j = 0; j < teams[id - 1].question_answers.length; j++) { + totalScore = totalScore + teams[id - 1].question_answers[j].score + } + return totalScore + } + return ( <OperatorContainer> <Dialog @@ -363,7 +372,7 @@ const OperatorViewPage: React.FC = () => { {teams && teams.map((team) => ( <ListItem key={team.id}> - {team.name} score: {'666'} + {team.name} score:{addScore(team.id)} </ListItem> ))} </List> -- GitLab From f4e1e93e426e45f3e822cb7ef68199e7e9ad2b96 Mon Sep 17 00:00:00 2001 From: bmodee <bjomo323@student.liu.se> Date: Fri, 30 Apr 2021 18:06:13 +0200 Subject: [PATCH 4/4] fix db tests --- client/src/pages/views/OperatorViewPage.tsx | 1 + server/populate.py | 3 +++ server/tests/test_helpers.py | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/client/src/pages/views/OperatorViewPage.tsx b/client/src/pages/views/OperatorViewPage.tsx index b8d15a1a..fd3dd05b 100644 --- a/client/src/pages/views/OperatorViewPage.tsx +++ b/client/src/pages/views/OperatorViewPage.tsx @@ -206,6 +206,7 @@ const OperatorViewPage: React.FC = () => { const addScore = (id: number) => { // Sums the scores for the teams. id must be id-1 because it starts at 1 + let totalScore = 0 for (let j = 0; j < teams[id - 1].question_answers.length; j++) { totalScore = totalScore + teams[id - 1].question_answers[j].score diff --git a/server/populate.py b/server/populate.py index 0d1bcbdc..34f73822 100644 --- a/server/populate.py +++ b/server/populate.py @@ -107,6 +107,9 @@ def _add_items(): # question_answer(answer, score, question_id, team_id) dbc.add.question_answer("ett svar som ger 2p", 2, 1, 1) + dbc.add.question_answer("ett svar som ger 10p", 10, 2, 1) + dbc.add.question_answer("ett svar som ger 6p", 6, 3, 1) + dbc.add.question_answer("ett svar som ger 2p", 2, 1, 2) dbc.add.question_answer("ett svar som ger 3p", 3, 1, 3) diff --git a/server/tests/test_helpers.py b/server/tests/test_helpers.py index 1b2f20ae..85c1f114 100644 --- a/server/tests/test_helpers.py +++ b/server/tests/test_helpers.py @@ -49,8 +49,8 @@ def add_default_values(): db.session.add(Code("111111", 1, item_competition.id, item_team1.id)) # Team db.session.add(Code("222222", 2, item_competition.id)) # Judge - dbc.add.question_answer("hej", 5, item_question.id, item_team1) - dbc.add.question_answer("då", 5, item_question.id, item_team2) + dbc.add.question_answer("hej", 5, item_question.id, item_team1.id) + dbc.add.question_answer("då", 5, item_question.id, item_team2.id) db.session.commit() -- GitLab