Add login
This commit is contained in:
parent
e38b781ff9
commit
1f48c41005
5 changed files with 34 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<h1>Nummi</h1>
|
<h1>Nummi</h1>
|
||||||
|
|
||||||
|
<a href="{% url 'logout' %}">Logout</a>
|
||||||
<a href="{% url 'transaction' %}">Add transaction</a>
|
<a href="{% url 'transaction' %}">Add transaction</a>
|
||||||
|
|
||||||
{% if transactions %}
|
{% if transactions %}
|
||||||
|
|
14
nummi/main/templates/main/login.html
Normal file
14
nummi/main/templates/main/login.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{% extends "main/base.html" %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
|
||||||
|
<h1>Login</h1>
|
||||||
|
|
||||||
|
<form action="{% url 'login' %}" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form.as_p }}
|
||||||
|
<input hidden value="{{ next }}" name="next" />
|
||||||
|
<input type="submit" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -4,6 +4,8 @@ from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("", views.index, name="index"),
|
path("", views.index, name="index"),
|
||||||
|
path("login", views.LoginView.as_view(), name="login"),
|
||||||
|
path("logout", views.LogoutView.as_view(), name="logout"),
|
||||||
path("transaction", views.transaction, name="transaction"),
|
path("transaction", views.transaction, name="transaction"),
|
||||||
path("transaction/<uuid>", views.transaction, name="transaction"),
|
path("transaction/<uuid>", views.transaction, name="transaction"),
|
||||||
path(
|
path(
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
from django.shortcuts import render, get_object_or_404, redirect
|
from django.shortcuts import render, get_object_or_404, redirect
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.contrib.auth import views as auth_views
|
||||||
|
|
||||||
from .models import Transaction, TransactionForm, Invoice, InvoiceForm, Category
|
from .models import Transaction, TransactionForm, Invoice, InvoiceForm, Category
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
def index(request):
|
def index(request):
|
||||||
_transactions = Transaction.objects.order_by("-date")[:5]
|
_transactions = Transaction.objects.order_by("-date")[:5]
|
||||||
_categories = Category.objects.order_by("name")
|
_categories = Category.objects.order_by("name")
|
||||||
|
@ -15,6 +18,15 @@ def index(request):
|
||||||
return render(request, "main/index.html", context)
|
return render(request, "main/index.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
class LoginView(auth_views.LoginView):
|
||||||
|
template_name = "main/login.html"
|
||||||
|
next_page = "index"
|
||||||
|
|
||||||
|
class LogoutView(auth_views.LogoutView):
|
||||||
|
next_page = "login"
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
def transaction(request, uuid=None):
|
def transaction(request, uuid=None):
|
||||||
if uuid is None:
|
if uuid is None:
|
||||||
_transaction = Transaction()
|
_transaction = Transaction()
|
||||||
|
@ -34,6 +46,7 @@ def transaction(request, uuid=None):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
def update_transaction(request, uuid):
|
def update_transaction(request, uuid):
|
||||||
try:
|
try:
|
||||||
_transaction = Transaction.objects.get(id=uuid)
|
_transaction = Transaction.objects.get(id=uuid)
|
||||||
|
@ -44,12 +57,14 @@ def update_transaction(request, uuid):
|
||||||
return redirect(transaction, uuid=uuid)
|
return redirect(transaction, uuid=uuid)
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
def invoice(request, uuid):
|
def invoice(request, uuid):
|
||||||
_invoice = get_object_or_404(Invoice, id=uuid)
|
_invoice = get_object_or_404(Invoice, id=uuid)
|
||||||
with _invoice.file.open() as _file:
|
with _invoice.file.open() as _file:
|
||||||
return HttpResponse(_file.read(), content_type="application/pdf")
|
return HttpResponse(_file.read(), content_type="application/pdf")
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
def add_invoice(request, uuid):
|
def add_invoice(request, uuid):
|
||||||
_transaction = get_object_or_404(Transaction, id=uuid)
|
_transaction = get_object_or_404(Transaction, id=uuid)
|
||||||
_invoice = Invoice(transaction=_transaction)
|
_invoice = Invoice(transaction=_transaction)
|
||||||
|
@ -58,6 +73,7 @@ def add_invoice(request, uuid):
|
||||||
return redirect(transaction, uuid=uuid)
|
return redirect(transaction, uuid=uuid)
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
def del_invoice(request, uuid, invoice_id):
|
def del_invoice(request, uuid, invoice_id):
|
||||||
_invoice = get_object_or_404(Invoice, id=invoice_id)
|
_invoice = get_object_or_404(Invoice, id=invoice_id)
|
||||||
_invoice.delete()
|
_invoice.delete()
|
||||||
|
|
|
@ -119,6 +119,7 @@ USE_TZ = True
|
||||||
# https://docs.djangoproject.com/en/4.0/howto/static-files/
|
# https://docs.djangoproject.com/en/4.0/howto/static-files/
|
||||||
|
|
||||||
STATIC_URL = "static/"
|
STATIC_URL = "static/"
|
||||||
|
LOGIN_URL = "login"
|
||||||
|
|
||||||
# Default primary key field type
|
# Default primary key field type
|
||||||
# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field
|
# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field
|
||||||
|
|
Loading…
Reference in a new issue