reformat code

This commit is contained in:
Robert Einsle 2018-02-11 10:56:44 +01:00
parent 076808f183
commit d9d78a969f
43 changed files with 265 additions and 248 deletions

View File

@ -1,11 +1,10 @@
from django import forms
from django.conf.urls import url
from django.contrib import admin, messages
from django.core.exceptions import ValidationError
from django.shortcuts import redirect
from django.template.response import TemplateResponse
from .models import *
from django import forms
from django.core.exceptions import ValidationError
class LocationAdminForm(forms.ModelForm):
@ -26,7 +25,8 @@ class LocationAdminForm(forms.ModelForm):
class LocationAdmin(admin.ModelAdmin):
form = LocationAdminForm
list_display = ('code', 'name', 'city', 'happy_hour_start', 'happy_hour_end')
fields = ['users', 'code', 'happy_hour_start', 'happy_hour_end', 'name', 'street', 'plz', 'city', 'phone', 'email', 'url', ]
fields = ['users', 'code', 'happy_hour_start', 'happy_hour_end', 'name', 'street', 'plz', 'city', 'phone', 'email',
'url', ]
@admin.register(Client)
@ -40,13 +40,15 @@ class LocationDataAdmin(admin.ModelAdmin):
def get_urls(self):
urls = super().get_urls()
my_urls = [
url(r'^process_locationdata/$', self.admin_site.admin_view(self.process_locationdata), name='process_locationdata'),
url(r'^process_locationdata/$', self.admin_site.admin_view(self.process_locationdata),
name='process_locationdata'),
]
return my_urls + urls
def process_locationdata(self, request):
messages.success(request, 'Items processed.')
return redirect('admin:billard_locationdata_changelist')
list_display = ('client_id', 'desk_no', 'tst', 'on_off', 'processed', 'error_msg')
fields = ['client_id', 'desk_no', 'tst', 'on_off', 'processed', 'error_msg']

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [

View File

@ -7,7 +7,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('billard', '0001_initial'),

View File

@ -2,13 +2,13 @@
# Generated by Django 1.10.5 on 2017-02-04 05:48
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import uuid
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0002_location'),
]

View File

@ -2,12 +2,11 @@
# Generated by Django 1.10.5 on 2017-02-04 10:17
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0003_client'),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0004_accounting'),
]

View File

@ -2,14 +2,14 @@
# Generated by Django 1.10.5 on 2017-02-06 19:31
from __future__ import unicode_literals
import uuid
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
dependencies = [
('billard', '0005_auto_20170206_1926'),
]
@ -17,7 +17,8 @@ class Migration(migrations.Migration):
operations = [
migrations.AlterModelOptions(
name='accounting',
options={'ordering': ['-time_from'], 'verbose_name': 'Buchhaltungseintrag', 'verbose_name_plural': 'Buchhaltungseinträge'},
options={'ordering': ['-time_from'], 'verbose_name': 'Buchhaltungseintrag',
'verbose_name_plural': 'Buchhaltungseinträge'},
),
migrations.AlterModelOptions(
name='client',
@ -34,7 +35,8 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='accounting',
name='client',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='billard.Client', verbose_name='Client'),
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='billard.Client',
verbose_name='Client'),
),
migrations.AlterField(
model_name='accounting',
@ -59,7 +61,8 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='client',
name='location',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='billard.Location', verbose_name='Standort'),
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='billard.Location',
verbose_name='Standort'),
),
migrations.AlterField(
model_name='client',
@ -109,7 +112,8 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='location',
name='users',
field=models.ManyToManyField(related_name='locations', to=settings.AUTH_USER_MODEL, verbose_name='Benutzer'),
field=models.ManyToManyField(related_name='locations', to=settings.AUTH_USER_MODEL,
verbose_name='Benutzer'),
),
migrations.AlterField(
model_name='locationdata',

View File

@ -2,12 +2,11 @@
# Generated by Django 1.10.5 on 2017-02-10 18:30
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0006_auto_20170206_2031'),
]
@ -20,9 +19,12 @@ class Migration(migrations.Migration):
('desk_no', models.IntegerField(verbose_name='Tischnummer')),
('name', models.CharField(blank=True, max_length=32, null=True, verbose_name='Tischbezeichnung')),
('enabled', models.BooleanField(verbose_name='Tisch aktiv')),
('prize', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Normelpreis')),
('prize_hh', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Preis Happy Hour')),
('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='billard.Client', verbose_name='Client')),
('prize', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True,
verbose_name='Normelpreis')),
('prize_hh', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True,
verbose_name='Preis Happy Hour')),
('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='billard.Client',
verbose_name='Client')),
],
options={
'verbose_name_plural': 'Tische',

View File

@ -2,12 +2,11 @@
# Generated by Django 1.10.5 on 2017-02-10 19:47
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0007_desk'),
]
@ -48,6 +47,7 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='desk',
name='client',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='desks', to='billard.Client', verbose_name='Client'),
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='desks',
to='billard.Client', verbose_name='Client'),
),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('billard', '0008_auto_20170210_1947'),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('billard', '0009_auto_20170210_1955'),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0010_auto_20170210_2040'),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('billard', '0011_auto_20170210_2122'),
]

