0001-manager-keep-cell-open-after-edit-actions-33103.patch
combo/apps/gallery/views.py | ||
---|---|---|
37 | 37 |
return super(ImageAddView, self).form_valid(form) |
38 | 38 | |
39 | 39 |
def get_success_url(self): |
40 |
return reverse('combo-manager-page-view', kwargs={'pk': self.object.gallery.page.id}) |
|
40 |
return reverse('combo-manager-page-view', |
|
41 |
kwargs={'pk': self.object.gallery.page.id}) + '#cell-' + self.object.gallery.get_reference() |
|
41 | 42 | |
42 | 43 |
image_add = ImageAddView.as_view() |
43 | 44 | |
... | ... | |
48 | 49 |
form_class = ImageEditForm |
49 | 50 | |
50 | 51 |
def get_success_url(self): |
51 |
return reverse('combo-manager-page-view', kwargs={'pk': self.object.gallery.page.id}) |
|
52 |
return reverse('combo-manager-page-view', |
|
53 |
kwargs={'pk': self.object.gallery.page.id}) + '#cell-' + self.object.gallery.get_reference() |
|
52 | 54 | |
53 | 55 |
image_edit = ImageEditView.as_view() |
54 | 56 |
combo/manager/static/js/combo.manager.js | ||
---|---|---|
269 | 269 |
}); |
270 | 270 | |
271 | 271 |
$('div.cell').each(function(i, x) { |
272 |
$(this).attr('id', 'div-cell-'+i); |
|
273 | 272 |
compute_max_height($(this)); |
274 |
$(this).addClass('untoggled'); |
|
273 |
if (window.location.hash == '#' + $(this).attr('id')) { |
|
274 |
$(this).addClass('toggled'); |
|
275 |
} else { |
|
276 |
$(this).addClass('untoggled'); |
|
277 |
} |
|
275 | 278 |
}); |
276 | 279 |
$('#assets-browser table tr').on('hover mouseenter', function() { |
277 | 280 |
var $img = $(this).find('img'); |
combo/manager/templates/combo/page_view.html | ||
---|---|---|
95 | 95 |
<h2>{{ placeholder.name }}</h2> |
96 | 96 |
<div class="cell-list"> |
97 | 97 |
{% for cell in placeholder.cells %} |
98 |
<div class="cell {{cell.class_name}}" data-cell-reference="{{ cell.get_reference }}"> |
|
98 |
<div id="cell-{{cell.get_reference}}" class="cell {{cell.class_name}}" data-cell-reference="{{ cell.get_reference }}">
|
|
99 | 99 |
<h3><span class="handle">⣿</span> |
100 | 100 |
<span class="group1"> |
101 | 101 |
{{ cell.get_label }} |
combo/manager/views.py | ||
---|---|---|
346 | 346 |
cell.order = 1 |
347 | 347 |
cell.save() |
348 | 348 |
PageSnapshot.take(cell.page, request=self.request, comment=_('added cell "%s"') % cell) |
349 |
return reverse('combo-manager-page-view', kwargs={'pk': page_pk}) |
|
349 |
return reverse('combo-manager-page-view', kwargs={'pk': page_pk}) + '#cell-' + cell.get_reference()
|
|
350 | 350 | |
351 | 351 |
page_add_cell = PageAddCellView.as_view() |
352 | 352 | |
... | ... | |
375 | 375 |
return self.object.get_default_form_class() |
376 | 376 | |
377 | 377 |
def get_success_url(self): |
378 |
return reverse('combo-manager-page-view', kwargs={'pk': self.kwargs.get('page_pk')}) |
|
378 |
return reverse('combo-manager-page-view', kwargs={'pk': self.kwargs.get('page_pk')} |
|
379 |
) + '#cell-' + self.object.get_reference() |
|
379 | 380 | |
380 | 381 |
def form_valid(self, form): |
381 | 382 |
if self.request.is_ajax(): |
tests/test_manager.py | ||
---|---|---|
342 | 342 |
resp = app.get('/manage/pages/%s/' % page.id) |
343 | 343 |
# click on first option link, this should add a text cell |
344 | 344 |
resp = app.get(resp.html.find('option').get('data-add-url')) |
345 |
assert resp.location.endswith('/manage/pages/1/') |
|
346 | 345 | |
347 | 346 |
cells = CellBase.get_cells(page_id=page.id) |
348 | 347 |
assert len(cells) == 1 |
349 | 348 |
assert isinstance(cells[0], TextCell) |
349 |
assert resp.location.endswith('/manage/pages/1/#cell-%s' % cells[0].get_reference()) |
|
350 | 350 | |
351 | 351 |
resp = app.get('/manage/pages/%s/' % page.id) |
352 | 352 |
assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.text |
353 | 353 |
resp.forms[0]['c%s-text' % cells[0].get_reference()].value = 'Hello world' |
354 | 354 |
resp = resp.forms[0].submit() |
355 | 355 |
assert resp.status_int == 302 |
356 |
assert resp.location.endswith('/manage/pages/1/')
|
|
356 |
assert resp.location.endswith('/manage/pages/1/#cell-%s' % cells[0].get_reference())
|
|
357 | 357 | |
358 | 358 |
resp = app.get('/manage/pages/%s/' % page.id) |
359 | 359 |
assert resp.forms[0]['c%s-text' % cells[0].get_reference()].value == 'Hello world' |
... | ... | |
557 | 557 |
resp = app.get('/manage/pages/%s/' % page.id) |
558 | 558 |
data_add_url = [x for x in resp.html.find_all('option') if x.text == 'Text'][0].get('data-add-url') |
559 | 559 |
resp = app.get(data_add_url) |
560 |
assert resp.location.endswith('/manage/pages/%s/' % page.id) |
|
561 | 560 | |
562 | 561 |
cells = CellBase.get_cells(page_id=page.id) |
563 | 562 |
assert len(cells) == 1 |
564 | 563 |
assert isinstance(cells[0], TextCell) |
564 |
assert resp.location.endswith('/manage/pages/%s/#cell-%s' % (page.id, cells[0].get_reference())) |
|
565 | 565 | |
566 | 566 |
resp = app.get('/manage/pages/%s/' % page.id) |
567 | 567 |
resp.form['cdata_textcell-%s-text' % cells[0].id].value = 'Hello : World' |
... | ... | |
594 | 594 |
assert 'Foobar' in options |
595 | 595 |
data_add_url = [x for x in resp.html.find_all('option') if x.text == 'Foobar'][0].get('data-add-url') |
596 | 596 |
resp = app.get(data_add_url) |
597 |
assert resp.location.endswith('/manage/pages/%s/' % page.id) |
|
598 | 597 | |
599 | 598 |
cells = CellBase.get_cells(page_id=page.id) |
600 | 599 |
assert len(cells) == 1 |
601 | 600 |
assert isinstance(cells[0], ConfigJsonCell) |
602 | 601 |
assert cells[0].key == 'test-config-json-cell' |
602 |
assert resp.location.endswith('/manage/pages/%s/#cell-%s' % (page.id, cells[0].get_reference())) |
|
603 | 603 | |
604 | 604 |
resp = app.get('/manage/pages/%s/' % page.id) |
605 | 605 |
assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.text |
... | ... | |
641 | 641 |
resp.form['c%s-test3' % cells[0].get_reference()].value = 'Hello again' |
642 | 642 |
resp = resp.form.submit() |
643 | 643 |
assert resp.status_int == 302 |
644 |
assert resp.location.endswith('/manage/pages/%s/' % page.id)
|
|
644 |
assert resp.location.endswith('/manage/pages/%s/#cell-%s' % (page.id, cells[0].get_reference()))
|
|
645 | 645 | |
646 | 646 |
resp = app.get('/manage/pages/%s/' % page.id) |
647 | 647 |
assert resp.form['c%s-test' % cells[0].get_reference()].value == 'Hello world' |
648 |
- |