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

Refactored in different Apps

parent 86fda74a
No related branches found
No related tags found
No related merge requests found
Showing
with 139 additions and 108 deletions
File moved
from django.conf.urls import include, url from django.conf.urls import url
from django.contrib import admin from warpauth.views import main, login, reset_password, warp_food
from django.conf import settings
urlpatterns = [ urlpatterns = [
url(r'^admin/', include(admin.site.urls)), # Authentication Pages
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT,}), url(r'^login/$', login.login_view, name='index'),
url(r'^', include('warpauthWeb.urls')), 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'^$', main.index, name='index'),
] ]
"""
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'^pizza/export_sheet/(?P<sheet_id>\w+)/$', warp_food.export_sheet, name='warp_foot_export_sheet'),
"""
\ No newline at end of file
File moved
File moved
...@@ -4,7 +4,7 @@ from django.contrib.auth import authenticate, login, logout ...@@ -4,7 +4,7 @@ from django.contrib.auth import authenticate, login, logout
from django.shortcuts import redirect from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from warpauthWeb.util import * from warpauth.util import *
def login_view(request): def login_view(request):
pages['body'] = "login" pages['body'] = "login"
...@@ -23,7 +23,7 @@ def login_view(request): ...@@ -23,7 +23,7 @@ def login_view(request):
if username != "" and password != "": if username != "" and password != "":
pages['fail'] = True pages['fail'] = True
return HttpResponse(render(request, 'login.html', pages)) return HttpResponse(render(request, 'warpauth/login.html', pages))
@login_required(login_url='/login/', redirect_field_name=None) @login_required(login_url='/login/', redirect_field_name=None)
def logout_view(request): def logout_view(request):
......
...@@ -2,11 +2,11 @@ from django.shortcuts import render ...@@ -2,11 +2,11 @@ from django.shortcuts import render
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, HttpResponseNotFound from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, HttpResponseNotFound
from django.shortcuts import redirect from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from warpauthWeb.util import * from warpauth.util import *
@login_required(login_url='/login/', redirect_field_name=None) @login_required(login_url='/login/', redirect_field_name=None)
def index(request): def index(request):
print(request.user.ldap_user.group_names) print(request.user.ldap_user.group_names)
return HttpResponse(render(request, 'about.html', pages)) return HttpResponse(render(request, 'warpauth/about.html', pages))
...@@ -5,13 +5,13 @@ from django.shortcuts import redirect ...@@ -5,13 +5,13 @@ from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.views.decorators.cache import cache_page from django.views.decorators.cache import cache_page
from warpauthWeb.util import * from warpauth.util import *
from warpauthWeb.models import PasswordResetToken, LdapUser from warpauth.models import PasswordResetToken, LdapUser
import hashlib import hashlib
import logging import logging
import os import os
import datetime import datetime
from django.core.exceptions import ObjectDoesNotExist,ValidationError from django.core.exceptions import ObjectDoesNotExist, ValidationError
def gen_token(request): def gen_token(request):
logger = logging.getLogger("reset_password") logger = logging.getLogger("reset_password")
...@@ -30,7 +30,7 @@ def gen_token(request): ...@@ -30,7 +30,7 @@ def gen_token(request):
logger.error("Failed for %s with %s", request.POST["username"],e) logger.error("Failed for %s with %s", request.POST["username"],e)
else: else:
pass pass
return HttpResponse(render(request, 'reset_password/token_gen.html', pages)) return HttpResponse(render(request, 'warpauth/reset_password/token_gen.html', pages))
def change_password(request, reset_hash=None): def change_password(request, reset_hash=None):
...@@ -60,4 +60,4 @@ def change_password(request, reset_hash=None): ...@@ -60,4 +60,4 @@ def change_password(request, reset_hash=None):
return HttpResponse(render(request, 'reset_password/change_password.html', pages)) return HttpResponse(render(request, 'warpauth/reset_password/change_password.html', pages))
from django.conf.urls import url
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'^pizza/export_sheet/(?P<sheet_id>\w+)/$', warp_food.export_sheet, name='warp_foot_export_sheet'),
url(r'^$', main.index, name='index'),
]
File moved
from django.contrib import admin from django.contrib import admin
from warpauthWeb.models import PizzaService from warpfood.models import PizzaService
# Register your models here. # Register your models here.
@admin.register(PizzaService) @admin.register(PizzaService)
class PizzaService_admin(admin.ModelAdmin): class PizzaServiceAdmin(admin.ModelAdmin):
pass pass
from django.db import models from django.db import models
from ldapdb.models.fields import CharField, IntegerField, ListField
import ldapdb.models
from django.forms import ModelForm, HiddenInput from django.forms import ModelForm, HiddenInput
from django import forms from django import forms
from django.utils import timezone from django.utils import timezone
class PasswordResetToken(models.Model):
user = models.CharField(max_length=100)
email = models.CharField(max_length=100)
hash = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
class PizzaService(models.Model): class PizzaService(models.Model):
name = models.CharField(max_length=250) name = models.CharField(max_length=250)
...@@ -19,6 +11,7 @@ class PizzaService(models.Model): ...@@ -19,6 +11,7 @@ class PizzaService(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
class FoodSheet(models.Model): class FoodSheet(models.Model):
date = models.DateTimeField(default=timezone.now) date = models.DateTimeField(default=timezone.now)
pizza_service = models.ForeignKey(PizzaService, on_delete=models.CASCADE) pizza_service = models.ForeignKey(PizzaService, on_delete=models.CASCADE)
...@@ -46,48 +39,21 @@ class FoodSheetForm(ModelForm): ...@@ -46,48 +39,21 @@ class FoodSheetForm(ModelForm):
class FoodOrderForm(ModelForm): class FoodOrderForm(ModelForm):
comment = forms.CharField(required=False) comment = forms.CharField(required=False)
paid = forms.CharField(required=False)
class Meta: class Meta:
model = FoodOrder model = FoodOrder
fields = ['sheet', 'user', 'article', 'size', 'comment', 'price', 'paid'] fields = ['sheet', 'user', 'article', 'size', 'comment', 'price', 'paid']
widgets = {'sheet': HiddenInput(), 'user': HiddenInput()} widgets = {'paid': HiddenInput(), 'sheet': HiddenInput(), 'user': HiddenInput()}
class FoodOrderFormExt(ModelForm):
comment = forms.CharField(required=False)
class Meta:
model = FoodOrder
fields = ['sheet', 'user', 'article', 'size', 'comment', 'price', 'paid']
widgets = {'sheet': HiddenInput(), 'paid': HiddenInput()}
class PizzaServiceForm(ModelForm): class PizzaServiceForm(ModelForm):
class Meta: class Meta:
model = PizzaService model = PizzaService
fields = ['name', 'phone'] fields = ['name', 'phone']
# LDAP
class LdapUser(ldapdb.models.Model):
base_dn = "ou=user,dc=warpzone,dc=ms"
object_classes = ['posixAccount', 'shadowAccount', 'uidObject', 'account']
uid = CharField(db_column='uid', unique=True, primary_key=True)
email = CharField(db_column='description', max_length=200)
password = CharField(db_column='Password')
def __str__(self):
return self.uid
def __unicode__(self):
return self.uid
class LdapGroup(ldapdb.models.Model):
base_dn = "ou=groups,dc=nodomain,dc=org"
object_classes = ['posixGroup']
gid = IntegerField(db_column='gidNumber', unique=True)
name = CharField(db_column='cn', max_length=200, primary_key=True)
members = ListField(db_column='memberUid')
def __str__(self):
return self.name
def __unicode__(self):
return self.name
...@@ -5,19 +5,21 @@ ...@@ -5,19 +5,21 @@
{% load bootstrap %} {% load bootstrap %}
{% block content %} {% block content %}
<div class="panel panel-default"> {% if user.is_authenticated %}
<div class="panel-body"> <div class="panel panel-default">
<form class="form-horizontal" method="POST" role="form"> <div class="panel-body">
{{ create_food_sheet|bootstrap_horizontal }} <form class="form-horizontal" method="POST" role="form">
<div class="form-group"> {{ create_food_sheet|bootstrap_horizontal }}
<div class="col-sm-offset-2 col-sm-10"> <div class="form-group">
{% csrf_token %} <div class="col-sm-offset-2 col-sm-10">
<button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "Create Food Sheet" %}</button> {% csrf_token %}
</div> <button style="float: left" type="submit" formmethod="post" class="btn btn-primary">{% trans "Create Food Sheet" %}</button>
</div>
</div>
</form>
</div> </div>
</form>
</div> </div>
</div> {% endif %}
<table class="table table-striped table-hover"> <table class="table table-striped table-hover">
<thead> <thead>
<tr><th>{% trans "Estimated Order Time" %}</th><th>{% trans "Pizza Service" %}</th></tr> <tr><th>{% trans "Estimated Order Time" %}</th><th>{% trans "Pizza Service" %}</th></tr>
......
{% extends "base.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% load bootstrap %}
{% load bootstrap %}
{% block content %} {% block content %}
...@@ -13,14 +12,16 @@ ...@@ -13,14 +12,16 @@
<h4>{{ sheet.pizza_service.name }}</h4> <h4>{{ sheet.pizza_service.name }}</h4>
<small>{{ sheet.pizza_service.phone }}</small><br/><br/> <small>{{ sheet.pizza_service.phone }}</small><br/><br/>
<small>{{ sheet.estimated_order_time }}</small><br/><br/> <small>{{ sheet.estimated_order_time }}</small><br/><br/>
<a href="" class="btn btn-primary">Edit Sheet</a> {% if user.is_authenticated %}
{% if not sheet.closed %} <a href="" class="btn btn-primary">Edit Sheet</a>
<a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-danger">Close Sheet</a> {% if not sheet.closed %}
{% else %} <a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-danger">Close Sheet</a>
<a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-success">Open Sheet</a> {% else %}
{% endif %} <a href="/pizza/toggle_sheet/{{ sheet.id }}" class="btn btn-success">Open Sheet</a>
{% if sheet.closed %} {% endif %}
<a href="/pizza/export_sheet/{{ sheet.id }}" class="btn btn-info">Print order</a> {% if sheet.closed %}
<a href="/pizza/export_sheet/{{ sheet.id }}" class="btn btn-info">Print order</a>
{% endif %}
{% endif %} {% endif %}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
...@@ -33,8 +34,11 @@ ...@@ -33,8 +34,11 @@
{% if not sheet.closed %} {% if not sheet.closed %}
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-body"> <div class="panel-body">
{% if error %}
<div class="alert alert-danger"> {{ error }}</div>
{% endif %}
<form class="form-horizontal" method="POST" role="form"> <form class="form-horizontal" method="POST" role="form">
{{ create_food_order|bootstrap_horizontal }} {{ create_food_order|bootstrap_horizontal }}
<div class="form-group"> <div class="form-group">
<div class="col-sm-offset-2 col-sm-10"> <div class="col-sm-offset-2 col-sm-10">
{% csrf_token %} {% csrf_token %}
...@@ -59,17 +63,28 @@ ...@@ -59,17 +63,28 @@
<tbody> <tbody>
{% for order in orders %} {% for order in orders %}
<tr> <tr>
<td>{{ order.user_name }}</td> <td>{{ order.user }}</td>
<td>{{ order.article }}</td> <td>{{ order.article }}</td>
<td>{{ order.size }}</td> <td>{{ order.size }}</td>
<td>{{ order.price }} &euro;</td> <td>{{ order.price }} &euro;</td>
<td>{{ order.comment }}</td> <td>{{ order.comment }}</td>
<td> <td>
{% if order.paid %} {% if user.is_authenticated %}
<a class="btn btn-xs btn-success" href="/pizza/toggle_paid/{{ order.id }}">{{ order.paid }}</a></td></tr> {% if order.paid %}
<a class="btn btn-xs btn-success" href="/pizza/toggle_paid/{{ order.id }}">{{ order.paid }}</a>
{% else %}
<a class="btn btn-xs btn-danger" href="/pizza/toggle_paid/{{ order.id }}">{{ order.paid }}</a>
{% endif %}
{% else %} {% else %}
<a class="btn btn-xs btn-danger" href="/pizza/toggle_paid/{{ order.id }}">{{ order.paid }}</a></td></tr> {% if order.paid %}
<span class="btn btn-xs btn-success">{{ order.paid }}</span>
{% else %}
<span class="btn btn-xs btn-danger">{{ order.paid }}</span>
{% endif %}
{% endif %} {% endif %}
</td>
</tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
......
from django.test import TestCase
# Create your tests here.
from django.conf.urls import url
from warpfood.views import *
urlpatterns = [
url(r'^pizza/$', index, name='warp_foot'),
url(r'^pizza/view/(?P<sheet_id>\w+)/$', view, name='warp_foot_view'),
url(r'^pizza/toggle_sheet/(?P<sheet_id>\w+)/$', toggle_closed, name='warp_foot_toggle_closed'),
url(r'^pizza/toggle_paid/(?P<order_id>\w+)/$', toggle_paid, name='warp_foot_toggle_paid'),
url(r'^pizza/export_sheet/(?P<sheet_id>\w+)/$', export_sheet, name='warp_foot_export_sheet'),
]
pages = {'pages': [
{"link":"pizza", "name": "PizzaSheet"},
{"link":"about", "name": "About"},
{"link":"logout", "name": "Logout"},
{"link":"admin", "name": "Admin"}
]}
...@@ -2,12 +2,12 @@ from django.shortcuts import render ...@@ -2,12 +2,12 @@ from django.shortcuts import render
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, HttpResponseNotFound from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseNotAllowed, HttpResponseNotFound
from django.shortcuts import redirect from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from warpauthWeb.util import * from warpfood.util import *
from warpauthWeb.models import * from warpfood.models import *
from reportlab.pdfgen import canvas from reportlab.pdfgen import canvas
from django.http import HttpResponse from django.http import HttpResponse
from reportlab.platypus import SimpleDocTemplate from reportlab.platypus import SimpleDocTemplate
from reportlab.platypus.tables import Table, TableStyle,colors from reportlab.platypus.tables import Table, TableStyle, colors
def index(request): def index(request):
if request.method == 'POST': if request.method == 'POST':
...@@ -19,15 +19,13 @@ def index(request): ...@@ -19,15 +19,13 @@ def index(request):
pages['food_sheets'] = FoodSheet.objects.all() pages['food_sheets'] = FoodSheet.objects.all()
pages['pizza_services'] = PizzaService.objects.all() pages['pizza_services'] = PizzaService.objects.all()
pages['create_food_sheet'] = FoodSheetForm() pages['create_food_sheet'] = FoodSheetForm()
return HttpResponse(render(request, 'warp_food/main.html', pages)) return HttpResponse(render(request, 'warpfood/main.html', pages))
def view(request, sheet_id=0): def view(request, sheet_id=0):
if request.method == 'POST': if request.method == 'POST':
form = FoodOrderForm(request.POST) form = FoodOrderForm(request.POST)
if form.is_valid(): if form.is_valid():
print(form.data)
form.save() form.save()
else: else:
pages['error'] = form.errors pages['error'] = form.errors
print(pages['error']) print(pages['error'])
...@@ -40,9 +38,12 @@ def view(request, sheet_id=0): ...@@ -40,9 +38,12 @@ def view(request, sheet_id=0):
for order in pages['orders']: for order in pages['orders']:
sum += order.price sum += order.price
pages['order_sum'] = sum pages['order_sum'] = sum
pages['create_food_order'] = FoodOrderForm(initial={'sheet': sheet_id, 'user': request.user.id}) if request.user.is_authenticated():
pages['create_food_order'] = FoodOrderForm(initial={'sheet': sheet_id, 'user': request.user, 'paid': True})
else:
pages['create_food_order'] = FoodOrderFormExt(initial={'sheet': sheet_id, 'paid': True})
return HttpResponse(render(request, 'warp_food/view.html', pages)) return HttpResponse(render(request, 'warpfood/view.html', pages))
@login_required(login_url='/login/', redirect_field_name=None) @login_required(login_url='/login/', redirect_field_name=None)
def toggle_closed(request, sheet_id=0): def toggle_closed(request, sheet_id=0):
......
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