feat: major project restructure - move Django to backend dir and fix critical imports

- Restructure project: moved Django backend to backend/ directory
- Add frontend/ directory for future Next.js application
- Add shared/ directory for common resources
- Fix critical Django import errors:
  - Add missing sys.path modification for apps directory
  - Fix undefined CATEGORY_CHOICES imports in rides module
  - Fix media migration undefined references
  - Remove unused imports and f-strings without placeholders
- Install missing django-environ dependency
- Django server now runs without ModuleNotFoundError
- Update .gitignore and README for new structure
- Add pnpm workspace configuration for monorepo setup
This commit is contained in:
pacnpal
2025-08-23 18:37:55 -04:00
parent 652ea149bd
commit b0e0678590
996 changed files with 370 additions and 192768 deletions

View File

@@ -1,160 +0,0 @@
from playwright.sync_api import expect, Page
def test_reviews_list_page(page: Page):
# Navigate to reviews page
page.goto("http://localhost:8000/reviews/")
# Check reviews list elements
expect(page.get_by_role("heading", name="Latest Reviews")).to_be_visible()
expect(page.get_by_role("searchbox", name="Search reviews")).to_be_visible()
# Check filter options
expect(page.get_by_role("combobox", name="Type")).to_be_visible()
expect(page.get_by_role("combobox", name="Rating")).to_be_visible()
expect(page.get_by_role("combobox", name="Sort By")).to_be_visible()
def test_review_search(page: Page):
# Navigate to reviews page
page.goto("http://localhost:8000/reviews/")
# Search for reviews
search_box = page.get_by_role("searchbox", name="Search reviews")
search_box.fill("great experience")
search_box.press("Enter")
# Verify search results
expect(page.get_by_text("great experience", exact=False)).to_be_visible()
def test_review_filters(page: Page):
# Navigate to reviews page
page.goto("http://localhost:8000/reviews/")
# Select type filter
page.get_by_role("combobox", name="Type").select_option("Parks")
# Select rating filter
page.get_by_role("combobox", name="Rating").select_option("5 Stars")
# Select sort order
page.get_by_role("combobox", name="Sort By").select_option("Most Recent")
# Verify filtered results
expect(page.get_by_text("Park Review")).to_be_visible()
expect(page.locator(".five-star-rating")).to_be_visible()
def test_review_detail_page(page: Page):
# Navigate to a specific review
page.goto("http://localhost:8000/reviews/1/")
# Check review details
expect(page.get_by_role("heading", name="Review")).to_be_visible()
expect(page.locator(".review-rating")).to_be_visible()
expect(page.locator(".review-date")).to_be_visible()
expect(page.locator(".review-author")).to_be_visible()
expect(page.locator(".review-content")).to_be_visible()
def test_review_voting(page: Page):
# First login
page.goto("http://localhost:8000/accounts/login/")
page.get_by_label("Username").fill("testuser")
page.get_by_label("Password").fill("testpass123")
page.get_by_role("button", name="Sign In").click()
# Navigate to review
page.goto("http://localhost:8000/reviews/1/")
# Click helpful button
page.get_by_role("button", name="Helpful").click()
# Verify vote registered
expect(page.get_by_text("You found this review helpful")).to_be_visible()
expect(page.locator(".helpful-count")).to_contain_text("1")
def test_review_comments(page: Page):
# First login
page.goto("http://localhost:8000/accounts/login/")
page.get_by_label("Username").fill("testuser")
page.get_by_label("Password").fill("testpass123")
page.get_by_role("button", name="Sign In").click()
# Navigate to review
page.goto("http://localhost:8000/reviews/1/")
# Add comment
page.get_by_label("Comment").fill("Great review! Very helpful.")
page.get_by_role("button", name="Post Comment").click()
# Verify comment appears
expect(page.get_by_text("Great review! Very helpful.")).to_be_visible()
def test_review_moderation(page: Page):
# First login as moderator
page.goto("http://localhost:8000/accounts/login/")
page.get_by_label("Username").fill("moderator")
page.get_by_label("Password").fill("modpass123")
page.get_by_role("button", name="Sign In").click()
# Navigate to review
page.goto("http://localhost:8000/reviews/1/")
# Check moderation options
expect(page.get_by_role("button", name="Edit Review")).to_be_visible()
expect(page.get_by_role("button", name="Delete Review")).to_be_visible()
expect(page.get_by_role("button", name="Flag Review")).to_be_visible()
def test_review_reporting(page: Page):
# First login
page.goto("http://localhost:8000/accounts/login/")
page.get_by_label("Username").fill("testuser")
page.get_by_label("Password").fill("testpass123")
page.get_by_role("button", name="Sign In").click()
# Navigate to review
page.goto("http://localhost:8000/reviews/1/")
# Click report button
page.get_by_role("button", name="Report Review").click()
# Fill report form
page.get_by_label("Reason").select_option("inappropriate")
page.get_by_label("Details").fill("This review contains inappropriate content")
# Submit report
page.get_by_role("button", name="Submit Report").click()
# Verify report confirmation
expect(page.get_by_text("Review reported successfully")).to_be_visible()
def test_review_editing(page: Page):
# First login as review author
page.goto("http://localhost:8000/accounts/login/")
page.get_by_label("Username").fill("testuser")
page.get_by_label("Password").fill("testpass123")
page.get_by_role("button", name="Sign In").click()
# Navigate to own review
page.goto("http://localhost:8000/reviews/1/")
# Click edit button
page.get_by_role("button", name="Edit Review").click()
# Modify review
page.get_by_label("Title").fill("Updated Review Title")
page.get_by_label("Review").fill("Updated review content")
# Save changes
page.get_by_role("button", name="Save Changes").click()
# Verify updates
expect(page.get_by_text("Updated Review Title")).to_be_visible()
expect(page.get_by_text("Updated review content")).to_be_visible()
expect(page.get_by_text("(edited)")).to_be_visible()