From ac2fd3dfe0fdfc29e79d91a718471c1e2ee8b24c Mon Sep 17 00:00:00 2001 From: cuom1999 Date: Fri, 4 Nov 2022 16:56:26 -0500 Subject: [PATCH] Update participation when editing contest from UI --- judge/contest_format/icpc.py | 2 +- judge/forms.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/judge/contest_format/icpc.py b/judge/contest_format/icpc.py index 40f4fee..aa76484 100644 --- a/judge/contest_format/icpc.py +++ b/judge/contest_format/icpc.py @@ -113,7 +113,7 @@ class ICPCContestFormat(DefaultContestFormat): if format_data: penalty = ( format_html( - ' ({penalty})', + ' +{penalty}', penalty=floatformat(format_data["penalty"]), ) if format_data["penalty"] diff --git a/judge/forms.py b/judge/forms.py index 06ebe50..7ca8f29 100644 --- a/judge/forms.py +++ b/judge/forms.py @@ -7,6 +7,7 @@ from django.contrib.auth.models import User from django.contrib.auth.forms import AuthenticationForm from django.core.exceptions import ValidationError, ObjectDoesNotExist from django.core.validators import RegexValidator +from django.db import transaction from django.db.models import Q from django.forms import ( CharField, @@ -45,6 +46,7 @@ from judge.widgets import ( Select2MultipleWidget, DateTimePickerWidget, ) +from judge.tasks import rescore_contest def fix_unicode(string, unsafe=tuple("\u202a\u202b\u202d\u202e")): @@ -249,6 +251,13 @@ class EditOrganizationContestForm(ModelForm): self.fields[field].widget.get_url() + "?org_id=1" ) + def save(self, commit=True): + res = super(EditOrganizationContestForm, self).save(commit=False) + if commit: + res.save() + transaction.on_commit(rescore_contest.s(res.key).delay) + return res + class Meta: model = Contest fields = (