diff --git a/seminar/utils.py b/seminar/utils.py index 04c8d1c4..73705a95 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -21,27 +21,6 @@ def histogram(seznam): d[i] += 1 return d -# Pozor: zarovnáno velmi netradičně pro přehlednost -roman_numerals = zip((1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1), - ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')) - - -def roman(num): - res = "" - for i, n in roman_numerals: - res += n * (num // i) - num %= i - return res - - -def from_roman(rom): - if not rom: - return 0 - for i, n in roman_numerals: - if rom.upper().startswith(n): - return i + from_roman(rom[len(n):]) - raise Exception('Invalid roman numeral: "%s"', rom) - def seznam_problemu(): """Funkce pro hledání nekonzistencí v databázi a dalších nežádoucích stavů webu/databáze. diff --git a/tvorba/models.py b/tvorba/models.py index 9f21287e..cd52e2b2 100644 --- a/tvorba/models.py +++ b/tvorba/models.py @@ -35,6 +35,8 @@ from personalni.models import Prijemce, Organizator from seminar.models.base import SeminarModelBase +from various.utils import roman + logger = logging.getLogger(__name__) class OverwriteStorage(FileSystemStorage): @@ -73,7 +75,6 @@ class Rocnik(SeminarModelBase): # Ročník v římských číslech def roman(self): - from seminar.utils import roman return roman(int(self.rocnik)) def verejne(self): diff --git a/various/utils.py b/various/utils.py index 5905b2f6..93a0239e 100644 --- a/various/utils.py +++ b/various/utils.py @@ -31,3 +31,24 @@ class _bez_diakritiky_translate: bez_diakritiky_translate = _bez_diakritiky_translate() # TODO: testy? + +# Pozor: zarovnáno velmi netradičně pro přehlednost +roman_numerals = zip((1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1), + ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')) + + +def roman(num): + res = "" + for i, n in roman_numerals: + res += n * (num // i) + num %= i + return res + + +def from_roman(rom): + if not rom: + return 0 + for i, n in roman_numerals: + if rom.upper().startswith(n): + return i + from_roman(rom[len(n):]) + raise Exception('Invalid roman numeral: "%s"', rom)