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(),
|
||||
type: 'POST',
|
||||
beforeSend: function() { $button.attr('disabled', 'disabled'); },
|
||||
success: function() {
|
||||
success: function(data) {
|
||||
$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) {
|
||||
$form.parents('div.cell').find('.additional-label i').text(data['label']);
|
||||
}
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
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 %}">
|
||||
{% csrf_token %}
|
||||
{% if form %}
|
||||
<div class="cell-form">
|
||||
{{ form.as_p }}
|
||||
</div>
|
||||
{% else %}
|
||||
<p>{% trans "There are no options for this cell." %}</p>
|
||||
{% endif %}
|
||||
|
|
|
@ -185,6 +185,8 @@ page_add_cell = PageAddCellView.as_view()
|
|||
|
||||
|
||||
class PageEditCellView(UpdateView):
|
||||
template_name = 'combo/ajax_cell_form.html'
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
page_pk = self.kwargs.get('page_pk')
|
||||
cell_reference = self.kwargs.get('cell_reference')
|
||||
|
@ -202,6 +204,12 @@ class PageEditCellView(UpdateView):
|
|||
def get_success_url(self):
|
||||
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()
|
||||
|
||||
|
||||
|
|
|
@ -101,11 +101,23 @@ def test_add_edit_cell(admin_user):
|
|||
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 = resp.forms[0].submit()
|
||||
assert resp.status_int == 302
|
||||
assert resp.location == 'http://localhost:80/manage/pages/1/'
|
||||
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
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):
|
||||
app = login(TestApp(application))
|
||||
app.get('/logout/')
|
||||
|
|
Loading…
Reference in New Issue