View File

@ -2,12 +2,11 @@
# Generated by Django 1.10.5 on 2017-02-11 09:03
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0012_auto_20170211_1003'),
]
@ -19,9 +18,11 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time_from', models.DateTimeField(verbose_name='Beginn')),
('time_to', models.DateTimeField(blank=True, null=True, verbose_name='Ende')),
('prize', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Preis')),
('prize',
models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Preis')),
('billed', models.BooleanField(default=False, verbose_name='Abgerechnet')),
('desk', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='billard.Desk', verbose_name='Tisch')),
('desk', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='billard.Desk',
verbose_name='Tisch')),
],
options={
'verbose_name_plural': 'Buchhaltungseinträge',

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0013_accounting'),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0014_auto_20170211_2008'),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0015_auto_20170222_1023'),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0016_auto_20170225_1822'),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0016_auto_20170225_1822'),
]

View File

@ -2,13 +2,12 @@
# Generated by Django 1.10.5 on 2017-03-02 20:58
from __future__ import unicode_literals
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('billard', '0017_accounting_reporter_uuid'),
@ -18,16 +17,20 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='accounting',
name='prize_hh',
field=models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Preis Happy Hour'),
field=models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True,
verbose_name='Preis Happy Hour'),
),
migrations.AddField(
model_name='accounting',
name='prize_normal',
field=models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='Preis Normalzeit'),
field=models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True,
verbose_name='Preis Normalzeit'),
),
migrations.AddField(
model_name='client',
name='report_user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='reporting_clients', to=settings.AUTH_USER_MODEL, verbose_name='Reporting Benutzer'),
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE,
related_name='reporting_clients', to=settings.AUTH_USER_MODEL,
verbose_name='Reporting Benutzer'),
),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('billard', '0018_auto_20170302_2058'),
('billard', '0017_auto_20170302_1610'),

View File

@ -4,6 +4,7 @@ from __future__ import unicode_literals
from django.db import migrations
def create_default_groups_permissions(apps, schema_editor):
# We can't import the Person model directly as it may be a newer
# version than this migration expects. We use the historical version.
@ -16,6 +17,7 @@ def create_default_groups_permissions(apps, schema_editor):
ag.save()
ag.permissions.add(Permission.objects.get(codename="change_accounting"))
def delete_default_groups_permissions(apps, schema_editor):
Group = apps.get_model("auth", "Group")
Group.objects.get(name='Location').delete()
@ -23,7 +25,6 @@ def delete_default_groups_permissions(apps, schema_editor):
class Migration(migrations.Migration):
dependencies = [
('billard', '0019_merge_20170310_1941'),
('sessions', '0001_initial'),

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0020_auto_20170410_1853'),
]

