53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
import os
|
|
|
|
file_path = 'core/views.py'
|
|
|
|
old_content = """@login_required
|
|
def invoice_list(request):
|
|
sales = Sale.objects.all().order_by('-created_at')
|
|
paginator = Paginator(sales, 25)
|
|
return render(request, 'core/invoices.html', {'sales': paginator.get_page(request.GET.get('page'))})"""
|
|
|
|
new_content = """@login_required
|
|
def invoice_list(request):
|
|
sales = Sale.objects.all().order_by('-created_at')
|
|
|
|
# Filter by date range
|
|
start_date = request.GET.get('start_date')
|
|
end_date = request.GET.get('end_date')
|
|
if start_date:
|
|
sales = sales.filter(created_at__date__gte=start_date)
|
|
if end_date:
|
|
sales = sales.filter(created_at__date__lte=end_date)
|
|
|
|
# Filter by customer
|
|
customer_id = request.GET.get('customer')
|
|
if customer_id:
|
|
sales = sales.filter(customer_id=customer_id)
|
|
|
|
# Filter by status
|
|
status = request.GET.get('status')
|
|
if status:
|
|
sales = sales.filter(status=status)
|
|
|
|
paginator = Paginator(sales, 25)
|
|
|
|
context = {
|
|
'sales': paginator.get_page(request.GET.get('page')),
|
|
'customers': Customer.objects.all(),
|
|
'payment_methods': PaymentMethod.objects.filter(is_active=True),
|
|
'site_settings': SystemSetting.objects.first(),
|
|
}
|
|
return render(request, 'core/invoices.html', context)"""
|
|
|
|
with open(file_path, 'r') as f:
|
|
content = f.read()
|
|
|
|
if old_content in content:
|
|
content = content.replace(old_content, new_content)
|
|
with open(file_path, 'w') as f:
|
|
f.write(content)
|
|
print("Successfully patched invoice_list")
|
|
else:
|
|
print("Could not find exact match for invoice_list function")
|