|
|
|
|
@ -14,7 +14,6 @@ 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.models.sql.where import ExtraWhere, AND, OR |
|
|
|
|
from django.db import connection |
|
|
|
|
from django.core.exceptions import ValidationError |
|
|
|
|
|
|
|
|
|
@ -28,6 +27,7 @@ from country.models import Country |
|
|
|
|
from city.models import City |
|
|
|
|
from events.common import MEMBERS, VISITORS, PRICE |
|
|
|
|
from events.common import members_mapping, visitors_mapping, price_mapping |
|
|
|
|
from events.common import ExtraWhere, OR, AND |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FilterCheckboxSelectMultiple(forms.CheckboxSelectMultiple): |
|
|
|
|
@ -261,7 +261,8 @@ class FilterForm(forms.Form): |
|
|
|
|
having = [''' `count` > 0 '''] |
|
|
|
|
if 'selected' in values: |
|
|
|
|
having.append(''' `selected` = 1 ''') |
|
|
|
|
qs.query.having.add(ExtraWhere(having, []), OR) |
|
|
|
|
|
|
|
|
|
qs.query.having.add(ExtraWhere(having, [], OR), AND) |
|
|
|
|
qs = qs.values(*values).order_by(*order_by) |
|
|
|
|
self.fields[field].queryset = qs |
|
|
|
|
print(self.fields[field].queryset.query) |
|
|
|
|
|