122 lines
4.4 KiB
Python
122 lines
4.4 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 (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()
|
|
return render(request, 'table_one.html', {'entries_table1': entries_table1})
|
|
|
|
# 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:
|
|
model = apps.get_model('sheets', model_name)
|
|
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')
|
|
|
|
entry = model.objects.create(
|
|
name=name,
|
|
age=age,
|
|
email=email,
|
|
date_joined=date.today()
|
|
)
|
|
|
|
return JsonResponse({
|
|
'id': entry.id,
|
|
'name': entry.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 for all models)
|
|
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)
|
|
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')
|
|
|
|
entry.name = name
|
|
entry.age = age
|
|
entry.email = email
|
|
entry.save()
|
|
|
|
return JsonResponse({
|
|
'status': 'success',
|
|
'id': entry.id,
|
|
'name': entry.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 for all models)
|
|
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)
|