You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

48 lines
2.0 KiB

# -*- coding: utf-8 -*-
from collections import OrderedDict
from django.utils.translation import ugettext as _
from functions.model_utils import EnumChoices
members_mapping = OrderedDict(
N200={'min': None, 'max': 200, 'value': 1, 'label': _(u'до 200')},
N200500={'min': 201, 'max': 500, 'value': 2, 'label': _(u'201-500')},
N5001000={'min': 501, 'max': 1000, 'value': 3, 'label': _(u'501-1000')},
N10002000={'min': 1001, 'max': 2000, 'value': 4, 'label': _(u'1001-2000')},
N2000={'min': 2001, 'max': None, 'value': 5, 'label': _(u'более 2000')},
)
visitors_mapping = OrderedDict(
N5={'min': None, 'max': 5000, 'value': 1, 'label': _(u'до 5 000')},
N510={'min': 5001, 'max': 10000, 'value': 2, 'label': _(u'5 001 - 10 000')},
N1030={'min': 10001, 'max': 30000, 'value': 3, 'label': _(u'10 001 - 30 000')},
N3050={'min': 30001, 'max': 50000, 'value': 4, 'label': _(u'30 001 - 50 000')},
N50100={'min': 50001, 'max': 100000, 'value': 5, 'label': _(u'50 001 - 100 000')},
N100={'min': 100001, 'max': None, 'value': 6, 'label': _(u'более 100 000')},
)
price_mapping = OrderedDict(
N1={'min': None, 'max': 100, 'value': 1, 'label': _(u'до 100 евро')},
N12={'min': 101, 'max': 200, 'value': 2, 'label': _(u'100-200 евро')},
N24={'min': 201, 'max': 400, 'value': 3, 'label': _(u'200-400 евро')},
N4={'min': 401, 'max': None, 'value': 4, 'label': _(u'более 400 евро')},
)
def get_choices_kwargs(mapping):
kwargs = {}
for key, val in mapping.iteritems():
kwargs[key] = (val.get('value'), val.get('label'))
return kwargs
MEMBERS = EnumChoices(**get_choices_kwargs(members_mapping))
VISITORS = EnumChoices(**get_choices_kwargs(visitors_mapping))
PRICE = EnumChoices(**get_choices_kwargs(price_mapping))
# N200=(1, _(u'до 200')),
# N200500=(2, _(u'200-500')),
# N5001000=(3, _(u'500-1000')),
# N10002000=(4, _(u'1000-2000')),
# N2000=(5, _(u'более 2000')),
# )