Browse Source

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

v3
Jonas Havelka 1 year ago
parent
commit
39afe79da7
  1. 10
      odevzdavatko/models.py
  2. 11
      odevzdavatko/utils.py
  3. 11
      seminar/utils.py

10
odevzdavatko/models.py

@ -135,7 +135,7 @@ class Hodnoceni(SeminarModelBase):
def body_neprepocitane(self): def body_neprepocitane(self):
if self.body is None: if self.body is None:
return 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()) return inverze_vzorecku_na_prepocet(self.body, self.reseni.resitele.count())
@body_neprepocitane.setter @body_neprepocitane.setter
@ -143,14 +143,14 @@ class Hodnoceni(SeminarModelBase):
if value is None: if value is None:
self.body = None self.body = None
else: 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()) self.body = vzorecek_na_prepocet(value, self.reseni.resitele.count())
@property @property
def body_neprepocitane_celkem(self): def body_neprepocitane_celkem(self):
if self.body_celkem is None: if self.body_celkem is None:
return 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()) return inverze_vzorecku_na_prepocet(self.body_celkem, self.reseni.resitele.count())
@body_neprepocitane_celkem.setter @body_neprepocitane_celkem.setter
@ -158,14 +158,14 @@ class Hodnoceni(SeminarModelBase):
if value is None: if value is None:
self.body = None self.body = None
else: 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()) self.body_celkem = vzorecek_na_prepocet(value, self.reseni.resitele.count())
@property @property
def body_max(self): def body_max(self):
if self.body_neprepocitane_max is None: if self.body_neprepocitane_max is None:
return 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()) return vzorecek_na_prepocet(self.body_neprepocitane_max, self.reseni.resitele.count())
@property @property

11
odevzdavatko/utils.py

@ -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)

11
seminar/utils.py

@ -1,6 +1,5 @@
import datetime import datetime
import decimal
from html.parser import HTMLParser from html.parser import HTMLParser
from django import views as DjangoViews from django import views as DjangoViews
@ -16,16 +15,6 @@ import treenode.treelib as t
logger = logging.getLogger(__name__) 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): class FirstTagParser(HTMLParser):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.firstTag = None self.firstTag = None

Loading…
Cancel
Save