mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 09:11:08 -05:00
feat: Add PrimeProgress, PrimeSelect, and PrimeSkeleton components with customizable styles and props
- Implemented PrimeProgress component with support for labels, helper text, and various styles (size, variant, color). - Created PrimeSelect component with dropdown functionality, custom templates, and validation states. - Developed PrimeSkeleton component for loading placeholders with different shapes and animations. - Updated index.ts to export new components for easy import. - Enhanced PrimeVueTest.vue to include tests for new components and their functionalities. - Introduced a custom ThrillWiki theme for PrimeVue with tailored color schemes and component styles. - Added ambient type declarations for various components to improve TypeScript support.
This commit is contained in:
121
backend/drf_spectacular_analysis.md
Normal file
121
backend/drf_spectacular_analysis.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# DRF Spectacular Analysis - Working Classes and Status
|
||||
|
||||
## Error Summary
|
||||
- **Error**: `AttributeError: type object 'tuple' has no attribute '_fields'`
|
||||
- **Location**: `drf_spectacular/plumbing.py:1353` in `resolve_type_hint` function
|
||||
- **Root Cause**: A SerializerMethodField somewhere has a return type annotation using plain `tuple` instead of `NamedTuple` or proper typing, and lacks `@extend_schema_field` decorator
|
||||
|
||||
## Preprocessing Hook Status
|
||||
✅ **WORKING** - Successfully excluding problematic views:
|
||||
- EntityNotFoundView
|
||||
- EntityFuzzySearchView
|
||||
- QuickEntitySuggestionView
|
||||
- SendEmailView
|
||||
- MapCacheAPIView
|
||||
|
||||
## Known Working Serializer Files (with @extend_schema_field decorators)
|
||||
|
||||
### ✅ backend/apps/api/v1/serializers_rankings.py
|
||||
**Status**: FIXED - Added 6 missing decorators
|
||||
- `get_total_rides()` → `@extend_schema_field(serializers.IntegerField())`
|
||||
- `get_total_parks()` → `@extend_schema_field(serializers.IntegerField())`
|
||||
- `get_total_companies()` → `@extend_schema_field(serializers.IntegerField())`
|
||||
- `get_average_rating()` → `@extend_schema_field(serializers.FloatField())`
|
||||
- `get_total_reviews()` → `@extend_schema_field(serializers.IntegerField())`
|
||||
- `get_recent_activity()` → `@extend_schema_field(serializers.ListField(child=serializers.DictField()))`
|
||||
|
||||
### ✅ backend/apps/api/v1/accounts/serializers.py
|
||||
**Status**: FIXED - Added 1 missing decorator
|
||||
- `get_full_name()` → `@extend_schema_field(serializers.CharField())`
|
||||
|
||||
### ✅ backend/apps/api/v1/serializers.py
|
||||
**Status**: VERIFIED - All SerializerMethodFields have proper decorators
|
||||
- Multiple get_* methods with proper @extend_schema_field decorators
|
||||
|
||||
## Files Still Needing Analysis
|
||||
|
||||
### 🔍 backend/apps/api/v1/rides/serializers.py
|
||||
**Status**: NEEDS VERIFICATION
|
||||
- Contains SerializerMethodField usage
|
||||
- May have missing @extend_schema_field decorators
|
||||
|
||||
### 🔍 backend/apps/api/v1/parks/serializers.py
|
||||
**Status**: NEEDS VERIFICATION
|
||||
- Contains SerializerMethodField usage
|
||||
- May have missing @extend_schema_field decorators
|
||||
|
||||
### 🔍 backend/apps/api/v1/views/
|
||||
**Status**: NEEDS VERIFICATION
|
||||
- Multiple view files with potential serializer usage
|
||||
- May contain inline serializers or method fields
|
||||
|
||||
### 🔍 backend/apps/api/v1/history/
|
||||
**Status**: NEEDS VERIFICATION
|
||||
- History-related serializers
|
||||
- May have complex return types
|
||||
|
||||
### 🔍 backend/apps/api/v1/media/
|
||||
**Status**: NEEDS VERIFICATION
|
||||
- Media-related serializers
|
||||
- May have file/image field serializers
|
||||
|
||||
## Search Results Summary
|
||||
|
||||
### SerializerMethodField Usage Found
|
||||
- **Total found**: 79 SerializerMethodField method definitions across codebase
|
||||
- **Return type annotations found**: 45 get_* methods with return types
|
||||
- **All verified**: Have proper @extend_schema_field decorators
|
||||
|
||||
### Tuple Type Hints Search
|
||||
- **Plain tuple usage**: Only 1 found in runtime check (not type hint)
|
||||
- **Typing imports**: No Tuple imports found in initial search
|
||||
- **Return type annotations with tuple**: 0 found
|
||||
|
||||
## Systematic Analysis Plan
|
||||
|
||||
### Phase 1: Complete File Inventory
|
||||
1. List all serializer files in backend/apps/api/v1/
|
||||
2. Identify files with SerializerMethodField usage
|
||||
3. Check each for missing @extend_schema_field decorators
|
||||
|
||||
### Phase 2: Deep Type Hint Analysis
|
||||
1. Search for any typing imports (Tuple, Union, Optional, etc.)
|
||||
2. Look for return type annotations on get_* methods
|
||||
3. Identify any complex return types that might confuse drf-spectacular
|
||||
|
||||
### Phase 3: View-Level Analysis
|
||||
1. Check for inline serializers in views
|
||||
2. Look for dynamic serializer creation
|
||||
3. Verify all response serializers are properly defined
|
||||
|
||||
## Current Hypothesis
|
||||
The error persists despite fixing obvious missing decorators, suggesting:
|
||||
1. **Hidden SerializerMethodField**: A field without obvious naming pattern
|
||||
2. **Dynamic serializer**: Created at runtime without proper type hints
|
||||
3. **Third-party serializer**: From installed package (dj-rest-auth, etc.)
|
||||
4. **Complex nested type**: Union, Optional, or other typing construct with tuple
|
||||
|
||||
## Next Steps
|
||||
1. Create complete inventory of all serializer files
|
||||
2. Systematically check each file for SerializerMethodField usage
|
||||
3. Focus on files that haven't been verified yet
|
||||
4. Look for non-standard method naming patterns
|
||||
5. Check third-party package serializers if needed
|
||||
|
||||
## Files Excluded by Preprocessing Hook
|
||||
These views are successfully excluded and not causing the error:
|
||||
- `/api/v1/email/send/` (SendEmailView)
|
||||
- `/api/v1/core/entities/search/` (EntityFuzzySearchView)
|
||||
- `/api/v1/core/entities/not-found/` (EntityNotFoundView)
|
||||
- `/api/v1/core/entities/suggestions/` (QuickEntitySuggestionView)
|
||||
- `/api/v1/maps/cache/` (MapCacheAPIView)
|
||||
- `/api/v1/maps/cache/invalidate/` (MapCacheAPIView)
|
||||
|
||||
## Warning Messages (Non-blocking)
|
||||
These warnings appear but don't cause the error:
|
||||
- dj-rest-auth deprecation warnings
|
||||
- Auth view schema resolution warnings
|
||||
- Health view schema warnings
|
||||
- History view parameter warnings
|
||||
|
||||
The tuple error occurs after all warnings, indicating it's in a different serializer.
|
||||
Reference in New Issue
Block a user