# -*- coding: utf-8 -*- import re import operator from itertools import chain, combinations from collections import namedtuple from datetime import datetime from datetime import timedelta from datetime import date from datetime import MAXYEAR, MINYEAR from dateutil import relativedelta import calendar # from calendar import TimeEncoding, month_name try: from collections import ChainMap except ImportError: from chainmap import ChainMap from django import forms from django.utils.translation import get_language, ugettext as _ from django.utils.translation import string_concat from django.utils.encoding import smart_text, force_text from django.utils.html import format_html from django.utils.safestring import mark_safe from django.db.models import Count, Sum, Q, ForeignKey, ManyToManyField from django.db import connection from django.core.exceptions import ValidationError from django.core.cache import cache from django.conf import settings from haystack.query import SearchQuerySet, RelatedSearchQuerySet, SQ # from functions.model_utils import EnumChoices # from functions.model_mixin import get_dates from exposition.models import Exposition from conference.models import Conference from theme.models import Theme, Tag from country.models import Country from city.models import City from events.common import MEMBERS, VISITORS, PRICE, PRICE_EUR, TYPES from events.common import members_mapping, visitors_mapping, price_mapping, price_mapping_eur from events.common import ExtraWhere, OR, AND class FilterCheckboxSelectMultiple(forms.CheckboxSelectMultiple): def render(self, name, value, attrs=None, choices=()): if value is None: value = [] has_id = attrs and 'id' in attrs final_attrs = self.build_attrs(attrs, name=name) output = ['