import logging import yaml from django.shortcuts import render, redirect , get_object_or_404 from .forms import OrganizationForm from .models import Organization,Document,Risk, DocumentTemplate,DocumentRiskControl from backend.accounts.utils import send_confirmation_email,send_document_email from django.contrib.admin.views.decorators import staff_member_required # @login_required # def index(request): # return HttpResponse('

Django

Página simples.

') logger = logging.getLogger(__name__) # @login_required def index(request): template_name = 'index.html' return render(request, template_name) def signup(request): if request.method == 'POST': form = OrganizationForm(request.POST) if form.is_valid(): form.save() send_confirmation_email(form.data['email']) return render(request, 'thankyou.html', { 'email': form.data['email'], }) else: logging.error(form.errors) return render(request, 'signup.html', {'form': form}) else: form = OrganizationForm() return render(request, 'signup.html', {'form': form}) def thankyou(request): return render(request, 'thankyou.html') def document(request, document_id): print(f"Document ID received: {document_id}") doc = get_object_or_404(Document, id=document_id) return render(request, 'document.html', { 'document': doc, 'organization': doc.organization, 'segments': doc.segments.all(), }) @staff_member_required def template_preview(request, name): template = get_object_or_404(DocumentTemplate, name=name) parsed_template = template.to_dict() return render(request, 'template_preview.html', {'template': parsed_template}) def payment_page(request): email = request.GET.get("email") organization = Organization.objects.get(email=email) document = Document.objects.get(organization=organization) document_link = f"http://127.0.0.1:8000/document/{document.id}/" if request.method == "POST": send_document_email(email, document_link) return redirect(document_link) return render(request, "payment.html", {"email": email}) def docprew(request, document_id): doc = get_object_or_404(Document, id=document_id) org = doc.organization document_risk_controls = DocumentRiskControl.objects.filter(document=doc) unique_risks = Risk.objects.filter(id__in=document_risk_controls.values('risk_id')).distinct() risks_with_controls = {} for risk in unique_risks: related_controls = DocumentRiskControl.objects.filter(risk=risk) risk_controls = [control.control.name for control in related_controls] risks_with_controls[risk] = ", ".join(risk_controls) return render(request, 'document_detail.html', { 'document': doc, 'organization': org, 'created_at': doc.created_at, 'risks_with_controls': risks_with_controls, })