# -*- 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')), # )