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)