diff --git a/project/docs/urls.py b/project/docs/urls.py index e2f8d4b..38cb7a1 100644 --- a/project/docs/urls.py +++ b/project/docs/urls.py @@ -2,7 +2,7 @@ from django.conf.urls import * from .views import (InvoiceViews, AktRabotViews, AktSverkiViews, DoverViews, PlatejkaViews, NakladnViews, FakturaViews) -from .views import getview, index, get_pair, get_invoices, get_tbl_items, get_client_by_invoice +from .views import getview, index, get_pair, get_invoices, get_tbl_items, get_client_by_invoice, toggle_doc_status urlpatterns = patterns('docs.views', @@ -65,6 +65,7 @@ for name, klass in klasses: url(r'^ajax_get_invoices/(?P\d+)/$', get_invoices, name='ajax_get_invoices'), url(r'^ajax_get_tbl_items/(?P\d+)/$', get_tbl_items, name='ajax_get_tbl_items'), url(r'^ajax_get_client_by_invoice/(?P\d+)/$', get_client_by_invoice, name='ajax_get_client_by_invoice'), + url(r'^ajax_toggle_doc_status/(?P\w+)/(?P\d+)/(?P\w+)/$', toggle_doc_status, name='ajax_get_client_by_invoice'), ) # доп. обработчики: создать Документ по Счету diff --git a/project/docs/views/__init__.py b/project/docs/views/__init__.py index 18ba6f6..9498efa 100644 --- a/project/docs/views/__init__.py +++ b/project/docs/views/__init__.py @@ -11,7 +11,7 @@ from .dover import DoverViews from .platejka import PlatejkaViews from .nakladn import NakladnViews from .faktura import FakturaViews -from .ajax import get_pair, get_invoices, get_tbl_items, get_client_by_invoice +from .ajax import get_pair, get_invoices, get_tbl_items, get_client_by_invoice, toggle_doc_status #from .sfv import SfvViews diff --git a/project/docs/views/ajax.py b/project/docs/views/ajax.py index 564ace3..ceecbab 100644 --- a/project/docs/views/ajax.py +++ b/project/docs/views/ajax.py @@ -55,4 +55,25 @@ def get_client_by_invoice(request, invoice_id): invoice = Invoice.objects.get(pk=invoice_id) - return HttpResponse(json.dumps([invoice.client.id,]), mimetype='application/json') \ No newline at end of file + return HttpResponse(json.dumps([invoice.client.id,]), mimetype='application/json') + + +def toggle_doc_status(request, doc_type, doc_id, doc_attr): + if not request.is_ajax() or request.method != 'POST': + return HttpResponseBadRequest() + + model_ = get_model('docs', doc_type) + doc = model_.objects.get(pk=doc_id) + choices_ = doc._meta.get_field_by_name(doc_attr)[0].get_choices() + choices = [i[0] for i in choices_[1:]] + prev_val = getattr(doc, doc_attr) + try: + next_index = choices.index(prev_val) + 1 + next_val = choices[next_index] + except: + next_val = choices[0] + setattr(doc, doc_attr, next_val) + doc.save() + next_text = dict(choices_)[next_val] + + return HttpResponse(json.dumps([next_text, next_val]), mimetype='application/json') diff --git a/project/myauth/views.py b/project/myauth/views.py index 4c95998..7606a5f 100644 --- a/project/myauth/views.py +++ b/project/myauth/views.py @@ -209,7 +209,7 @@ def login(request): form_class = forms.LoginForm form_prefix = 'login' template_name = 'myauth/login.html' - success_url = 'customer_profile_view' + success_url = 'customer_index' if request.method == 'POST': form = form_class(data=request.POST, prefix=form_prefix) diff --git a/project/static/css/style.css b/project/static/css/style.css index 0509c12..b0e951d 100644 --- a/project/static/css/style.css +++ b/project/static/css/style.css @@ -216,3 +216,6 @@ div.blockMsg { width: 100%; height: 100%; top: 0; left: 0; text-align: center; } #menu ul li {display:inline;} .preview {width:780px;height:500px;overflow:scroll;float:left;} .list-col2 {float: left; width: 180px; margin-left: 16px; padding: 0 10px 10px 10px; border-left: solid 1px #797979;} +.doc_status1, .doc_statusFalse, .doc_statusfalse {color:red;} +.doc_status3, .doc_statusTrue, .doc_statustrue {color:green;} +.doc_status2 {color:blue;} diff --git a/project/static/js/docs/list.panels.js b/project/static/js/docs/list.panels.js index b865914..2be3eb8 100644 --- a/project/static/js/docs/list.panels.js +++ b/project/static/js/docs/list.panels.js @@ -6,7 +6,7 @@ $(document).ready(function() { var doc_rows = $('tr.doc-row', table); var panels = $('.doc-panel'); var row_pointer = $('#row_pointer'); - + // on mouse entering thead - hide pointer and panels, and show filters $('thead', table).mouseenter(function() { row_pointer.hide(); @@ -54,4 +54,30 @@ $(document).ready(function() { var panel_id = doc_panel_id_prefix + doc_id; return $('#'+panel_id); } + + $('.toggle_doc_status').on('click', function(e){ + e.preventDefault(); + $this = $(this); + var doc_id = $this.closest("tr").data("id") + var doc_type = $this.data("doctype") + var doc_attr = $this.data("attr") + $.post('/my/docs/ajax_toggle_doc_status/' + doc_type + '/' + doc_id + '/' + doc_attr + '/', function(data){ + $this.text(data[0]); + $this.removeClass('doc_status1'); + $this.removeClass('doc_status2'); + $this.removeClass('doc_status3'); + $this.removeClass('doc_statustrue'); + $this.removeClass('doc_statusTrue'); + $this.removeClass('doc_statusFalse'); + $this.removeClass('doc_statusfalse'); + $this.addClass('doc_status' + data[1]); + }) + + }); + + $('.toggle_invoice_closed').on('click', function(e){ + e.preventDefault(); + alert(1); + }); + }); diff --git a/project/templates/docs/_base/base_list.html b/project/templates/docs/_base/base_list.html index 6f0b2a5..fb831cb 100644 --- a/project/templates/docs/_base/base_list.html +++ b/project/templates/docs/_base/base_list.html @@ -45,6 +45,7 @@ {% url url_prefix|add:'copy' id=obj.pk as url_copy %} {% url url_prefix|add:'delete' id=obj.pk as url_delete %} {% url url_prefix|add:'email' id=obj.pk as url_email %} + {% url url_prefix|add:'img' id=obj.pk as url_img %} {% url url_prefix|add:'pdf' id=obj.pk as url_pdf %} {% url url_prefix|add:'xls' id=obj.pk as url_xls %} @@ -52,9 +53,9 @@ {% 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 %} - + {% block table_obj_cells %} - {{ obj.doc_date|date:"d.m.Y" }} + {{ obj.doc_date|date:"d.m.Y" }} {{ obj.doc_num }} {{ obj.client.name }} {{ obj.doc_sum|default:"---" }} diff --git a/project/templates/docs/aktrabot/list.html b/project/templates/docs/aktrabot/list.html index 80f5ff2..7c32050 100644 --- a/project/templates/docs/aktrabot/list.html +++ b/project/templates/docs/aktrabot/list.html @@ -25,7 +25,7 @@ {{ obj.invoice.doc_num }} {{ obj.client.name }} {{ obj.doc_sum|default:"---" }} - {{ obj.get_signed_status_display }} + {{ obj.get_signed_status_display }} {% endblock %} {% block panel_copy %} diff --git a/project/templates/docs/aktsverki/list.html b/project/templates/docs/aktsverki/list.html index 052c67d..5ae37d6 100644 --- a/project/templates/docs/aktsverki/list.html +++ b/project/templates/docs/aktsverki/list.html @@ -19,7 +19,7 @@ {{ obj.doc_num }} {{ obj.client.name }} {{ obj.total_saldo|default:"---" }} - {{ obj.get_signed_status_display }} + {{ obj.get_signed_status_display }} {% endblock %} {# важно! tfoot (также как и thead), нужен в js для показа/скрытия боковой панели #} diff --git a/project/templates/docs/faktura/list.html b/project/templates/docs/faktura/list.html index 2ace6cf..cc939d6 100644 --- a/project/templates/docs/faktura/list.html +++ b/project/templates/docs/faktura/list.html @@ -25,7 +25,7 @@ {{ obj.invoice.doc_num }} {{ obj.client.name }} {{ obj.doc_sum|default:"---" }} - {{ obj.get_signed_status_display }} + {{ obj.get_signed_status_display }} {% endblock %} {% block no-docs-create-new %} diff --git a/project/templates/docs/invoice/list.html b/project/templates/docs/invoice/list.html index 9ddfebe..2cb5dad 100644 --- a/project/templates/docs/invoice/list.html +++ b/project/templates/docs/invoice/list.html @@ -6,8 +6,8 @@ {% endblock %} {% block table_obj_cells_extra %} - {{ obj.get_paid_status_display }} - {{ obj.get_closed_status_display }} + {{ obj.get_paid_status_display }} + {{ obj.get_closed_status_display }} {% endblock %} {% block panel_copy_extra %} diff --git a/project/templates/docs/nakladn/list.html b/project/templates/docs/nakladn/list.html index 2ace6cf..106fb2c 100644 --- a/project/templates/docs/nakladn/list.html +++ b/project/templates/docs/nakladn/list.html @@ -25,7 +25,7 @@ {{ obj.invoice.doc_num }} {{ obj.client.name }} {{ obj.doc_sum|default:"---" }} - {{ obj.get_signed_status_display }} + {{ obj.get_signed_status_display }} {% endblock %} {% block no-docs-create-new %}