feat: admin panel enrichment

This commit is contained in:
mohamad
2026-07-19 14:31:28 +03:30
parent d8d7819eca
commit 1042fba121
77 changed files with 4616 additions and 2 deletions
+76
View File
@@ -1,3 +1,5 @@
from datetime import date
from django.test import TestCase
from django.urls import reverse
@@ -41,6 +43,80 @@ class HomeViewTest(TestCase):
self.assertIn("the Way in Development", content)
self.assertIn('data-project-filter="all"', content)
def test_home_renders_published_project_briefs(self):
from django.contrib.auth.models import User
from apps.accounts.models import ClientProfile
from apps.pages.models import HomepageSection
from apps.projects.models import ProjectBrief
user = User.objects.create_user(username="client", email="c@example.com", password="x")
ClientProfile.objects.create(user=user, timezone="UTC")
HomepageSection.objects.create(
section_type=HomepageSection.TYPE_PROJECTS,
title="Showcase",
order=1,
is_active=True,
)
ProjectBrief.objects.create(
client=user,
title="Private title",
category=ProjectBrief.CATEGORY_WEB,
description="Full description for the project.",
budget_range=ProjectBrief.BUDGET_5K_15K,
show_on_website=True,
public_title="Public showcase title",
public_summary="A curated summary for the website.",
public_project_status="new",
public_tags="Django, Portal",
show_category_on_website=False,
)
response = self.client.get(reverse("pages:home"))
self.assertContains(response, "Public showcase title")
self.assertContains(response, "A curated summary for the website.")
self.assertContains(response, "Django")
self.assertNotContains(response, "Private title")
def test_home_respects_per_field_website_visibility(self):
from django.contrib.auth.models import User
from apps.accounts.models import ClientProfile
from apps.pages.models import HomepageSection
from apps.projects.models import ProjectBrief
user = User.objects.create_user(username="c2", email="c2@example.com", password="x")
ClientProfile.objects.create(user=user, timezone="UTC")
HomepageSection.objects.create(
section_type=HomepageSection.TYPE_PROJECTS,
title="Showcase",
order=1,
is_active=True,
)
ProjectBrief.objects.create(
client=user,
title="Visible project",
category=ProjectBrief.CATEGORY_DATA,
description="Secret internal description.",
budget_range=ProjectBrief.BUDGET_15K_50K,
desired_deadline=date(2026, 12, 1),
reference_links="https://example.com/spec",
show_on_website=True,
public_summary="Public summary.",
show_budget_on_website=True,
show_deadline_on_website=True,
show_references_on_website=True,
show_description_on_website=False,
show_category_on_website=False,
)
response = self.client.get(reverse("pages:home"))
content = response.content.decode()
self.assertIn("$15,000", content)
self.assertIn("Dec 1, 2026", content)
self.assertIn("https://example.com/spec", content)
self.assertNotIn("Secret internal description.", content)
class AboutViewTest(TestCase):
def test_about_returns_200(self):