0002-cells-better-perfs-on-invalid-cells-report-40252.patch
combo/data/models.py | ||
---|---|---|
688 | 688 |
return cell_types |
689 | 689 | |
690 | 690 |
@classmethod |
691 |
def get_cells(cls, cell_filter=None, skip_cell_cache=False, prefetch_validity_info=False, select_related=None, **kwargs): |
|
691 |
def get_cells(cls, cell_filter=None, skip_cell_cache=False, prefetch_validity_info=False, select_related=None, load_contenttypes=False, **kwargs):
|
|
692 | 692 |
"""Returns the list of cells of various classes matching **kwargs""" |
693 | 693 |
cells = [] |
694 | 694 |
pages = [] |
... | ... | |
712 | 712 |
break |
713 | 713 |
else: |
714 | 714 |
cell_classes = [get_cell_class(x) for x in cell_types] |
715 |
if load_contenttypes: |
|
716 |
# populate ContentType cache |
|
717 |
ContentType.objects.get_for_models(*cell_classes) |
|
715 | 718 |
for klass in cell_classes: |
716 | 719 |
if klass is None: |
717 | 720 |
continue |
combo/manager/views.py | ||
---|---|---|
97 | 97 |
invalid_cells = CellBase.get_cells( |
98 | 98 |
select_related={'__all__': ['page']}, |
99 | 99 |
page__snapshot__isnull=True, |
100 |
validity_info__invalid_since__isnull=False) |
|
100 |
validity_info__invalid_since__isnull=False, |
|
101 |
load_contenttypes=True) |
|
101 | 102 |
invalid_cells = [c for c in invalid_cells if c.placeholder and not c.placeholder.startswith('_')] |
102 | 103 |
invalid_cells.sort(key=attrgetter('page.order', 'page.pk', 'order')) |
103 | 104 |
context = { |
tests/test_public.py | ||
---|---|---|
181 | 181 |
assert resp.text.count('BAR2FOO') == 1 |
182 | 182 |
queries_count_third = len(ctx.captured_queries) |
183 | 183 |
# +2 for validity info of parent page |
184 |
assert queries_count_third == queries_count_second + 2
|
|
184 |
assert queries_count_third == queries_count_second + 1
|
|
185 | 185 | |
186 | 186 |
with CaptureQueriesContext(connection) as ctx: |
187 | 187 |
resp = app.get('/second/third/fourth/', status=200) |
... | ... | |
189 | 189 |
assert resp.text.count('BAR2FOO') == 1 |
190 | 190 |
queries_count_fourth = len(ctx.captured_queries) |
191 | 191 |
# +1 for get_parents_and_self() |
192 |
assert queries_count_fourth == queries_count_second + 2 + 1
|
|
192 |
assert queries_count_fourth == queries_count_second + 1 + 1
|
|
193 | 193 | |
194 | 194 |
# check footer doesn't get duplicated in real index children |
195 | 195 |
page6 = Page(title='Sixth', slug='sixth', template_name='standard', parent=page_index) |
196 |
- |