|
|
|
@ -5,21 +5,13 @@ from .custom_tariffs import TariffBase, TARIFF_CHOICES |
|
|
|
from mydefs import MyChoicesAdapter |
|
|
|
|
|
|
|
|
|
|
|
# Класс похож на адаптер. Предназначен для Django CHOICES чтоб можно было передавать классывместо просто описания поля, |
|
|
|
# классы передавать для того чтоб по значению из базы понять какой класс нужно взять для расчёта стоимости тарифа. |
|
|
|
class _TariffChoicesAdapter(MyChoicesAdapter): |
|
|
|
# На вход принимает кортеж кортежей, вложенный из 2х элементов: кода и класса, как: TARIFF_CHOICES |
|
|
|
def __init__(self): |
|
|
|
super().__init__(TARIFF_CHOICES) |
|
|
|
|
|
|
|
|
|
|
|
class Tariff(models.Model): |
|
|
|
title = models.CharField(max_length=32) |
|
|
|
descr = models.CharField(max_length=256) |
|
|
|
speedIn = models.FloatField(default=0.0) |
|
|
|
speedOut = models.FloatField(default=0.0) |
|
|
|
amount = models.FloatField(default=0.0) |
|
|
|
calc_type = models.CharField(max_length=2, default=TARIFF_CHOICES[0][0], choices=_TariffChoicesAdapter()) |
|
|
|
calc_type = models.CharField(max_length=2, default=TARIFF_CHOICES[0][0], choices=MyChoicesAdapter(TARIFF_CHOICES)) |
|
|
|
is_admin = models.BooleanField(default=False) |
|
|
|
|
|
|
|
# Возвращает потомок класса TariffBase, методы которого дают нужную логику оплаты по тарифу |
|
|
|
|