View File

@ -2,12 +2,11 @@
# Generated by Django 1.11 on 2017-04-27 08:35
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0021_accounting_account_user'),
]
@ -16,6 +15,7 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='client',
name='location',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='clients', to='billard.Location', verbose_name='Standort'),
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='clients',
to='billard.Location', verbose_name='Standort'),
),
]

View File

@ -6,7 +6,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('billard', '0022_auto_20170427_0835'),
]

View File

@ -1,12 +1,11 @@
# Generated by Django 2.0.2 on 2018-02-10 11:05
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('billard', '0023_accounting_account_tst'),
]
@ -15,21 +14,26 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='accounting',
name='desk',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='billard.Desk', verbose_name='Tisch'),
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='billard.Desk',
verbose_name='Tisch'),
),
migrations.AlterField(
model_name='client',
name='location',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='clients', to='billard.Location', verbose_name='Standort'),
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='clients',
to='billard.Location', verbose_name='Standort'),
),
migrations.AlterField(
model_name='client',
name='report_user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='reporting_clients', to=settings.AUTH_USER_MODEL, verbose_name='Reporting Benutzer'),
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING,
related_name='reporting_clients', to=settings.AUTH_USER_MODEL,
verbose_name='Reporting Benutzer'),
),
migrations.AlterField(
model_name='desk',
name='client',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='desks', to='billard.Client', verbose_name='Client'),
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='desks',
to='billard.Client', verbose_name='Client'),
),
]

View File

@ -1,8 +1,9 @@
import uuid
import logging
import uuid
from django.contrib.auth.models import User
from django.contrib.auth.models import User
from django.db import models
from django.contrib.auth.models import User
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
@ -49,7 +50,8 @@ class Location(models.Model):
class Client(models.Model):
uuid = models.UUIDField(unique=True, default=uuid.uuid4, verbose_name="Identifier")
location = models.ForeignKey(Location, related_name="clients", verbose_name="Standort", on_delete=models.DO_NOTHING)
report_user = models.ForeignKey(User, blank=True, null=True, verbose_name="Reporting Benutzer", related_name='reporting_clients', on_delete=models.DO_NOTHING)
report_user = models.ForeignKey(User, blank=True, null=True, verbose_name="Reporting Benutzer",
related_name='reporting_clients', on_delete=models.DO_NOTHING)
def __str__(self):
return '{}, {}'.format(self.location.name, self.uuid)
@ -83,8 +85,10 @@ class Accounting(models.Model):
prize = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True, verbose_name="Preis")
billed = models.BooleanField(default=False, verbose_name="Abgerechnet")
reporter_uuid = models.UUIDField(blank=True, null=True, verbose_name='Reporter UUID')
prize_normal = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True, verbose_name="Preis Normalzeit")
prize_hh = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True, verbose_name="Preis Happy Hour")
prize_normal = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True,
verbose_name="Preis Normalzeit")
prize_hh = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True,
verbose_name="Preis Happy Hour")
account_user = models.CharField(blank=True, null=True, max_length=128, verbose_name="Abr. Benutzer")
account_tst = models.DateTimeField(blank=True, null=True, verbose_name="Abr. TST")

View File

@ -1,6 +1,7 @@
from billard.models import LocationData
from rest_framework import serializers
from billard.models import LocationData
class LocationDataSerializer(serializers.HyperlinkedModelSerializer):
class Meta:

View File

@ -1,8 +1,8 @@
from __future__ import absolute_import, unicode_literals
import logging
import billard.utils as utils
import billard.utils as utils
from billard.models import LocationData, Client, Accounting
log = logging.getLogger(__name__)
@ -58,7 +58,8 @@ def process_location_data():
ld.delete()
else:
ld.processed = True
ld.error_msg = 'No existing accountings found. Stopp processing! {}, {}'.format(ld.client_id, ld.desk_no)
ld.error_msg = 'No existing accountings found. Stopp processing! {}, {}'.format(ld.client_id,
ld.desk_no)
ld.save()
log.error(ld.error_msg)
except:

