Skip to content
Snippets Groups Projects
Commit 97dd1d2c authored by Christian Dresen's avatar Christian Dresen
Browse files

no message

parent 8d22bfd7
No related branches found
No related tags found
No related merge requests found
Showing
with 521 additions and 279 deletions
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" autoUpload="Always" serverName="warpauth">
<component name="PublishConfigData" autoUpload="Always" serverName="s1WARP">
<serverData>
<paths name="warpauth">
<paths name="s1WARP">
<serverdata>
<mappings>
<mapping deploy="warpauth" local="$PROJECT_DIR$" web="/" />
<mapping deploy="/warpauth" local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
......
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyInterpreterInspection" enabled="false" level="WARNING" enabled_by_default="false" />
</profile>
</component>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Project Default" />
<option name="USE_PROJECT_PROFILE" value="true" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
This diff is collapsed.
from django.contrib import admin
from warpauthWeb.models import PizzaService
# Register your models here.
@admin.register(PizzaService)
class PizzaService_admin(admin.ModelAdmin):
pass
from django.db import models
from ldapdb.models.fields import CharField, IntegerField, ListField
import ldapdb.models
from django.forms import ModelForm, HiddenInput
from django import forms
from django.utils import timezone
class PasswordResetToken(models.Model):
user = models.CharField(max_length=100)
......@@ -8,6 +11,54 @@ class PasswordResetToken(models.Model):
hash = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
class PizzaService(models.Model):
name = models.CharField(max_length=250)
phone = models.CharField(max_length=250)
def __str__(self):
return self.name
class FoodSheet(models.Model):
date = models.DateTimeField(default=timezone.now)
pizza_service = models.ForeignKey(PizzaService, on_delete=models.CASCADE)
estimated_order_time = models.DateTimeField()
closed = models.BooleanField(default=False)
order_user = models.CharField(max_length=100, null=True)
order_time = models.DateTimeField(null=True)
class FoodOrder(models.Model):
sheet = models.ForeignKey(FoodSheet, on_delete=models.CASCADE)
user = models.CharField(max_length=100,null=True)
article = models.CharField(max_length=100, null=True)
size = models.CharField(max_length=100, null=True)
comment = models.CharField(max_length=100, null=True)
price = models.FloatField()
paid = models.BooleanField()
class FoodSheetForm(ModelForm):
class Meta:
model = FoodSheet
fields = ['pizza_service', 'estimated_order_time']
class FoodOrderForm(ModelForm):
comment = forms.CharField(required=False)
paid = forms.CharField(required=False)
class Meta:
model = FoodOrder
fields = ['sheet', 'user', 'article', 'size', 'comment', 'price', 'paid']
widgets = {'sheet': HiddenInput(), 'user': HiddenInput()}
class PizzaServiceForm(ModelForm):
class Meta:
model = PizzaService
fields = ['name', 'phone']
# LDAP
......@@ -37,4 +88,6 @@ class LdapGroup(ldapdb.models.Model):
return self.name
def __unicode__(self):
return self.name
\ No newline at end of file
return self.name
......@@ -3,4 +3,5 @@
{% load i18n %}
{% block content %}
{% endblock %}
\ No newline at end of file
<link rel="stylesheet" href="{{ MEDIA_URL }}/media/css/bootstrap.min.css" />
<script type="text/javascript" src="{{ MEDIA_URL }}/media/js/jquery.js" />
<script src="/media/js/bootstrap.js" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<html>
<head>
<link rel="stylesheet" href="{{ MEDIA_URL }}/media/css/bootstrap.min.css" />
<script type="text/javascript" src="{{ MEDIA_URL }}/media/js/jquery.js" ></script>
<script src="/media/js/bootstrap.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.table-scrollable{
overflow: auto;
}
</style>
<style>
.table-scrollable{
overflow: auto;
}
</style>
<script>jQuery(function($) {
$("tr[data-link]").click(function() {
window.location = this.dataset.link
});
})
</script>
{% if body == "login" %}
<div class="wrap" style="background-color: #eee; height: 100%">
{% endif %}
<header>
<nav class="navbar navbar-inverse img-rounded">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">
<img style="display: inline; text-align:left" height="25" width="25" src='/media/warpzone_logo.png'/>&nbsp;&nbsp;WarpAuth
</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
{% if request.user.is_authenticated %}
<ul class="nav navbar-nav">
<script>jQuery(function($) {
$("tr[data-link]").click(function() {
window.location = this.dataset.link
});
})
</script>
</head>
<body>
{% if body == "login" %}
<div class="wrap" style="background-color: #eee; height: 100%">
{% endif %}
<header>
<nav class="navbar navbar-inverse img-rounded">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">
<img style="display: inline; text-align:left" height="25" width="25" src='/media/warpzone_logo.png'/>&nbsp;&nbsp;WarpAuth
</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
{% if request.user.is_authenticated %}
<ul class="nav navbar-nav">
{% for page in pages %}
{% if page.name != "Logout" and page.name != "Admin" and page.name != "Configuration" %}
<li><a href="/{{ page.link }}">{{ page.name}}</a></li>
{% endif %}
{% endfor %}
</ul>
{% for page in pages %}
{% if page.name != "Logout" and page.name != "Admin" and page.name != "Configuration" %}
<li><a href="/{{ page.link }}">{{ page.name}}</a></li>
{% endif %}
{% endfor %}
</ul>
{% for page in pages %}
{% if page.name == "Logout" %}
<ul class="nav navbar-nav navbar-right"><li><a href="/{{ page.link }}">{{ page.name}}</a></li></ul>
{% elif page.name == "Admin" and user.is_superuser %}
<ul class="nav navbar-nav navbar-right">
<li>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{ page.name}}<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/{{ page.link }}_daemon/">Daemon</a></li>
<li><a href="/{{ page.link }}_services/">Services</a></li>
<li><a href="/{{ page.link }}_regex/">Regex</a></li>
{% if page.name == "Logout" %}
<ul class="nav navbar-nav navbar-right"><li><a href="/{{ page.link }}">{{ page.name}}</a></li></ul>
{% elif page.name == "Admin" and user.is_superuser %}
<ul class="nav navbar-nav navbar-right">
<li>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{ page.name}}<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/{{ page.link }}_daemon/">Daemon</a></li>
<li><a href="/{{ page.link }}_services/">Services</a></li>
<li><a href="/{{ page.link }}_regex/">Regex</a></li>
</ul>
</li>
</ul>
</li>
</ul>
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
</div>
</div>
</div>
</nav>
</header>
{% if body != "login" %}
<div class="container">
{% endif %}
</nav>
</header>
<div class="container">
{% block content %}
{% endblock %}
<br><br>
</div>
<footer>
<div class="footer navbar-fixed-bottom img-rounded" style="background-color: #f5f5f5; border-top: solid; border-width: thin; border-color: grey">
<div class="container">
<div class="container">
<div class="navbar-header">
<p class="text-muted"><small>Warpzone</small></p>
<br><br>
</div>
<footer>
<div class="footer navbar-fixed-bottom img-rounded" style="background-color: #f5f5f5; border-top: solid; border-width: thin; border-color: grey">
<div class="container">
<div class="container">
<div class="navbar-header">
<p class="text-muted"><small>Warpzone</small></p>
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
</footer>
</body>
</html>
......@@ -7,7 +7,7 @@
<h2 class="form-signin-heading">{% trans "Please sign in" %}</h2>
<label for="inputUser">{% trans "Username" %}</label>
<input name="username" type="user" id="inputUser" class="form-control" placeholder="{% trans "Username" %}" required autofocus>
Hallo
<label for="inputPassword" style="padding-top:10px;">{% trans "Password" %}</label>
<input name="password" type="password" id="inputPassword" class="form-control" placeholder="{% trans "Password" %}" required>
{% if fail == True %}
......
{% extends "base.html" %}
{% load i18n %}
{% load bootstrap %}
{% block content %}
<div class="panel panel-default">
<div class="panel-body">
<form class="form-horizontal" method="POST" role="form">
{{ create_food_sheet|bootstrap_horizontal }}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
{% csrf_token %}
<button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "Create Food Sheet" %}</button>
</div>
</div>
</form>
</div>
</div>
<table class="table table-striped table-hover">
<thead>
<tr><th>{% trans "Estimated Order Time" %}</th><th>{% trans "Pizza Service" %}</th></tr>
</thead>
<tbody>
{% for sheet in food_sheets %}
<tr data-link="/pizza/view/{{ sheet.id }}/"><td>{{ sheet.estimated_order_time }}</td><td>{{ sheet.pizza_service }}</td></tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
\ No newline at end of file
{% extends "base.html" %}
{% load i18n %}
{% load bootstrap %}
{% block content %}
<div class="panel panel-default">
<div class="panel-body">
<div class="row">
<div class="col-md-8">
<h4>{{ sheet.pizza_service.name }}</h4>
<small>{{ sheet.pizza_service.phone }}</small><br/><br/>
<small>{{ sheet.estimated_order_time }}</small><br/><br/>
<a href="" class="btn btn-primary">Edit Sheet</a>
{% if not sheet.closed %}
<a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-danger">Close Sheet</a>
{% else %}
<a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-success">Open Sheet</a>
{% endif %}
{% if sheet.closed %}
<a href="" class="btn btn-info">Print order</a>
{% endif %}
</div>
<div class="col-md-4">
<h4>{% trans "Order Sum" %}: {{ order_sum }} &euro;</h4>
</div>
</div>
</div>
</div>
{% if not sheet.closed %}
<div class="panel panel-default">
<div class="panel-body">
<form class="form-horizontal" method="POST" role="form">
{{ create_food_order|bootstrap_horizontal }}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
{% csrf_token %}
<button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "Create Food Sheet" %}</button>
</div>
</div>
</form>
</div>
</div>
{% endif %}
<table class="table table-striped table-hover">
<thead>
<tr>
<th>{% trans "User Name" %}</th>
<th>{% trans "Article" %}</th>
<th>{% trans "Size" %}</th>
<th>{% trans "Price" %}</th>
<th>{% trans "Comment" %}</th>
<th>{% trans "Paid" %}</th>
</tr>
</thead>
<tbody>
{% for order in orders %}
<tr>
<td>{{ order.user_name }}</td>
<td>{{ order.article }}</td>
<td>{{ order.size }}</td>
<td>{{ order.price }} &euro;</td>
<td>{{ order.comment }}</td>
<td>
{% if order.paid %}
<a class="btn btn-xs btn-success" href="/pizza/toggle_paid/{{ order.id }}">{{ order.paid }}</a></td></tr>
{% else %}
<a class="btn btn-xs btn-danger" href="/pizza/toggle_paid/{{ order.id }}">{{ order.paid }}</a></td></tr>
{% endif %}
{% endfor %}
</tbody>
</table>
{% endblock %}
from django.conf.urls import url
from warpauthWeb.views import main,login,reset_password
from warpauthWeb.views import main,login,reset_password, warp_food
urlpatterns = [
# Authentication Pages
url(r'^login/$', login.login_view, name='index'),
url(r'^logout/$', login.logout_view, name='index'),
url(r'^reset_password/$', reset_password.gen_token, name='index'),
url(r'^reset_password/(?P<reset_hash>\w+)/$', reset_password.change_password, name='index'),
# Main Page
url(r'^pizza/$', warp_food.index, name='warp_foot'),
url(r'^pizza/view/(?P<sheet_id>\w+)/$', warp_food.view, name='warp_foot_view'),
url(r'^pizza/toggle_sheet/(?P<sheet_id>\w+)/$', warp_food.toggle_closed, name='warp_foot_toggle_closed'),
url(r'^pizza/toggle_paid/(?P<order_id>\w+)/$', warp_food.toggle_paid, name='warp_foot_toggle_paid'),
url(r'^$', main.index, name='index'),
......
pages = {'pages': [
{"link":"pizza", "name": "PizzaSheet"},
{"link":"about", "name": "About"},
{"link":"logout", "name": "Logout"},
{"link":"admin", "name": "Admin"}
......
......@@ -9,3 +9,4 @@ def index(request):
print(request.user.ldap_user.group_names)
return HttpResponse(render(request, 'about.html', pages))
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, HttpResponseNotFound
from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required
from warpauthWeb.util import *
from warpauthWeb.models import *
def index(request):
if request.method == 'POST':
form = FoodSheetForm(request.POST)
if form.is_valid:
form.save()
else:
pages['error'] = form.errors
pages['food_sheets'] = FoodSheet.objects.all()
pages['pizza_services'] = PizzaService.objects.all()
pages['create_food_sheet'] = FoodSheetForm()
return HttpResponse(render(request, 'warp_food/main.html', pages))
def view(request, sheet_id=0):
if request.method == 'POST':
form = FoodOrderForm(request.POST)
if form.is_valid():
print(form.data)
form.save()
else:
pages['error'] = form.errors
print(pages['error'])
if sheet_id != 0:
sheet = FoodSheet.objects.get(id=sheet_id)
pages['sheet'] = sheet
pages['orders'] = FoodOrder.objects.filter(sheet=sheet)
sum = 0
for order in pages['orders']:
sum += order.price
pages['order_sum'] = sum
pages['create_food_order'] = FoodOrderForm(initial={'sheet': sheet_id, 'user': request.user.id})
return HttpResponse(render(request, 'warp_food/view.html', pages))
@login_required(login_url='/login/', redirect_field_name=None)
def toggle_closed(request, sheet_id=0):
if sheet_id != 0:
sheet = FoodSheet.objects.get(id=sheet_id)
sheet.closed = not sheet.closed
sheet.save()
return redirect("/pizza/view/%s" % (sheet_id))
def toggle_paid(request, order_id=0):
if order_id != 0:
order = FoodOrder.objects.get(id=order_id)
order.paid = not order.paid
order.save()
return redirect("/pizza/view/%s" % (order.sheet.id))
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment