diff --git a/billard/templates/billard/accounting.html b/billard/templates/billard/accounting.html index b6dedd1..207b502 100644 --- a/billard/templates/billard/accounting.html +++ b/billard/templates/billard/accounting.html @@ -1,12 +1,14 @@ {% extends 'billard/base.html' %} {% load display_client %} -{% block title %}Accounting Data{% endblock %} +{% block title %}Abrechnung{% endblock %} {% block content %} + {{ pk }} + @@ -26,7 +28,7 @@ {% endfor %}
Start-Datum:
-
+ {% csrf_token %} diff --git a/billard/templates/billard/base.html b/billard/templates/billard/base.html index dded387..5fb9fa6 100644 --- a/billard/templates/billard/base.html +++ b/billard/templates/billard/base.html @@ -5,7 +5,7 @@ - {% block title %}TITLE SETZEN{% endblock %} + carom - {% block title %}TITLE SETZEN{% endblock %} {% block header %} diff --git a/billard/urls.py b/billard/urls.py index 13616de..f06ab1c 100644 --- a/billard/urls.py +++ b/billard/urls.py @@ -14,11 +14,13 @@ urlpatterns = [ url(r'^(?P[0-9]+)/$', login_required(views.LocationDetailView.as_view()), name='location_detail'), # ex. /billard/1/accounting/ url(r'^(?P[0-9]+)/accounting/$', views.AccountingView.as_view(), name='accounting_detail'), - + # ex. /billard/1/accounting/confirm + url(r'^(?P[0-9]+)/accounting/confirm/$', views.accounting_confirm, name='accounting_detail_confirm'), + # rest api + url(r'api/v1/', include(router.urls)), #url(r'^$', views.index, name='carom_index'), #url(r'^(?P[0-9]+)/$', views.LocationDataDetailView.as_view(), name='detail'), - #url(r'api/v1/', include(router.urls)), #url(r'process_locationdata', views.process_locationdata, name='process_locationdata'), #url(r'^accounting/$', views.AccountingView.as_view(), name='accounting'), url(r'^accountmodal$', views.accountmodalview, name='accountmodal'), diff --git a/billard/views.py b/billard/views.py index 8c15f71..1040b72 100644 --- a/billard/views.py +++ b/billard/views.py @@ -1,3 +1,5 @@ +import ast + from billard.serializers import LocationDataSerializer from billard.models import LocationData, Location, Client, Accounting from billard.tasks import process_location_data @@ -39,7 +41,7 @@ class AccountingView(generic.ListView): context_object_name = 'accounting' def get_queryset(self): - return Accounting.objects.filter(billed=False).exclude(time_to__isnull=True) + return Accounting.objects.filter(billed=False).exclude(time_to__isnull=True).order_by('time_from') def dispatch(self, request, *args, **kwargs): result = super(AccountingView, self).dispatch(request, *args, **kwargs) @@ -52,6 +54,19 @@ class AccountingView(generic.ListView): return result +@login_required +@permission_required('billard.change_accounting') +def accounting_confirm(request, pk): + if request.method == 'POST': + if 'accountings' in request.POST: + acc_ids = ast.literal_eval(request.POST['accountings']) + if len(acc_ids) > 0: + Accounting.objects.filter(id__in=acc_ids).update(billed=True) + Accounting.objects.filter(id__in=acc_ids).update(account_user=request.user.username) + resp = redirect('billard:accounting_detail', pk=pk) + return resp + + # TODO OLD CODE, CLEAN UP @@ -97,7 +112,7 @@ def accountmodalconfirmview(request, pk): account = Accounting.objects.get(pk=pk) account.reporter_uuid = None account.save() - return redirect('carom_index') + return redirect('billard:location_detail', pk=pk) @login_required