diff --git a/backend/api/views.py b/backend/api/views.py
index 5c44592..bb32023 100644
--- a/backend/api/views.py
+++ b/backend/api/views.py
@@ -599,6 +599,7 @@ class UserViewSet(viewsets.ModelViewSet):
# Missing flavors with community avg and followed circle avg
missing_flavors = Flavor.objects.exclude(id__in=rated_ids) \
+ .exclude(category__name='Packs and other') \
.select_related('category') \
.annotate(
average_rating=Avg('ratings__score'),
diff --git a/backend/entrypoint.sh b/backend/entrypoint.sh
index 8381fdb..81a35c3 100755
--- a/backend/entrypoint.sh
+++ b/backend/entrypoint.sh
@@ -5,8 +5,13 @@ set -e
# Apply database migrations
echo "Applying database migrations..."
+python manage.py makemigrations
python manage.py migrate
+# Create cache table for ratelimiting
+echo "Creating cache table..."
+python manage.py createcachetable
+
# Collect static files
echo "Collecting static files..."
python manage.py collectstatic --no-input
@@ -20,6 +25,10 @@ chmod -R 777 django_cache
echo "Syncing flavors..."
python manage.py sync_flavors
+# Seed legacy flavors if needed
+echo "Seeding legacy flavors..."
+python manage.py seed_legacy_flavors
+
# Start the server using Gunicorn
echo "Starting Gunicorn..."
exec gunicorn holy_backend.wsgi:application --bind 0.0.0.0:8000 --workers 3 --timeout 120
diff --git a/frontend/src/pages/Dashboard.tsx b/frontend/src/pages/Dashboard.tsx
index f14697e..cbb1588 100644
--- a/frontend/src/pages/Dashboard.tsx
+++ b/frontend/src/pages/Dashboard.tsx
@@ -139,7 +139,7 @@ const Dashboard: React.FC = () => {
// Performance Optimization: Memoize categories and filtered lists
const exploreCategories = useMemo(() => {
if (!data) return ['All'];
- const cats = new Set(data.missing_flavors.map(f => f.category_name));
+ const cats = new Set(data.missing_flavors.filter(f => f.category_name !== 'Packs and other').map(f => f.category_name));
return ['All', ...Array.from(cats).sort()];
}, [data]);
@@ -287,12 +287,12 @@ const Dashboard: React.FC = () => {
-
+
@@ -300,7 +300,7 @@ const Dashboard: React.FC = () => {
fullWidth
size="small" variant={ratedSort === 'rating' ? 'contained' : 'text'}
onClick={() => setRatedSort('rating')}
- sx={{ textTransform: 'none', fontWeight: 'bold', borderRadius: 0.8, height: { xs: 38, lg: 30 }, fontSize: '0.8rem' }}
+ sx={{ textTransform: 'none', fontWeight: 'bold', borderRadius: 0.8, height: 32, px: { xs: 1, sm: 2 }, fontSize: '0.8rem', whiteSpace: 'nowrap', minWidth: 'fit-content' }}
>
{t('dashboard.rating')}
@@ -463,12 +463,12 @@ const Dashboard: React.FC = () => {
-
+
@@ -476,7 +476,7 @@ const Dashboard: React.FC = () => {
fullWidth
size="small" variant={exploreSort === 'circle' ? 'contained' : 'text'}
onClick={() => setExploreSort('circle')}
- sx={{ textTransform: 'none', fontWeight: 'bold', borderRadius: 0.8, height: { xs: 38, lg: 30 }, px: 2, fontSize: '0.8rem' }}
+ sx={{ textTransform: 'none', fontWeight: 'bold', borderRadius: 0.8, height: 32, px: { xs: 1, sm: 2 }, fontSize: '0.8rem', whiteSpace: 'nowrap', minWidth: 'fit-content' }}
>
{t('dashboard.circleRating')}