Moved expenses claim development to its own feature branch

This commit is contained in:
Leo Kivikunnas
2019-06-03 19:52:12 +03:00
parent 2bf19d357e
commit 9a9757c914
12 changed files with 0 additions and 136 deletions
View File
-3
View File
@@ -1,3 +0,0 @@
from django.contrib import admin
# Register your models here.
-5
View File
@@ -1,5 +0,0 @@
from django.apps import AppConfig
class ExpensesClaimConfig(AppConfig):
name = 'expenses_claim'
-30
View File
@@ -1,30 +0,0 @@
"""Expenses claim form."""
from django import forms
from string import ascii_uppercase
class ExpensesClaim(forms.Form):
"""Expenses claim form"""
name = forms.CharField(label='Nimi', max_length=100)
iban = forms.CharField(label='IBAN', max_length=100)
amount = forms.DecimalField(label="Summa", decimal_places=2)
def clean_iban(self):
"""Validate IBAN."""
data = self.cleaned_data['iban']
# Remove spaces.
data = data.replace(" ", "")
# Move first 4 symbols to the end of the string.
data = data[4:] + data[0:4]
LETTERS = {letter: str(index) for index,
letter in enumerate(ascii_uppercase, start=10)}
data = data.upper()
# Replace all letters with numbers, so that A=10, B=11, ..., Z=35.
data = [LETTERS[char] if char in LETTERS else char for char in data]
data = ''.join(data)
# If data modulo 97 != 1 the IBAN number is invalid.
if int(data) % 97 != 1:
raise forms.ValidationError("Invalid IBAN number!")
return data
-3
View File
@@ -1,3 +0,0 @@
from django.db import models
# Create your models here.
-7
View File
@@ -1,7 +0,0 @@
Dis is claim
<form action="" method="post">
{{ form }}
<input type="submit" value="Submit">
{% csrf_token %}
</form>
-54
View File
@@ -1,54 +0,0 @@
from django.test import TestCase
from .forms import ExpensesClaim
class ExpensesClaimTest(TestCase):
"""Test expenses claim form."""
def test_valid_data1(self):
form = ExpensesClaim({
'name': "John Doe",
'iban': "FI37 1590 3000 0007 76",
'amount': 12.54
})
self.assertTrue(form.is_valid())
def test_valid_data2(self):
form = ExpensesClaim({
'name': "John Cena",
'iban': "AL35202111090000000001234567",
'amount': 12
})
self.assertTrue(form.is_valid())
def test_valid_data3(self):
form = ExpensesClaim({
'name': "John Wayne",
'iban': "BR1500000000000010932840814P2",
'amount': 12.0
})
self.assertTrue(form.is_valid())
def test_invalid_iban(self):
form = ExpensesClaim({
'name': "John Lennon",
'iban': "FI3734 1590 3000 0007 76",
'amount': 12.54
})
self.assertFalse(form.is_valid())
def test_invalid_amount(self):
form = ExpensesClaim({
'name': "John Kenedy",
'iban': "FI37 1590 3000 0007 76",
'amount': "asd"
})
self.assertFalse(form.is_valid())
def test_invalid_amount_decimal_places(self):
form = ExpensesClaim({
'name': "John Travolta",
'iban': "FI37 1590 3000 0007 76",
'amount': 12.544
})
self.assertFalse(form.is_valid())
-9
View File
@@ -1,9 +0,0 @@
"""Expenses claim urls."""
from django.conf.urls import url
from .views import claim
urlpatterns = [
url(r'^new', claim)
]
-22
View File
@@ -1,22 +0,0 @@
"""Expenses claim views."""
from django.shortcuts import render
from django.views.decorators.http import require_http_methods
from django.http import HttpResponse
from .forms import ExpensesClaim
# Allow only GET or POST
@require_http_methods(["GET", "POST"])
def claim(request):
"""Render expenses claim form."""
if request.method == 'POST':
form = ExpensesClaim(request.POST)
if form.is_valid():
return HttpResponse()
elif request.method == 'GET':
form = ExpensesClaim()
return render(request, 'claim.html', {'form': form})
-1
View File
@@ -105,7 +105,6 @@ INSTALLED_APPS = [
'phonenumber_field',
'import_export',
'django_filters',
'expenses_claim',
]
IMPORT_EXPORT_USE_TRANSACTIONS = True
-2
View File
@@ -27,7 +27,6 @@ import webapp.urls
import infoscreen.urls
import members.urls
import coffee_scale.urls
import expenses_claim.urls
favicon_view = RedirectView.as_view(
url='static/img/favicon.png', permanent=True)
@@ -40,7 +39,6 @@ urlpatterns = [
url(r'^coffee/', include('coffee_scale.urls')),
url(r'^kaehmy/', include('kaehmy.urls')),
url(r'^ohlhafv/', include('ohlhafv.urls')),
url(r'^expenses/', include('expenses_claim.urls')),
# favourite icon
url(r'^favicon\.ico$', favicon_view),