From 4ee70a87819f203bdf8d3b294910498cc2d12b67 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Fri, 18 Jan 2019 20:30:47 +0100 Subject: [PATCH] settings: change param to enable/disable depends by the depth --- admin/api/settings.go | 6 +----- admin/main.go | 2 +- admin/static/js/app.js | 6 +++++- admin/static/views/settings.html | 1 + backend/main.go | 8 ++------ settings/settings.go | 4 ++-- 6 files changed, 12 insertions(+), 15 deletions(-) diff --git a/admin/api/settings.go b/admin/api/settings.go index 4167d01f..61e33401 100644 --- a/admin/api/settings.go +++ b/admin/api/settings.go @@ -51,11 +51,7 @@ func saveSettings(_ httprouter.Params, body []byte) (interface{}, error) { func ApplySettings(config settings.FICSettings) { fic.PartialValidation = config.PartialValidation - if config.EnableExerciceDepend { - fic.UnlockedChallengeDepth = 0 - } else { - fic.UnlockedChallengeDepth = -1 - } + fic.UnlockedChallengeDepth = config.UnlockedChallengeDepth fic.FirstBlood = config.FirstBlood fic.SubmissionCostBase = config.SubmissionCostBase fic.HintCoefficient = config.HintCurCoefficient diff --git a/admin/main.go b/admin/main.go index 2e801b60..62e9f9b2 100644 --- a/admin/main.go +++ b/admin/main.go @@ -173,7 +173,7 @@ func main() { DenyNameChange: false, EnableResolutionRoute: false, PartialValidation: true, - EnableExerciceDepend: true, + UnlockedChallengeDepth:0, }); err != nil { log.Fatal("Unable to initialize settings.json:", err) } diff --git a/admin/static/js/app.js b/admin/static/js/app.js index b30c97cb..90b3b5c7 100644 --- a/admin/static/js/app.js +++ b/admin/static/js/app.js @@ -425,6 +425,7 @@ angular.module("FICApp") .controller("SettingsController", function($scope, $rootScope, Settings, ROSettings, $location, $http, $interval) { $scope.config = Settings.get(); $scope.config.$promise.then(function(response) { + response.enableExerciceDepend = response.unlockedChallengeDepth >= 0; $rootScope.settings.start = new Date(response.start); $rootScope.settings.end = new Date(response.end); $rootScope.settings.generation = new Date(response.generation); @@ -454,8 +455,11 @@ angular.module("FICApp") var nEnd = this.config.end; var nGen = this.config.generation; var aTime = this.config.activateTime; - this.config.$update(function() { + var state = this.config.enableExerciceDepend; + this.config.unlockedChallengeDepth = (this.config.enableExerciceDepend?this.config.unlockedChallengeDepth:-1) + this.config.$update(function(response) { $rootScope.newBox('success', msg); + response.enableExerciceDepend = response.unlockedChallengeDepth >= 0; $rootScope.settings.start = new Date(nStart); $rootScope.settings.end = new Date(nEnd); $rootScope.settings.generation = new Date(nGen); diff --git a/admin/static/views/settings.html b/admin/static/views/settings.html index 01cfdb58..40010174 100644 --- a/admin/static/views/settings.html +++ b/admin/static/views/settings.html @@ -139,6 +139,7 @@ diff --git a/backend/main.go b/backend/main.go index b8824980..5aaffcf0 100644 --- a/backend/main.go +++ b/backend/main.go @@ -52,13 +52,9 @@ func reloadSettings(config settings.FICSettings) { fic.WChoiceCoefficient = config.WChoiceCurCoefficient fic.ExerciceCurrentCoefficient = config.ExerciceCurCoefficient ChStarted = time.Since(config.Start) >= 0 - if lastRegeneration != config.Generation || fic.PartialValidation != config.PartialValidation || fic.FirstBlood != config.FirstBlood || fic.SubmissionCostBase != config.SubmissionCostBase || fic.SubmissionUniqueness != config.SubmissionUniqueness { + if lastRegeneration != config.Generation || fic.PartialValidation != config.PartialValidation || fic.UnlockedChallengeDepth != config.UnlockedChallengeDepth || fic.FirstBlood != config.FirstBlood || fic.SubmissionCostBase != config.SubmissionCostBase || fic.SubmissionUniqueness != config.SubmissionUniqueness { fic.PartialValidation = config.PartialValidation - if config.EnableExerciceDepend { - fic.UnlockedChallengeDepth = 0 - } else { - fic.UnlockedChallengeDepth = -1 - } + fic.UnlockedChallengeDepth = config.UnlockedChallengeDepth fic.FirstBlood = config.FirstBlood fic.SubmissionCostBase = config.SubmissionCostBase diff --git a/settings/settings.go b/settings/settings.go index 99719100..604109ba 100644 --- a/settings/settings.go +++ b/settings/settings.go @@ -57,8 +57,8 @@ type FICSettings struct { EnableResolutionRoute bool `json:"enableResolutionRoute"` // PartialValidation validates each correct given answers, don't expect Team to give all correct answer in a try. PartialValidation bool `json:"partialValidation"` - // EnableExerciceDepend don't show (or permit to solve) to team challenges they are not unlocked through dependancies. - EnableExerciceDepend bool `json:"enableExerciceDepend"` + // UnlockedChallengeDepth don't show (or permit to solve) to team challenges they are not unlocked through dependancies. + UnlockedChallengeDepth int `json:"unlockedChallengeDepth"` // SubmissionUniqueness don't count multiple times identical tries. SubmissionUniqueness bool `json:"submissionUniqueness"` }