# -*- coding: utf-8 -*- # This file is part of k4ever, a point-of-sale system # Contact............ # Website............ http://k4ever.someserver.de/ # Bug tracker........ http://k4ever.someserver.de/report # # Licensed under GNU Affero General Public License v3 or later from django import forms from models import Transaction, VirtualTransaction from main.fields import CurrencyField from django.contrib.auth.models import User from django.core.exceptions import ValidationError class TransactionForm(forms.ModelForm): """ ModelForm for :class:`Transactions ` with a currency field. """ amount = CurrencyField(label='Betrag') class Meta: model = Transaction exclude = ('user', 'dateTime', 'checked') def clean_amount(self): data = self.cleaned_data['amount'] return data def clean(self): # needed to enforce TransactionTypes needsCheck "default value" cleaned_data = super(TransactionForm, self).clean() if cleaned_data.has_key("transactionType"): self.instance.checked = not cleaned_data['transactionType'].needsCheck return cleaned_data class VirtualTransactionForm(forms.ModelForm): """ ModelForm for :class:`Virtual Transactions ` with a currency field. """ recipient = forms.CharField(max_length=100) amount = CurrencyField(label='Betrag') class Meta: model = VirtualTransaction exclude = ('user', 'dateTime') def clean_recipient(self): try: user = User.objects.get(username=self.cleaned_data['recipient']) except User.DoesNotExist: raise ValidationError(u"Emfpänger '%s' konnte nicht gefunden werden" % self.cleaned_data['recipient']) if user == self.instance.user: raise ValidationError(u"Emfpänger '%s' bist du selbst" % self.cleaned_data['recipient']) return user