Vypreparování odevzdávátka ze seminar.utils

This commit is contained in:
Jonas Havelka 2023-08-10 13:40:01 +02:00
parent 5fcf9bac15
commit 39afe79da7
3 changed files with 16 additions and 16 deletions

View file

@ -135,7 +135,7 @@ class Hodnoceni(SeminarModelBase):
def body_neprepocitane(self):
if self.body is None:
return None
from seminar.utils import inverze_vzorecku_na_prepocet
from odevzdavatko.utils import inverze_vzorecku_na_prepocet
return inverze_vzorecku_na_prepocet(self.body, self.reseni.resitele.count())
@body_neprepocitane.setter
@ -143,14 +143,14 @@ class Hodnoceni(SeminarModelBase):
if value is None:
self.body = None
else:
from seminar.utils import vzorecek_na_prepocet
from odevzdavatko.utils import vzorecek_na_prepocet
self.body = vzorecek_na_prepocet(value, self.reseni.resitele.count())
@property
def body_neprepocitane_celkem(self):
if self.body_celkem is None:
return None
from seminar.utils import inverze_vzorecku_na_prepocet
from odevzdavatko.utils import inverze_vzorecku_na_prepocet
return inverze_vzorecku_na_prepocet(self.body_celkem, self.reseni.resitele.count())
@body_neprepocitane_celkem.setter
@ -158,14 +158,14 @@ class Hodnoceni(SeminarModelBase):
if value is None:
self.body = None
else:
from seminar.utils import vzorecek_na_prepocet
from odevzdavatko.utils import vzorecek_na_prepocet
self.body_celkem = vzorecek_na_prepocet(value, self.reseni.resitele.count())
@property
def body_max(self):
if self.body_neprepocitane_max is None:
return None
from seminar.utils import vzorecek_na_prepocet
from odevzdavatko.utils import vzorecek_na_prepocet
return vzorecek_na_prepocet(self.body_neprepocitane_max, self.reseni.resitele.count())
@property

11
odevzdavatko/utils.py Normal file
View file

@ -0,0 +1,11 @@
import decimal
def vzorecek_na_prepocet(body, resitelu):
""" Vzoreček na přepočet plných bodů na parciálni, když má řešení více řešitelů. """
return body * 3 / (resitelu + 2)
def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal:
""" Vzoreček na přepočet parciálních bodů na plné, když má řešení více řešitelů. """
return round(body * (resitelu + 2) / 3, 1)

View file

@ -1,6 +1,5 @@
import datetime
import decimal
from html.parser import HTMLParser
from django import views as DjangoViews
@ -16,16 +15,6 @@ import treenode.treelib as t
logger = logging.getLogger(__name__)
def vzorecek_na_prepocet(body, resitelu):
""" Vzoreček na přepočet plných bodů na parciálni, když má řešení více řešitelů. """
return body * 3 / (resitelu + 2)
def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal:
""" Vzoreček na přepočet parciálních bodů na plné, když má řešení více řešitelů. """
return round(body * (resitelu + 2) / 3, 1)
class FirstTagParser(HTMLParser):
def __init__(self, *args, **kwargs):
self.firstTag = None