Přesunutí římských čísel ze seminar.utils do various.utils
This commit is contained in:
parent
c89a982440
commit
15b17023de
3 changed files with 23 additions and 22 deletions
|
@ -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.
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue