37095-vm/core/views.py
Flatlogic Bot d289010e28 1/2/26 V.4
2026-01-03 02:33:33 +00:00

86 lines
2.7 KiB
Python

from django.shortcuts import render, redirect
from ai.local_ai_api import LocalAIApi
import json
def index(request):
user_groups = []
if request.user.is_authenticated:
user_groups = [group.name for group in request.user.groups.all()]
context = {
"project_name": "ComplianceShield",
"user_groups": user_groups,
}
return render(request, "core/index.html", context)
def search(request):
user_groups = []
if request.user.is_authenticated:
user_groups = [group.name for group in request.user.groups.all()]
if request.method == "POST":
query = request.POST.get("query", "")
if query:
response = LocalAIApi.create_response(
{
"input": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": query},
],
},
{
"poll_interval": 5, # seconds
"poll_timeout": 300, # seconds
},
)
if response.get("success"):
text = LocalAIApi.extract_text(response)
if not text:
decoded = LocalAIApi.decode_json_from_response(response)
text = json.dumps(decoded, ensure_ascii=False) if decoded else str(response.get("data", ""))
search_results = text
else:
search_results = "Error: Could not get a response from the AI."
context = {
"project_name": "ComplianceShield",
"search_results": search_results,
"user_groups": user_groups,
}
return render(request, "core/index.html", context)
return redirect("index")
def settings(request):
context = {
"project_name": "ComplianceShield",
"user_groups": user_groups,
}
return render(request, "core/settings.html", context)
def daily_logs(request):
return render(request, "core/daily_logs.html")
def safety_meetings(request):
return render(request, "core/safety_meetings.html")
def incidents(request):
return render(request, "core/incidents.html")
def documents(request):
return render(request, "core/documents.html")
def subcontractors(request):
return render(request, "core/subcontractors.html")
def equipment(request):
return render(request, "core/equipment.html")
def ongoing_projects(request):
return render(request, "core/ongoing_projects.html")
def completed_projects(request):
return render(request, "core/completed_projects.html")
def on_hold_projects(request):
return render(request, "core/on_hold_projects.html")