diff --git a/client/package-lock.json b/client/package-lock.json index 2655ad2e5dbc1fb024ba896a3701f49adbfe399d..72fcea719f2d7503990a778ded3a56f7b0e55e5f 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -17285,8 +17285,7 @@ }, "ssri": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "resolved": "", "requires": { "figgy-pudding": "^3.5.1" } diff --git a/client/src/pages/admin/competitions/CompetitionManager.tsx b/client/src/pages/admin/competitions/CompetitionManager.tsx index b6af32793c9eac86553408fc742430eaeddea7a6..affd5c26c192025afb800314a9ce1728c9d31935 100644 --- a/client/src/pages/admin/competitions/CompetitionManager.tsx +++ b/client/src/pages/admin/competitions/CompetitionManager.tsx @@ -142,7 +142,6 @@ const CompetitionManager: React.FC = (props: any) => { await axios .get(`/api/competitions/${id}/codes`) .then((response) => { - console.log(response.data) setCodes(response.data.items) }) .catch(console.log) @@ -152,7 +151,7 @@ const CompetitionManager: React.FC = (props: any) => { await axios .get(`/api/competitions/${id}/teams`) .then((response) => { - console.log(response.data.items) + // console.log(response.data.items) setTeams(response.data.items) }) .catch((err) => { @@ -164,7 +163,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 5b75d2d2f505f05d18e797d8ef039a9a06b2f067..fd3dd05b78403f3193e3eedd4543368fc7a92306 100644 --- a/client/src/pages/views/OperatorViewPage.tsx +++ b/client/src/pages/views/OperatorViewPage.tsx @@ -59,7 +59,6 @@ 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 * @@ -205,6 +204,16 @@ 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 @@ -364,7 +373,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> diff --git a/server/app/database/controller/add.py b/server/app/database/controller/add.py index 5f9aec28f9043523b1f41f1d3b07b56c619c760b..3aa0ab709324e21ed69e8db5f1902f9447c9c5f3 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 a59335d9f815a8a8b88d39cb9acb1697d8b824b8..a54a77c24b6b77a22187c386e8cd59c1cd006f49 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 92183b6cc87f8f2e5377fb934c3ff14219920a7f..34f73822f789ddfdabe1092192c6dede7af85355 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,14 @@ 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 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) + if __name__ == "__main__": app, _ = create_app("configmodule.DevelopmentConfig") diff --git a/server/tests/test_helpers.py b/server/tests/test_helpers.py index f55aa68251a5a3b9ea73411c959939acc93f1bc6..85c1f114a8c01da6e7d5370bffe2ccb9ea8aed1c 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.id) + dbc.add.question_answer("då", 5, item_question.id, item_team2.id) db.session.commit()