manager: always update cell form after a click on the save button (#9215)
This commit is contained in:
parent
1c46784055
commit
b06b2da707
|
@ -90,13 +90,16 @@ $(function() {
|
||||||
data: $form.serialize(),
|
data: $form.serialize(),
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
beforeSend: function() { $button.attr('disabled', 'disabled'); },
|
beforeSend: function() { $button.attr('disabled', 'disabled'); },
|
||||||
success: function() {
|
success: function(data) {
|
||||||
$button.attr('disabled', null);
|
$button.attr('disabled', null);
|
||||||
$.getJSON($form.data('label-url'),
|
$button.parents('form').find('div.cell-form').html(data);
|
||||||
|
if (data.indexOf('class="errorlist"') == -1) {
|
||||||
|
$.getJSON($form.data('label-url'),
|
||||||
function(data) {
|
function(data) {
|
||||||
$form.parents('div.cell').find('.additional-label i').text(data['label']);
|
$form.parents('div.cell').find('.additional-label i').text(data['label']);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
{{form.as_p}}
|
|
@ -3,7 +3,9 @@
|
||||||
<form action="{{ url }}" method="post" data-label-url="{% url 'combo-manager-page-get-additional-label' page_pk=page.id cell_reference=cell.get_reference %}">
|
<form action="{{ url }}" method="post" data-label-url="{% url 'combo-manager-page-get-additional-label' page_pk=page.id cell_reference=cell.get_reference %}">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if form %}
|
{% if form %}
|
||||||
|
<div class="cell-form">
|
||||||
{{ form.as_p }}
|
{{ form.as_p }}
|
||||||
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>{% trans "There are no options for this cell." %}</p>
|
<p>{% trans "There are no options for this cell." %}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -185,6 +185,8 @@ page_add_cell = PageAddCellView.as_view()
|
||||||
|
|
||||||
|
|
||||||
class PageEditCellView(UpdateView):
|
class PageEditCellView(UpdateView):
|
||||||
|
template_name = 'combo/ajax_cell_form.html'
|
||||||
|
|
||||||
def get_object(self, queryset=None):
|
def get_object(self, queryset=None):
|
||||||
page_pk = self.kwargs.get('page_pk')
|
page_pk = self.kwargs.get('page_pk')
|
||||||
cell_reference = self.kwargs.get('cell_reference')
|
cell_reference = self.kwargs.get('cell_reference')
|
||||||
|
@ -202,6 +204,12 @@ class PageEditCellView(UpdateView):
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return reverse('combo-manager-page-view', kwargs={'pk': self.kwargs.get('page_pk')})
|
return reverse('combo-manager-page-view', kwargs={'pk': self.kwargs.get('page_pk')})
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
if self.request.is_ajax():
|
||||||
|
self.object = form.save()
|
||||||
|
return self.form_invalid(form)
|
||||||
|
return super(PageEditCellView, self).form_valid(form)
|
||||||
|
|
||||||
page_edit_cell = PageEditCellView.as_view()
|
page_edit_cell = PageEditCellView.as_view()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -101,11 +101,23 @@ def test_add_edit_cell(admin_user):
|
||||||
assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.body
|
assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.body
|
||||||
resp.forms[0]['c%s-text' % cells[0].get_reference()].value = 'Hello world'
|
resp.forms[0]['c%s-text' % cells[0].get_reference()].value = 'Hello world'
|
||||||
resp = resp.forms[0].submit()
|
resp = resp.forms[0].submit()
|
||||||
|
assert resp.status_int == 302
|
||||||
assert resp.location == 'http://localhost:80/manage/pages/1/'
|
assert resp.location == 'http://localhost:80/manage/pages/1/'
|
||||||
|
|
||||||
resp = app.get('/manage/pages/%s/' % page.id)
|
resp = app.get('/manage/pages/%s/' % page.id)
|
||||||
assert resp.forms[0]['c%s-text' % cells[0].get_reference()].value == 'Hello world'
|
assert resp.forms[0]['c%s-text' % cells[0].get_reference()].value == 'Hello world'
|
||||||
|
|
||||||
|
resp = app.get('/manage/pages/%s/' % page.id)
|
||||||
|
assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.body
|
||||||
|
resp.forms[0]['c%s-text' % cells[0].get_reference()].value = 'World Hello'
|
||||||
|
resp = resp.forms[0].submit(xhr=True)
|
||||||
|
assert resp.status_int == 200
|
||||||
|
assert resp.body.startswith('<p><label')
|
||||||
|
|
||||||
|
resp = app.get('/manage/pages/%s/' % page.id)
|
||||||
|
assert resp.forms[0]['c%s-text' % cells[0].get_reference()].value == 'World Hello'
|
||||||
|
|
||||||
|
|
||||||
def test_logout(admin_user):
|
def test_logout(admin_user):
|
||||||
app = login(TestApp(application))
|
app = login(TestApp(application))
|
||||||
app.get('/logout/')
|
app.get('/logout/')
|
||||||
|
|
Loading…
Reference in New Issue