1461: Этап №5: Фильтрация событий

улучшил подсчет событий в фильтре
remotes/origin/stage5
Alexander Burdeiny 10 years ago
parent fee508aa8b
commit 0400e5dbc3
  1. 6
      events/forms.py

@ -264,7 +264,7 @@ class FilterForm(forms.Form):
qs.query.having.add(ExtraWhere(having, [], OR), AND) qs.query.having.add(ExtraWhere(having, [], OR), AND)
qs = qs.values(*values).order_by(*order_by) qs = qs.values(*values).order_by(*order_by)
self.fields[field].queryset = qs self.fields[field].queryset = qs
print(self.fields[field].queryset.query) # print(self.fields[field].queryset.query)
for field in ['members', 'visitors', 'price']: for field in ['members', 'visitors', 'price']:
self.fields[field].choices = self.make_local_field_count(field) or self.fields[field].choices self.fields[field].choices = self.make_local_field_count(field) or self.fields[field].choices
@ -422,7 +422,7 @@ class FilterForm(forms.Form):
} }
select = \ select = \
'''SELECT COUNT(`{m2m_db_table}`.`{m2m_column_name}`) FROM `{m2m_db_table}` INNER JOIN `{db_table}` ON (`{m2m_db_table}`.`{m2m_column_name}` = `{db_table}`.`id`) '''\ '''SELECT COUNT(DISTINCT `{m2m_db_table}`.`{m2m_column_name}`) FROM `{m2m_db_table}` INNER JOIN `{db_table}` ON (`{m2m_db_table}`.`{m2m_column_name}` = `{db_table}`.`id`) '''\
.format(**format_kwargs) .format(**format_kwargs)
where.append( where.append(
''' (`{m2m_rel_to_table}_translation`.`master_id` = `{m2m_db_table}`.`{m2m_reverse_name}`) AND `{m2m_rel_to_table}_translation`.`language_code` = '{lang}' '''.format(**format_kwargs) ''' (`{m2m_rel_to_table}_translation`.`master_id` = `{m2m_db_table}`.`{m2m_reverse_name}`) AND `{m2m_rel_to_table}_translation`.`language_code` = '{lang}' '''.format(**format_kwargs)
@ -438,7 +438,7 @@ class FilterForm(forms.Form):
# 'attname': _field.related.field.get_attname(), # 'attname': _field.related.field.get_attname(),
} }
select = \ select = \
'''SELECT COUNT(`{db_table}`.`{attname}`) FROM `{db_table}`'''\ '''SELECT COUNT(DISTINCT `{db_table}`.`{attname}`) FROM `{db_table}`'''\
.format(**_format_kwargs) .format(**_format_kwargs)
# '''SELECT COUNT(`{db_table}`.`id`) FROM `{rel_db_table}` LEFT OUTER JOIN `{db_table}` ON (`{rel_db_table}`.`id` = `{db_table}`.`{attname}`)'''\ # '''SELECT COUNT(`{db_table}`.`id`) FROM `{rel_db_table}` LEFT OUTER JOIN `{db_table}` ON (`{rel_db_table}`.`id` = `{db_table}`.`{attname}`)'''\
where.append( where.append(

Loading…
Cancel
Save