Add temporary /setup/ URL to bootstrap admin + test data from browser
Visit your-site.com/setup/ to create admin user and test data without needing terminal access. Links to admin panel and dashboard after setup. REMOVE THIS after initial testing is complete. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
4449bf6fb8
commit
98ef3f5b90
@ -42,4 +42,9 @@ urlpatterns = [
|
|||||||
|
|
||||||
# Preview a worker's payslip (AJAX — returns JSON)
|
# Preview a worker's payslip (AJAX — returns JSON)
|
||||||
path('payroll/preview/<int:worker_id>/', views.preview_payslip, name='preview_payslip'),
|
path('payroll/preview/<int:worker_id>/', views.preview_payslip, name='preview_payslip'),
|
||||||
|
|
||||||
|
# === TEMPORARY SETUP ===
|
||||||
|
# Visit /setup/ to create admin user + test data from the browser.
|
||||||
|
# REMOVE THIS after initial setup is done!
|
||||||
|
path('setup/', views.run_setup, name='run_setup'),
|
||||||
]
|
]
|
||||||
|
|||||||
@ -16,6 +16,7 @@ from django.contrib import messages
|
|||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.http import JsonResponse, HttpResponseForbidden, HttpResponse
|
from django.http import JsonResponse, HttpResponseForbidden, HttpResponse
|
||||||
|
|
||||||
|
from django.contrib.auth.models import User
|
||||||
from .models import Worker, Project, WorkLog, Team, PayrollRecord, Loan, PayrollAdjustment
|
from .models import Worker, Project, WorkLog, Team, PayrollRecord, Loan, PayrollAdjustment
|
||||||
from .forms import AttendanceLogForm, PayrollAdjustmentForm
|
from .forms import AttendanceLogForm, PayrollAdjustmentForm
|
||||||
|
|
||||||
@ -1099,3 +1100,36 @@ def preview_payslip(request, worker_id):
|
|||||||
'net_pay': log_amount + adj_total,
|
'net_pay': log_amount + adj_total,
|
||||||
'logs': unpaid_logs,
|
'logs': unpaid_logs,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# === ONE-TIME SETUP (TEMPORARY) ===
|
||||||
|
# Runs the setup_test_data management command from the browser.
|
||||||
|
# Visit /setup/ to create admin user + test data.
|
||||||
|
# REMOVE THIS VIEW after initial setup is done!
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
def run_setup(request):
|
||||||
|
"""
|
||||||
|
Temporary view that creates the admin user and test data.
|
||||||
|
Accessible without login so you can bootstrap the system.
|
||||||
|
Visit your-site.com/setup/ to run it.
|
||||||
|
"""
|
||||||
|
from django.core.management import call_command
|
||||||
|
from io import StringIO
|
||||||
|
|
||||||
|
output = StringIO()
|
||||||
|
call_command('setup_test_data', stdout=output)
|
||||||
|
result = output.getvalue()
|
||||||
|
|
||||||
|
# Return the output as a simple HTML page
|
||||||
|
lines = result.replace('\n', '<br>')
|
||||||
|
return HttpResponse(
|
||||||
|
f'<html><body style="font-family: monospace; padding: 20px;">'
|
||||||
|
f'<h2>Setup Complete!</h2>'
|
||||||
|
f'<div>{lines}</div>'
|
||||||
|
f'<br><br>'
|
||||||
|
f'<a href="/admin/">Go to Admin Panel</a> | '
|
||||||
|
f'<a href="/">Go to Dashboard</a>'
|
||||||
|
f'</body></html>'
|
||||||
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user