delete doc with ajax

remotes/origin/yandex
Bachurin Sergey 12 years ago
parent 961af5c1c1
commit a126e13617
  1. 39
      project/docs/views/base_views.py
  2. 1
      project/static/js/commons.js
  3. 1
      project/static/js/docs/list.filters.js
  4. 31
      project/static/js/docs/list.panels.js
  5. 2
      project/templates/docs/_base/base_list.html
  6. 4
      project/templates/docs/stub_js.html

@ -322,21 +322,30 @@ class BaseViews(object):
@method_decorator(csrf_protect)
def delete(self, *args, **kwargs):
"""Удалить документ."""
if self.request.method == 'POST' and '_cancel' in self.request.POST:
return redirect(self.REDIRECT_AFTER_DELETE)
obj = self.get_obj(kwargs['id'])
if self.request.method == 'POST':
obj.delete()
return redirect(self.REDIRECT_AFTER_DELETE)
dictionary = {
'padeji': self.PADEJI,
'padeji_mnoj': self.PADEJI_MNOJ,
'obj': obj,
}
return render(self.request, self.TEMPLATE_DELETE, dictionary)
success = False
message = None
if self.request.is_ajax():
obj = self.get_obj(kwargs['id'])
del_num = obj.doc_num
del_id = obj.id
del_date = datetime.strftime(obj.doc_date, '%d.%m.%Y')
if self.request.method == 'POST':
obj.delete()
success = True
result = {'title': u'Удаление документа',
'msg': u'Удалён документ:<br /> %s%d от %s' % (self.PADEJI['imenit'], del_num, del_date),
'success': success,
'del_id': del_id,
}
return HttpResponse(json.dumps(result), mimetype='application/json')
#dictionary = {
# 'padeji': self.PADEJI,
# 'padeji_mnoj': self.PADEJI_MNOJ,
# 'obj': obj,
#}
#return render(self.request, self.TEMPLATE_DELETE, dictionary)
def prepare(self, obj, export_to=None):
"""Изменить/подмешать дополнительные поля к документу."""

@ -14,7 +14,6 @@ function fetch_data(url, async) {
'timeout': 30000,
'success': function (data) {
result = data;
//console.log('fetch_data = ', data);
}
});
return result;

@ -22,7 +22,6 @@ function reload_page_on_filter_change(filter) {
for (var i=0; i<params.length; i++) {
var param_name = params[i];
var param_value = params[param_name];
//console.log(params[i], params[params[i]]);
if (param_name && param_name !== name) // exclude itself and values with empty names
new_params += param_name + '=' + param_value + '&';
}

@ -73,12 +73,37 @@ $(document).ready(function() {
doc_rows_click.click(function(e){
e.preventDefault();
var link = $($(this).parent().find('a')[0]).attr('href');
console.log(link);
location.replace(link);
})
$('.toggle_invoice_closed').on('click', function(e){
$('a.doc.delete-link').on('click', function(e){
e.preventDefault();
alert(1);
var link = $(this).attr('href');
var dlg_msg = $('#dialog-message');
var docname = $($(this).closest('.doc-panel')[0]).data('docname');
dlg_msg.dialog({
title: 'Удалить документ?',
buttons:{'Да': function(){
$.post(link, function(data){
$('#doc_row_' + data['del_id']).remove();
dlg_msg.html(data['msg']);
dlg_msg.dialog({title: data['title'],
buttons: {
'Ok': function(e){
dlg_msg.dialog('close');
}
}
});
dlg_msg.dialog('open');
});
},
'Нет': function(){
dlg_msg.dialog('close');
}
}
}).html('Нажмите "Да", чтобы удалить документ:<br/>' + docname);
dlg_msg.dialog('open');
//dlg_msg.dialog({title: data.message['title']}).html(data.message['msg']);
});
});

@ -84,7 +84,7 @@
{% url 'docs_aktrabot_add_by_invoice' invoice_id=obj.pk as url_aktrabot_by_invoice %}
{% url 'docs_nakladn_add_by_invoice' invoice_id=obj.pk as url_nakladn_by_invoice %}
{% url 'docs_faktura_add_by_invoice' invoice_id=obj.pk as url_faktura_by_invoice %}
<div id="doc_panel_{{ obj.pk }}" class="doc-panel hidden" style="">
<div id="doc_panel_{{ obj.pk }}" class="doc-panel hidden" style="" data-docname='{{ padeji.imenit }} №{{ obj.docnum }} от {{ obj.doc_date }}'>
{% include "docs/parts/doc_actions.html" %}
{% block panel_copy %}
{% if template_create_docs%}

@ -60,8 +60,6 @@
});
$.get('/my/docs/ajax_get_client_by_invoice/' + invoice_id, function(data) {
var client = data[0];
console.log(data);
//$('#id_client').val(client);
$('#id_client_text').hide();
$('#id_client-deck').html('<span class="div hilight" data-value='+ data[0] +'><span class="remove div" style="display: inline;">X</span>' + data[1] + '</span>');
@ -95,7 +93,6 @@
//var sender_val = $('input:radio[name=sender_group]:checked', '#doc-form').val();
var toggle_sender = function(client_type) {
var sender_val = $('input:radio[name=' + client_type + '_group]:checked', '#doc-form').val();
console.log(sender_val);
if (sender_val == 'another') {
$('#' + client_type).show()
} else {
@ -104,7 +101,6 @@
}
$.each(['sender', 'receiver'], function(i, client_type){
console.log(client_type);
toggle_sender(client_type);
$('input:radio[name=' + client_type + '_group]').change(function(){
toggle_sender(client_type);

Loading…
Cancel
Save