View File

@ -1,10 +1,10 @@
{% extends "admin/change_list.html" %}
{% load i18n admin_urls static admin_list %}
{% block object-tools-items %}
<li>
<li>
<a href="{% url 'admin:process_locationdata' %}">
LD Verarbeiten
</a>
</li>
{{ block.super }}
</li>
{{ block.super }}
{% endblock %}

View File

@ -23,7 +23,7 @@
<th>Preis Happy Hour:</th>
<th>Preis gesamt:</th>
</tr>
{% for acc in accounting %}
{% for acc in accounting %}
<tr>
<td>{{ acc.time_from }}</td>
<td>{{ acc.time_to }}</td>
@ -31,11 +31,11 @@
<td>{{ acc.prize_hh }}</td>
<td>{{ acc.prize }}</td>
</tr>
{% endfor %}
{% endfor %}
</table>
<form action="confirm/" method="post" id="accounting">
{% csrf_token %}
{% csrf_token %}
<input type="hidden" name="location-selector" value="{{ location_id }}">
<input type="hidden" name="accountings" value="{{ acc_ids }}">
<button type="submit" class="btn btn-default">Abrechnen</button>

View File

@ -1,5 +1,5 @@
{% if accounts %}
<div id="accountsmodal" class="modal" tabindex="-1" role="dialog">
<div id="accountsmodal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
@ -28,9 +28,10 @@
</table>
</div>
<div class="modal-footer">
<a class="btn btn-default btn-primary" href="{% url 'billard:account_modal_confirm' pks=pks loc_pk=loc_pk %}">Schliessen</a>
<a class="btn btn-default btn-primary"
href="{% url 'billard:account_modal_confirm' pks=pks loc_pk=loc_pk %}">Schliessen</a>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</div><!-- /.modal -->
{% endif %}

View File

