From 9450f3326b1be6e3056fada0e8c81c1e0515027f Mon Sep 17 00:00:00 2001 From: seba Date: Sat, 16 Oct 2010 17:33:18 +0200 Subject: [PATCH] Transactions funtzen, kaufen fast --- k4ever/buyable/models.py | 6 +- .../buyable/templates/buyables/showItem.html | 9 +++ .../buyable/templates/buyables/showItems.html | 7 ++ k4ever/buyable/urls.py | 8 ++ k4ever/buyable/views.py | 32 ++++++++ k4ever/k4ever.db | Bin 58368 -> 63488 bytes k4ever/main/admin.py | 5 ++ k4ever/main/fields.py | 71 ++++++++++++++++++ k4ever/main/models.py | 4 +- .../main/templates/main/navigation-login.html | 2 +- .../484488a54d079e9f5714c16f6d848eab.gif | Bin 0 -> 49443 bytes k4ever/media/img/buyable/bier.jpg | Bin 0 -> 20781 bytes k4ever/settings.py | 4 +- k4ever/transaction/admin.py | 21 +++++- k4ever/transaction/forms.py | 12 +++ k4ever/transaction/models.py | 23 +++++- .../templates/transaction/overview.html | 21 +++++- .../templates/transaction/transfer.html | 5 ++ k4ever/transaction/urls.py | 1 + k4ever/transaction/views.py | 32 ++++++-- k4ever/urls.py | 3 +- 21 files changed, 244 insertions(+), 22 deletions(-) create mode 100644 k4ever/buyable/templates/buyables/showItem.html create mode 100644 k4ever/buyable/templates/buyables/showItems.html create mode 100644 k4ever/buyable/urls.py create mode 100644 k4ever/main/admin.py create mode 100644 k4ever/main/fields.py create mode 100755 k4ever/media/img/buyable/484488a54d079e9f5714c16f6d848eab.gif create mode 100755 k4ever/media/img/buyable/bier.jpg create mode 100644 k4ever/transaction/forms.py create mode 100644 k4ever/transaction/templates/transaction/transfer.html diff --git a/k4ever/buyable/models.py b/k4ever/buyable/models.py index 6f2f05e..13da811 100644 --- a/k4ever/buyable/models.py +++ b/k4ever/buyable/models.py @@ -28,4 +28,8 @@ class Purchase(models.Model): buyable = models.ForeignKey(Buyable) def __unicode__(self): - return "%s%s, %s by %s" % (self.buyable.name, self.isDeposit and " (deposit)" or "", self.price, self.user) \ No newline at end of file + return "%s%s, %s by %s" % (self.buyable.name, self.isDeposit and " (deposit)" or "", self.price, self.user) + + def create(self, buyable): + self.dateTime = datetime.datetime.now() + self.buyable = buyable \ No newline at end of file diff --git a/k4ever/buyable/templates/buyables/showItem.html b/k4ever/buyable/templates/buyables/showItem.html new file mode 100644 index 0000000..02a16c0 --- /dev/null +++ b/k4ever/buyable/templates/buyables/showItem.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} + +{% block "content" %} + {% if item %} + You got the item {{ item }} + {% else %} + No item found :( + {% endif %} +{% endblock %} diff --git a/k4ever/buyable/templates/buyables/showItems.html b/k4ever/buyable/templates/buyables/showItems.html new file mode 100644 index 0000000..65b0510 --- /dev/null +++ b/k4ever/buyable/templates/buyables/showItems.html @@ -0,0 +1,7 @@ +{% extends "base.html" %} + +{% block "content" %} +{% for item in items %} +{{ item }} {{ item.name }} +{% endfor %} +{% endblock %} \ No newline at end of file diff --git a/k4ever/buyable/urls.py b/k4ever/buyable/urls.py new file mode 100644 index 0000000..beb4562 --- /dev/null +++ b/k4ever/buyable/urls.py @@ -0,0 +1,8 @@ +from django.conf.urls.defaults import * + + +urlpatterns = patterns('', + (r'^$', 'buyable.views.showItems'), + (r'^show/(\d+)/$', 'buyable.views.showItem'), + (r'^buy/(\d+)/$', 'buyable.views.buyItem'), +) \ No newline at end of file diff --git a/k4ever/buyable/views.py b/k4ever/buyable/views.py index 60f00ef..a0206a1 100644 --- a/k4ever/buyable/views.py +++ b/k4ever/buyable/views.py @@ -1 +1,33 @@ # Create your views here. +from django.shortcuts import render_to_response +from django.template import RequestContext +from django.contrib.auth.decorators import login_required +from django.http import HttpResponseRedirect +from models import Buyable + +@login_required +def showItems(request): + # FIXME: Implement pagination here + items = Buyable.objects.all() + return render_to_response("buyables/showItems.html", {'items': items}, RequestContext(request)) + +@login_required +def showItem(request, itemid): + try: + item = Buyable.objects.get(id=itemid) + except Buyable.DoesNotExist: + # baww, kein item mit der id :( (oder mutax trollt rum) + return HttpResponseRedirect("/buy/") + return render_to_response("buyables/showItem.html", {'item': item}, RequestContext(request)) + +@login_required +def buyItem(request, itemid): + try: + item = Buyable.objects.get(id=itemid) + except Buyable.DoesNotExist: + # oh no! kein item mit der id :( mutax trollt rum) + return HttpResponseRedirect("/buy/") + purchase = Purchase(user=request.user, price=item.price, isDeposit=false ) + purchase.create(item) + purchase.save() + return render_to_response("buyables/itemBought.html", {'item': item}, RequestContext(request)) \ No newline at end of file diff --git a/k4ever/k4ever.db b/k4ever/k4ever.db index e8eefa0b8089de70cdeb4e94072b60c797daab4b..c6beae29802934e0fafdc767f5b8818f93f1583f 100644 GIT binary patch delta 4485 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 diff --git a/k4ever/main/admin.py b/k4ever/main/admin.py new file mode 100644 index 0000000..4477270 --- /dev/null +++ b/k4ever/main/admin.py @@ -0,0 +1,5 @@ +from models import UserProfile +from django.contrib import admin + +admin.site.register(UserProfile) + diff --git a/k4ever/main/fields.py b/k4ever/main/fields.py new file mode 100644 index 0000000..fa4ad0b --- /dev/null +++ b/k4ever/main/fields.py @@ -0,0 +1,71 @@ +from django import forms +from django.core.exceptions import ValidationError +import re + +#class CurrencyField(forms.IntegerField): +# default_error_message = { +# 'invalid': _(u'Enter a number.'), +# } +# def __init__(self, positive=True, *args, **kwargs): +# super(IntegerField, self).__init__(*args, **kwargs) +# self.positive = positive +# def to_python(self, value): +# value = super(IntegerField, self).to_python(value) +# if value in validators.EMPTY_VALUES: +# return None +# try: +# value = float(value.replace(",", ".")) +# except: +# pass + +class CurrencyInput (forms.TextInput): + def render(self, name, value, attrs=None): + if value != '': + try: + value = u"%.2f" % value + except TypeError: + pass + return super(CurrencyInput, self).render(name, value, attrs) + + +class CurrencyField (forms.RegexField): + widget = CurrencyInput + currencyRe = re.compile(r'^[0-9]{1,5}([,\.][0-9][0-9]?)?$') + + #currencyRe = re.compile(r'^[0-9]{1,5}(.[0-9][0-9]?)?$') +# currencyRe = re.compile(r"^[0-9]") + def __init__(self, *args, **kwargs): + super(CurrencyField, self).__init__( + self.currencyRe, None, None, *args, **kwargs) + +#class CurrencyField(forms.FloatField): +# widget = CurrencyInput +# moneyre = re.compile(r"^[0-9]{1,5}([\.][0-9][0-9])?$") +# def __init__(self, positive=False, allowPerCent=False, *args, **kwargs): +# super(forms.FloatField, self).__init__(*args, **kwargs) +# self.positive = positive +# self.allowPerCent = allowPerCent + def to_python(self, value): + #return super(forms.FloatField, self).to_python(value) + #raise ValidationError("WTF WTF WTF %s " % value) + #value = value.replace(",", ".") + #try: + # value = super(forms.FloatField, self).to_python(value) + #except ValidationError, e: + # raise NotImplementedError("%s %s" % (e, value)) + #return value + value = value.replace(",", ".") + try: + value = float(value) + except (ValueError, TypeError): + raise ValidationError("Bitte gib eine Zahl ein") +# if not self.allowPerCent: +# tmpval = 100.0*value +# if tmpval == int(tmpval): +# raise ValidationError("Deine Zahl sollte nicht mehr als zwei Nachkommastellen haben. %s %s %s" % (tmpval, int(tmpval), tmpval-int(tmpval))) +# if self.positive and self.value < 0.0: +# raise ValidationError("Bitte gib eine positive Zahl an.") + return value + def clean(self, value): + value = super(CurrencyField, self).clean(value) + return float(value) diff --git a/k4ever/main/models.py b/k4ever/main/models.py index f9fd3c9..33eb976 100644 --- a/k4ever/main/models.py +++ b/k4ever/main/models.py @@ -3,7 +3,7 @@ from django.contrib.auth.models import User class UserProfile(models.Model): user = models.ForeignKey(User, unique=True) - balance = models.FloatField() + balance = models.FloatField(default=0.0) def __unicode__(self): - return "%s (Kontostand: %s)" % (self.user ,self.balance) \ No newline at end of file + return "%s (Kontostand: %s)" % (self.user ,self.balance) diff --git a/k4ever/main/templates/main/navigation-login.html b/k4ever/main/templates/main/navigation-login.html index f1b53f9..56f82f0 100644 --- a/k4ever/main/templates/main/navigation-login.html +++ b/k4ever/main/templates/main/navigation-login.html @@ -1,5 +1,5 @@ Main
-Buy
+Buy
Konto
History
{% if user.is_staff %} diff --git a/k4ever/media/img/buyable/484488a54d079e9f5714c16f6d848eab.gif b/k4ever/media/img/buyable/484488a54d079e9f5714c16f6d848eab.gif new file mode 100755 index 0000000000000000000000000000000000000000..6cd7395ed252ac5c4942d0fb2106c924b0957a74 GIT binary patch literal 49443 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 DID IT!. You transacted money! + {% endif %} +
+ {% csrf_token %} + + {{ form.as_table }} +
+ +
+ + {% for transaction in history %} - {{ transaction.amount }}, got that by {{ transaction.type }} + {% if forloop.first and transacted %} + + {% endif %} + [ {{ transaction.dateTime }} ] {{ transaction.amount|floatformat:2 }} Euronen, got that by {{ transaction.transactionType }} {% if transaction.checked %} ist eingegangen {% else %} noch nicht da {% endif %} + {% if forloop.first and transacted %} + + {% endif %}
{% endfor %} {% endblock %} diff --git a/k4ever/transaction/templates/transaction/transfer.html b/k4ever/transaction/templates/transaction/transfer.html new file mode 100644 index 0000000..c2888ce --- /dev/null +++ b/k4ever/transaction/templates/transaction/transfer.html @@ -0,0 +1,5 @@ +{% extends "base.html" %} + +{% block "content" %} + No content here. +{% endblock %} diff --git a/k4ever/transaction/urls.py b/k4ever/transaction/urls.py index 60c9fc1..a689cdf 100644 --- a/k4ever/transaction/urls.py +++ b/k4ever/transaction/urls.py @@ -3,6 +3,7 @@ from django.conf.urls.defaults import * urlpatterns = patterns('', (r'^$', 'transaction.views.overview'), + #(r'^transact/$', 'transaction.views.transact'), #(r'^transfer/$', 'transaction.views.transfer'), #(r'^checkTransfers/$', 'transaction.views.checkTransfers'), ) diff --git a/k4ever/transaction/views.py b/k4ever/transaction/views.py index 8d7115e..8b04ddd 100644 --- a/k4ever/transaction/views.py +++ b/k4ever/transaction/views.py @@ -1,20 +1,36 @@ from django.shortcuts import render_to_response from django.template import RequestContext from django.contrib.auth.decorators import login_required +from django.http import HttpResponseRedirect from models import Transaction, TransactionType +from forms import TransactionForm +import datetime @login_required def overview(request): - history = Transaction.objects.filter(user=request.user).order_by("dateTime") - return render_to_response("transaction/overview.html", {'history': history}, RequestContext(request)) + history = Transaction.objects.filter(user=request.user).order_by("-dateTime") + transacted = False + if request.method == 'POST': + transaction = Transaction(user=request.user, dateTime=datetime.datetime.now()) + form = TransactionForm(request.POST, instance=transaction) + if form.is_valid(): + form.save() + form = TransactionForm() + transacted = True + else: + pass + else: + form = TransactionForm() + return render_to_response("transaction/overview.html", {'history': history, 'form': form, 'transacted': transacted}, RequestContext(request)) -#@login_required -#def transfer(request): -# if request.method == 'POST': -# -# return render_to_response("transaction/transfered.html", RequestContext(request)) +@login_required +def transact(request): + if request.method == 'POST': + return render_to_response("transaction/transfered.html", RequestContext(request)) + else: + return HttpResponseRedirect("/transaction/") #@kassenwart_required #def checkTransfers(request): -# transfers = Transaction.objects.filter(checked=False).sort("dateTime") +# transfers = Transaction.objects.filter(checked=False).order_by("dateTime") # return render_to_response("transaction/uncheckedTransfers.html", {'transfers' : tranfers}, RequestContext(request)) \ No newline at end of file diff --git a/k4ever/urls.py b/k4ever/urls.py index 434639b..a5469ca 100644 --- a/k4ever/urls.py +++ b/k4ever/urls.py @@ -15,7 +15,8 @@ urlpatterns = patterns('', (r'^$', 'main.views.startpage'), (r'^user/', include('main.urls')), (r'^transaction/', include('transaction.urls')), - #(r'^buy/', include('buyable.urls')), + (r'^store/', include('buyable.urls')), + (r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': 'media'}), # Uncomment the next line to enable the admin: (r'^admin/', include(admin.site.urls)),