This commit is contained in:
2025-04-15 10:02:26 +02:00
parent 1f4ad77acc
commit 4e377f5a72
12 changed files with 716 additions and 82 deletions

View File

@@ -2,30 +2,42 @@ from django.shortcuts import render
from django.http import JsonResponse
from django.apps import apps
from datetime import date
from .models import Client
# View to render the table page
def excel_table_view(request):
# Fetch existing entries from both tables
# Clients Page (Now the homepage)
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):
entries_table1 = apps.get_model('sheets', 'ExcelEntry').objects.all()
entries_table2 = apps.get_model('sheets', 'SecondTableEntry').objects.all()
return render(request, 'excel_table.html', {
'entries_table1': entries_table1,
'entries_table2': entries_table2,
})
return render(request, 'table_one.html', {'entries_table1': entries_table1})
# Generic view to add a new row to any table
# Table Two View (SecondTableEntry)
def table_two_view(request):
entries_table2 = apps.get_model('sheets', 'SecondTableEntry').objects.all()
return render(request, 'table_two.html', {'entries_table2': entries_table2})
# Add Entry (Generic for all models)
def add_entry(request, model_name):
if request.method == 'POST':
try:
# Dynamically get the model
model = apps.get_model('sheets', model_name)
# Get data from the request
name = request.POST.get('name', 'New Name')
if model_name.lower() == 'client':
address = request.POST.get('address', '')
entry = model.objects.create(name=name, address=address)
return JsonResponse({
'id': entry.id,
'name': entry.name,
'address': entry.address,
})
age = int(request.POST.get('age', 0))
email = request.POST.get('email', 'example@email.com')
# Create a new entry
entry = model.objects.create(
name=name,
age=age,
@@ -33,7 +45,6 @@ def add_entry(request, model_name):
date_joined=date.today()
)
# Return the new entry as JSON response
return JsonResponse({
'id': entry.id,
'name': entry.name,
@@ -47,29 +58,35 @@ def add_entry(request, model_name):
return JsonResponse({'status': 'error', 'message': 'Invalid request'}, status=400)
# Generic view to update an entry in any table
# Update Entry (Generic for all models)
def update_entry(request, model_name):
if request.method == 'POST':
try:
# Dynamically get the model
model = apps.get_model('sheets', model_name)
# Get data from the request
entry_id = int(request.POST.get('id'))
entry = model.objects.get(id=entry_id)
name = request.POST.get('name')
if model_name.lower() == 'client':
address = request.POST.get('address', '')
entry.name = name
entry.address = address
entry.save()
return JsonResponse({
'status': 'success',
'id': entry.id,
'name': entry.name,
'address': entry.address,
})
age = int(request.POST.get('age'))
email = request.POST.get('email')
# Fetch the entry to be updated
entry = model.objects.get(id=entry_id)
# Update the entry with new data
entry.name = name
entry.age = age
entry.email = email
entry.save()
# Return the updated entry as a JSON response
return JsonResponse({
'status': 'success',
'id': entry.id,
@@ -86,21 +103,14 @@ def update_entry(request, model_name):
return JsonResponse({'status': 'error', 'message': 'Invalid request'}, status=400)
# Generic view to delete an entry from any table
# Delete Entry (Generic for all models)
def delete_entry(request, model_name):
if request.method == 'POST':
try:
# Dynamically get the model
model = apps.get_model('sheets', model_name)
# Get the entry ID from the request
entry_id = request.POST.get('id')
# Find the entry by its ID and delete it
entry = model.objects.get(id=entry_id)
entry.delete()
# Return success response
return JsonResponse({'status': 'success', 'message': 'Entry deleted'})
except model.DoesNotExist:
@@ -108,4 +118,4 @@ def delete_entry(request, model_name):
except Exception as e:
return JsonResponse({'status': 'error', 'message': str(e)}, status=400)
return JsonResponse({'status': 'error', 'message': 'Invalid request'}, status=400)
return JsonResponse({'status': 'error', 'message': 'Invalid request'}, status=400)