@ -4,24 +4,25 @@
{% block title %}Location Data{% endblock %}
{% block content %}
{% if not locations|length_is:"1" %}
{% if not locations|length_is:"1" %}
<form action="." method="post" id="location-form">
{% csrf_token %}
{% csrf_token %}
<div id="location-selector" class="alert">
<select class="form-control" form="location-form" name="location-selector" id="location-select">
{% for loc in locations %}
<option value="{{ loc.id }}"{% if loc.id == location_id %} selected{% endif %}>{{ loc.code }} - {{ loc.name }}</option>
{% endfor %}
{% for loc in locations %}
<option value="{{ loc.id }}"{% if loc.id == location_id %} selected{% endif %}>{{ loc.code }}
- {{ loc.name }}</option>
{% endfor %}
</select>
</div>
</form>
{% endif %}
{% endif %}
<div id="desk_data">
{% include 'billard/index_ajax.html' %}
{% include 'billard/index_ajax.html' %}
</div>
<div id="modal-wrapper">
</div>
@ -30,19 +31,19 @@
{% block js %}
<script type="text/javascript">
var interval;
$(document).ready(function() {
$.ajaxSetup({ cache: false });
$(document).ready(function () {
$.ajaxSetup({cache: false});
interval = window.setInterval(refresh_page, 1000);
});
});
function refresh_page() {
function refresh_page() {
$('#desk_data').load('#');
$('#modal-wrapper').load('{% url 'accountmodal' %}', function() {
if ( $('#accountsmodal').length ) {
$('#modal-wrapper').load('{% url 'accountmodal' %}', function () {
if ($('#accountsmodal').length) {
window.clearInterval(interval);
$('#accountsmodal').modal('show');
}
});
}
</script>
}
</script>
{% endblock %}

View File

@ -1,10 +1,10 @@
{% load display_client %}
{% if clients %}
{% for cli in clients %}
{% for i in range %} {{ cli|display_client:i }} {% endfor %}
{% endfor %}
{% for cli in clients %}
{% for i in range %} {{ cli|display_client:i }} {% endfor %}
{% endfor %}
{% else %}
<div class="col-md-12">
<div class="col-md-12">
<div class="col-md-12 alert alert-danger">Keine Tische angelegt!</div>
</div>
</div>
{% endif %}

View File

@ -1,12 +1,12 @@
{% load display_client %}
{% if location.clients.all %}
{% for cli in location.clients.all %}
{% for i in "12345678" %}
{% for cli in location.clients.all %}
{% for i in "12345678" %}
{{ cli|display_client:i }}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
{% else %}
<div class="col">
<div class="col">
<div class="alert alert-danger">Keine Tische angelegt!</div>
</div>
</div>
{% endif %}

View File

@ -8,7 +8,7 @@
{% block content %}
{% if location_list %}
{% if location_list %}
<h2>Bitte Standort auswählen:</h2>
<table class="table table-hover">
<tr>
@ -17,25 +17,27 @@
<th>Strasse</th>
<th>Plz</th>
<th>Ort</th>
{% if perms.billard.change_accounting %}
{% if perms.billard.change_accounting %}
<th>Accounting</th>
{% endif %}
{% endif %}
</tr>
{% for loc in location_list %}
{% for loc in location_list %}
<tr>
<td><a href="{% url 'billard:location_detail' loc.id %}" class="btn btn-outline-primary btn-sm">{{ loc.code|default_if_none:"" }}</a></td>
<td><a href="{% url 'billard:location_detail' loc.id %}"
class="btn btn-outline-primary btn-sm">{{ loc.code|default_if_none:"" }}</a></td>
<td>{{ loc.name|default_if_none:"" }}</td>
<td>{{ loc.street|default_if_none:"" }}</td>
<td>{{ loc.plz|default_if_none:"" }}</td>
<td>{{ loc.city|default_if_none:"" }}</td>
{% if perms.billard.change_accounting %}
<td><a href="{% url 'billard:accounting_detail' loc.id %}" class="btn btn-outline-danger btn-sm">Abrechnen</a></td>
{% endif %}
{% if perms.billard.change_accounting %}
<td><a href="{% url 'billard:accounting_detail' loc.id %}"
class="btn btn-outline-danger btn-sm">Abrechnen</a></td>
{% endif %}
</tr>
{% endfor %}
{% endfor %}
</table>
{% else %}
{% else %}
<p>Keine Standorte Zugeordnet.</p>
{% endif %}
{% endif %}
{% endblock %}

View File

@ -8,8 +8,10 @@
{% block js %}
<script type="text/javascript">
$( document ).ready(function() {
setInterval(function(){$( "#content" ).load( "#")},1000);
});
</script>
$(document).ready(function () {
setInterval(function () {
$("#content").load("#")
}, 1000);
});
</script>
{% endblock %}

View File

@ -3,13 +3,15 @@
{% block title %}Location Data{% endblock %}
{% block content %}
{% include 'billard/locationdata_list_ajax.html' %}
{% include 'billard/locationdata_list_ajax.html' %}
{% endblock %}
{% block js %}
<script type="text/javascript">
$( document ).ready(function() {
setInterval(function(){$( "#content" ).load( "#")},1000);
});
</script>
$(document).ready(function () {
setInterval(function () {
$("#content").load("#")
}, 1000);
});
</script>
{% endblock %}

View File

@ -10,7 +10,7 @@
</select>
</div>
{% if object_list %}
{% if object_list %}
<h1>Location Data</h1>
<table class="table table-hover">
<tr>
@ -34,9 +34,9 @@
</tr>
{% endfor %}
</table>
{% else %}
{% else %}
<p>No data available.</p>
{% endif %}
{% endif %}
{% endblock %}

View File

@ -1,7 +1,9 @@
from datetime import datetime
from django import template
from django.utils.html import format_html
from billard import utils
from datetime import datetime
register = template.Library()
@ -36,15 +38,15 @@ def display_client(client, desk_no):
html += ' <div class="table-info alert {}">\n'.format(alert)
html += ' <h4 style="text-align: center">({}) {}</h4>\n'.format(desk_no, desk.name)
if loc.happy_hour_start is not None and desk.prize_hh is not None:
html += ' <h6 style="text-align: center">Preis: {:.2f} € / Stunde | {} - {}: {:.2f} / € Stunde</h6>\n'\
html += ' <h6 style="text-align: center">Preis: {:.2f} € / Stunde | {} - {}: {:.2f} / € Stunde</h6>\n' \
.format(
desk.prize,
loc.happy_hour_start.strftime('%H:%M'),
loc.happy_hour_end.strftime('%H:%M'),
desk.prize_hh,)
desk.prize_hh, )
else:
html += ' <h6 style="text-align: center">Preis: {0:.2f} / Stunde</h6>\n'.format(
desk.prize,)
desk.prize, )
if len(acc) > 0:
html += ' <table class="table">\n'
for a in acc:
@ -52,7 +54,7 @@ def display_client(client, desk_no):
html += ' <td>{}</td>\n'.format(a.time_from.strftime('%d.%m.%Y %H:%M:%S'))
html += ' <td>{}</td>\n'.format(
(a.time_to.strftime('%d.%m.%Y %H:%M:%S') if a.time_to is not None else ''))
html += ' <td style="text-align: center;">{}</td>\n'\
html += ' <td style="text-align: center;">{}</td>\n' \
.format((a.prize if a.prize is not None else ''))
html += ' <tr>\n'
html += ' <tr>\n'

View File

@ -38,7 +38,7 @@ class PrizeCalculationTestCase(TestCase):
class PrizeGetTestCase(TestCase):
def get_prize_for(self, start, end, pph=0, hh_start=None, hh_end=None, pphh=0, expected=(0,0,0)):
def get_prize_for(self, start, end, pph=0, hh_start=None, hh_end=None, pphh=0, expected=(0, 0, 0)):
self.assertEqual(get_prize_for(start, end, pph, hh_start, hh_end, pphh), expected)
def test_gpf_1(self):

View File

@ -1,4 +1,4 @@
from datetime import datetime, date, time, timedelta
from datetime import datetime, date, timedelta
def get_prize_for(start, end, pph=0, hh_start=None, hh_end=None, pphh=0):

View File

@ -1,18 +1,18 @@
import ast
import logging
from billard.serializers import LocationDataSerializer
from billard.models import LocationData, Location, Client, Accounting
from billard.tasks import process_location_data
from rest_framework import viewsets
from django.shortcuts import render, redirect
from django.views import generic
from django.contrib.auth.decorators import login_required, permission_required
from django.db.models import Sum
from django.http import HttpResponse
from django.utils.decorators import method_decorator
from django.shortcuts import render, redirect
from django.utils import timezone
from django.utils.decorators import method_decorator
from django.views import generic
from rest_framework import viewsets
from billard.models import LocationData, Location, Client, Accounting
from billard.serializers import LocationDataSerializer
from billard.tasks import process_location_data
log = logging.getLogger(__name__)
@ -47,7 +47,7 @@ class AccountingView(generic.ListView):
context_object_name = 'accounting'
def get_queryset(self):
return Accounting.objects.filter(billed=False).filter(desk__client__location_id=self.kwargs['pk'])\
return Accounting.objects.filter(billed=False).filter(desk__client__location_id=self.kwargs['pk']) \
.exclude(time_to__isnull=True).order_by('time_from')
def dispatch(self, request, *args, **kwargs):