74 lines
2.8 KiB
Python
74 lines
2.8 KiB
Python
from django.shortcuts import render, redirect
|
|
from django.contrib.auth.decorators import login_required
|
|
from apps.transactions.forms import TransactionForm
|
|
from apps.transactions.forms import ImportForm
|
|
from apps.transactions.models import Transaction
|
|
from apps.transactions.importbtcde import ImportBtcDe
|
|
import socket
|
|
|
|
@login_required
|
|
def add(request):
|
|
if request.method == "POST":
|
|
# request.POST is immutable, so make a copy
|
|
values = request.POST.copy()
|
|
values['owner'] = request.user.id
|
|
form = TransactionForm(values)
|
|
if form.is_valid():
|
|
try:
|
|
form.save()
|
|
return redirect('/transactions/show')
|
|
except:
|
|
pass
|
|
else:
|
|
form = TransactionForm()
|
|
return render(request,'add.html',{'form':form})
|
|
|
|
@login_required
|
|
def importbtcde(request):
|
|
form = ImportForm()
|
|
if request.method == "POST":
|
|
form = ImportForm(request.POST)
|
|
if form.is_valid():
|
|
# try:
|
|
importBtcDe = ImportBtcDe()
|
|
# importBtcDe.Import(request.POST['api_key'], request.POST['api_secret'], request.POST['start_date'], request.user.id)
|
|
importBtcDe.Import(form.cleaned_data.get('api_key'), form.cleaned_data.get('api_secret'), form.cleaned_data.get('start_date'), request.user)
|
|
return redirect('/transactions/show')
|
|
# except:
|
|
# pass
|
|
hostname = socket.gethostname()
|
|
my_ip = socket.gethostbyname(hostname)
|
|
return render(request,'import.html',{'form':form, 'my_ip': my_ip})
|
|
|
|
@login_required
|
|
def show(request):
|
|
if 'crypto' in request.GET:
|
|
transactions = Transaction.objects.filter(owner=request.user, crypto_currency=request.GET['crypto']).order_by('-date_valid')
|
|
else:
|
|
transactions = Transaction.objects.filter(owner=request.user).order_by('-date_valid')
|
|
return render(request,"show.html",{'transactions':transactions})
|
|
|
|
@login_required
|
|
def edit(request, id):
|
|
transaction = Transaction.objects.get(id=id, owner=request.user)
|
|
form = TransactionForm(request.POST or None, instance = transaction)
|
|
return render(request,'edit.html', {'transaction':transaction, 'form': form})
|
|
|
|
@login_required
|
|
def update(request, id):
|
|
transaction = Transaction.objects.get(id=id, owner=request.user)
|
|
# request.POST is immutable, so make a copy
|
|
values = request.POST.copy()
|
|
values['owner'] = request.user.id
|
|
form = TransactionForm(values, instance = transaction)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect("/transactions/show")
|
|
return render(request, 'edit.html', {'transaction': transaction, 'form': form})
|
|
|
|
@login_required
|
|
def destroy(request, id):
|
|
transaction = Transaction.objects.get(id=id, owner=request.user.id)
|
|
transaction.delete()
|
|
return redirect("/transactions/show")
|