Files
he-database/sheets/views.py
2025-04-22 13:40:09 +02:00

140 lines
4.7 KiB
Python

from django.shortcuts import render
from django.http import JsonResponse
from django.apps import apps
from datetime import date
from .models import Client
# Clients Page (Main)
def clients_list(request):
clients = Client.objects.all().order_by('id')
return render(request, 'clients_table.html', {'clients': clients})
# Table One View (ExcelEntry)
def table_one_view(request):
ExcelEntry = apps.get_model('sheets', 'ExcelEntry')
entries_table1 = ExcelEntry.objects.all()
clients = Client.objects.all()
return render(request, 'table_one.html', {
'entries_table1': entries_table1,
'clients': clients,
})
# Table Two View (SecondTableEntry)
def table_two_view(request):
SecondTableEntry = apps.get_model('sheets', 'SecondTableEntry')
entries_table2 = SecondTableEntry.objects.all()
clients = Client.objects.all()
return render(request, 'table_two.html', {
'entries_table2': entries_table2,
'clients': clients,
})
# Add Entry (Generic)
def add_entry(request, model_name):
if request.method == 'POST':
try:
model = apps.get_model('sheets', model_name)
if model_name.lower() == 'client':
name = request.POST.get('name', 'New Name')
address = request.POST.get('address', '')
entry = model.objects.create(name=name, address=address)
return JsonResponse({
'id': entry.id,
'name': entry.name,
'address': entry.address,
})
client_id = request.POST.get('client_id')
client = Client.objects.get(id=client_id)
age = int(request.POST.get('age', 0))
email = request.POST.get('email', 'example@email.com')
entry = model.objects.create(
client=client,
age=age,
email=email,
date_joined=date.today()
)
return JsonResponse({
'id': entry.id,
'client_name': client.name,
'age': entry.age,
'email': entry.email,
'date_joined': entry.date_joined.strftime('%Y-%m-%d'),
})
except Exception as e:
return JsonResponse({'status': 'error', 'message': str(e)}, status=400)
return JsonResponse({'status': 'error', 'message': 'Invalid request'}, status=400)
# Update Entry (Generic)
def update_entry(request, model_name):
if request.method == 'POST':
try:
model = apps.get_model('sheets', model_name)
entry_id = int(request.POST.get('id'))
entry = model.objects.get(id=entry_id)
if model_name.lower() == 'client':
entry.name = request.POST.get('name')
entry.address = request.POST.get('address', '')
entry.save()
return JsonResponse({
'status': 'success',
'id': entry.id,
'name': entry.name,
'address': entry.address,
})
client_id = request.POST.get('client_id')
client = Client.objects.get(id=client_id)
age = int(request.POST.get('age'))
email = request.POST.get('email')
entry.client = client
entry.age = age
entry.email = email
entry.save()
return JsonResponse({
'status': 'success',
'id': entry.id,
'name': client.name,
'age': entry.age,
'email': entry.email,
'date_joined': entry.date_joined.strftime('%Y-%m-%d'),
})
except model.DoesNotExist:
return JsonResponse({'status': 'error', 'message': 'Entry not found'}, status=404)
except Exception as e:
return JsonResponse({'status': 'error', 'message': str(e)}, status=400)
return JsonResponse({'status': 'error', 'message': 'Invalid request'}, status=400)
# Delete Entry (Generic)
def delete_entry(request, model_name):
if request.method == 'POST':
try:
model = apps.get_model('sheets', model_name)
entry_id = request.POST.get('id')
entry = model.objects.get(id=entry_id)
entry.delete()
return JsonResponse({'status': 'success', 'message': 'Entry deleted'})
except model.DoesNotExist:
return JsonResponse({'status': 'error', 'message': 'Entry not found'}, status=404)
except Exception as e:
return JsonResponse({'status': 'error', 'message': str(e)}, status=400)
return JsonResponse({'status': 'error', 'message': 'Invalid request'}, status=400)