Skip to content

Commit b169513

Browse files
Tony QiuTony Qiu
authored andcommitted
organization button onmousedown opens clubs ig in new tab
1 parent 070e647 commit b169513

File tree

9 files changed

+45
-28
lines changed

9 files changed

+45
-28
lines changed

backend/apps/core/views.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,10 @@ def login_email(request):
205205
# Check if user has confirmed their email
206206
if user.first_name and "|" in user.first_name:
207207
return Response(
208-
{"error": "Please confirm your email before logging in. Check your inbox for a confirmation email."},
209-
status=status.HTTP_401_UNAUTHORIZED
208+
{
209+
"error": "Please confirm your email before logging in. Check your inbox for a confirmation email."
210+
},
211+
status=status.HTTP_401_UNAUTHORIZED,
210212
)
211213

212214
login(request, user)

backend/apps/events/views.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from django.conf import settings
22
from django.db.models import Q
33
from django.http import HttpResponse
4+
from django.shortcuts import get_object_or_404
45
from django.utils import timezone
56
from django.utils.html import escape
6-
from django.shortcuts import get_object_or_404
77
from ratelimit.decorators import ratelimit
88
from rest_framework import status
99
from rest_framework.decorators import api_view, permission_classes
@@ -37,29 +37,29 @@ def get_events(request):
3737

3838
if search_term:
3939
event_ids = set()
40-
40+
4141
# Special handling for "free food" search
4242
if search_term.lower() == "free food":
4343
keyword_events = filtered_queryset.filter(
4444
Q(price__isnull=True) | Q(price=0) | Q(price__icontains="free"),
45-
Q(food__isnull=False) & ~Q(food="")
45+
Q(food__isnull=False) & ~Q(food=""),
4646
)
4747
else:
4848
keyword_events = filtered_queryset.filter(
49-
Q(title__icontains=search_term) |
50-
Q(location__icontains=search_term) |
51-
Q(description__icontains=search_term) |
52-
Q(food__icontains=search_term) |
53-
Q(club_type__icontains=search_term) |
54-
Q(school__icontains=search_term) |
55-
Q(ig_handle__icontains=search_term) |
56-
Q(discord_handle__icontains=search_term) |
57-
Q(x_handle__icontains=search_term)|
58-
Q(tiktok_handle__icontains=search_term) |
59-
Q(fb_handle__icontains=search_term)
49+
Q(title__icontains=search_term)
50+
| Q(location__icontains=search_term)
51+
| Q(description__icontains=search_term)
52+
| Q(food__icontains=search_term)
53+
| Q(club_type__icontains=search_term)
54+
| Q(school__icontains=search_term)
55+
| Q(ig_handle__icontains=search_term)
56+
| Q(discord_handle__icontains=search_term)
57+
| Q(x_handle__icontains=search_term)
58+
| Q(tiktok_handle__icontains=search_term)
59+
| Q(fb_handle__icontains=search_term)
6060
)
61-
62-
event_ids.update(keyword_events.values_list('id', flat=True))
61+
62+
event_ids.update(keyword_events.values_list("id", flat=True))
6363

6464
# search_embedding = generate_embedding(search_term)
6565
# dtstart = request.GET.get("dtstart")
@@ -115,7 +115,7 @@ def get_event(request, event_id):
115115
"""Get a single event by ID"""
116116
try:
117117
event = get_object_or_404(Events, id=event_id)
118-
118+
119119
fields = [
120120
"id",
121121
"title",
@@ -137,10 +137,10 @@ def get_event(request, event_id):
137137
"tiktok_handle",
138138
"fb_handle",
139139
]
140-
140+
141141
event_data = {field: getattr(event, field) for field in fields}
142142
event_data["display_handle"] = events_utils.determine_display_handle(event_data)
143-
143+
144144
return Response(event_data)
145145

146146
except Exception as e:

backend/apps/newsletter/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import uuid
22

33
from django.db import models
4+
45
from utils.encryption_utils import email_encryption
56

67

backend/config/settings/base.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,9 @@
191191

192192
# Email confirmation settings
193193
BASE_URL = (
194-
"https://api.wat2do.ca" if os.getenv("PRODUCTION") == "1" else "http://localhost:8000"
194+
"https://api.wat2do.ca"
195+
if os.getenv("PRODUCTION") == "1"
196+
else "http://localhost:8000"
195197
)
196198
FRONTEND_URL = (
197199
"https://wat2do.ca" if os.getenv("PRODUCTION") == "1" else "http://localhost:5173"

backend/scraping/instagram_feed.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@
2525

2626
from apps.clubs.models import Clubs
2727
from apps.events.models import Events
28-
from services.openai_service import extract_events_from_caption, generate_event_embedding
28+
from services.openai_service import (
29+
extract_events_from_caption,
30+
generate_event_embedding,
31+
)
2932
from services.storage_service import upload_image_from_url
3033
from utils.embedding_utils import find_similar_events
3134
from utils.events_utils import tz_compute

backend/services/openai_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,4 +438,4 @@ def _get_default_event_structure(
438438
generate_embedding = openai_service.generate_embedding
439439
extract_events_from_caption = openai_service.extract_events_from_caption
440440
generate_recommended_filters = openai_service.generate_recommended_filters
441-
generate_event_embedding = openai_service.generate_event_embedding
441+
generate_event_embedding = openai_service.generate_event_embedding

backend/utils/events_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def _get(key):
3232
if social_handles:
3333
handle = social_handles[0]
3434
handle_str = str(handle)
35-
return handle_str if handle_str.startswith("@") else f"@{handle_str}"
35+
return handle_str
3636
school = _get("school")
3737
return school or "Wat2Do Event"
3838

frontend/src/features/events/components/EventsGrid.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,17 @@ const OrganizationBadge = ({ event }: { event: Event }) => {
8383

8484
return (
8585
<BadgeMask variant="bottom-left">
86-
<Badge variant="outline" className="font-extrabold">
87-
{event.display_handle}
86+
<Badge
87+
onMouseDown={() =>
88+
window.open(
89+
`https://www.instagram.com/${event.display_handle}/`,
90+
"_blank"
91+
)
92+
}
93+
variant="outline"
94+
className="font-extrabold cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800"
95+
>
96+
@{event.display_handle}
8897
</Badge>
8998
</BadgeMask>
9099
);

frontend/tsconfig.tsbuildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"root":["./src/vite-env.d.ts","./src/app/app.tsx","./src/app/main.tsx","./src/data/staticdata.ts","./src/features/admin/index.ts","./src/features/admin/components/adminlogin.tsx","./src/features/admin/components/promoteeventform.tsx","./src/features/admin/hooks/useeventpromotion.ts","./src/features/admin/pages/adminpage.tsx","./src/features/admin/types/promotion.ts","./src/features/auth/index.ts","./src/features/auth/components/emailverification.tsx","./src/features/auth/pages/authpage.tsx","./src/features/auth/pages/dashboardpage.tsx","./src/features/auth/pages/verifyemailpage.tsx","./src/features/auth/schemas/authschemas.ts","./src/features/clubs/index.ts","./src/features/clubs/components/clubsgrid.tsx","./src/features/clubs/hooks/useclubs.ts","./src/features/clubs/pages/clubspage.tsx","./src/features/clubs/types/clubs.ts","./src/features/events/index.ts","./src/features/events/components/eventlegend.tsx","./src/features/events/components/eventscalendar.tsx","./src/features/events/components/eventscontent.tsx","./src/features/events/components/eventsgrid.tsx","./src/features/events/components/eventsheader.tsx","./src/features/events/components/eventsstatusbar.tsx","./src/features/events/components/quickfilters.tsx","./src/features/events/constants/events.ts","./src/features/events/hooks/useeventselection.ts","./src/features/events/hooks/useevents.ts","./src/features/events/hooks/usequickfilters.ts","./src/features/events/pages/eventspage.tsx","./src/features/events/types/events.ts","./src/features/newsletter/index.ts","./src/features/newsletter/components/unsubscribeform.tsx","./src/features/newsletter/hooks/usenewslettersubscribe.ts","./src/features/newsletter/hooks/useunsubscribe.ts","./src/features/newsletter/pages/unsubscribepage.tsx","./src/features/newsletter/types/newsletter.ts","./src/features/search/index.ts","./src/features/search/components/searchinput.tsx","./src/features/search/hooks/usesearchstate.ts","./src/features/search/types/search.ts","./src/shared/index.ts","./src/shared/api/auth.ts","./src/shared/components/protectedroute.tsx","./src/shared/components/seohead.tsx","./src/shared/components/common/floatingeventexportbar.tsx","./src/shared/components/layout/aboutpage.tsx","./src/shared/components/layout/contactpage.tsx","./src/shared/components/layout/footer.tsx","./src/shared/components/layout/githublink.tsx","./src/shared/components/layout/navbar.tsx","./src/shared/components/layout/notfoundpage.tsx","./src/shared/components/layout/topbanner.tsx","./src/shared/components/ui/badge-mask.tsx","./src/shared/components/ui/badge.tsx","./src/shared/components/ui/button-variants.ts","./src/shared/components/ui/button.tsx","./src/shared/components/ui/card.tsx","./src/shared/components/ui/form.tsx","./src/shared/components/ui/icon-button.tsx","./src/shared/components/ui/index.ts","./src/shared/components/ui/input.tsx","./src/shared/components/ui/label.tsx","./src/shared/components/ui/loading.tsx","./src/shared/components/ui/pagination.tsx","./src/shared/components/ui/select.tsx","./src/shared/components/ui/tabs.tsx","./src/shared/components/ui/textarea.tsx","./src/shared/components/ui/tooltip.tsx","./src/shared/components/ui/useformfield.ts","./src/shared/constants/api.ts","./src/shared/hooks/index.ts","./src/shared/hooks/useauth.ts","./src/shared/hooks/useauthredirect.ts","./src/shared/hooks/usecategoryparam.ts","./src/shared/hooks/usedocumenttitle.ts","./src/shared/hooks/usenavbar.ts","./src/shared/hooks/usetheme.ts","./src/shared/lib/clubtypecolors.ts","./src/shared/lib/dateutils.ts","./src/shared/lib/emojiutils.ts","./src/shared/lib/eventutils.ts","./src/shared/lib/theme.tsx","./src/shared/lib/utils.ts","./src/shared/stores/authstore.ts","./src/shared/types/common.ts"],"version":"5.8.3"}
1+
{"root":["./src/vite-env.d.ts","./src/app/app.tsx","./src/app/main.tsx","./src/data/staticdata.ts","./src/features/admin/index.ts","./src/features/admin/components/adminlogin.tsx","./src/features/admin/components/promoteeventform.tsx","./src/features/admin/hooks/useeventpromotion.ts","./src/features/admin/pages/adminpage.tsx","./src/features/admin/types/promotion.ts","./src/features/auth/index.ts","./src/features/auth/components/emailverification.tsx","./src/features/auth/pages/authpage.tsx","./src/features/auth/pages/dashboardpage.tsx","./src/features/auth/pages/verifyemailpage.tsx","./src/features/auth/schemas/authschemas.ts","./src/features/clubs/index.ts","./src/features/clubs/components/clubsgrid.tsx","./src/features/clubs/hooks/useclubs.ts","./src/features/clubs/pages/clubspage.tsx","./src/features/clubs/types/clubs.ts","./src/features/events/index.ts","./src/features/events/components/eventlegend.tsx","./src/features/events/components/eventscalendar.tsx","./src/features/events/components/eventscontent.tsx","./src/features/events/components/eventsgrid.tsx","./src/features/events/components/eventsheader.tsx","./src/features/events/components/eventsstatusbar.tsx","./src/features/events/components/quickfilters.tsx","./src/features/events/constants/events.ts","./src/features/events/hooks/useeventselection.ts","./src/features/events/hooks/useevents.ts","./src/features/events/hooks/usequickfilters.ts","./src/features/events/pages/eventdetailpage.tsx","./src/features/events/pages/eventspage.tsx","./src/features/events/types/events.ts","./src/features/newsletter/index.ts","./src/features/newsletter/components/unsubscribeform.tsx","./src/features/newsletter/hooks/usenewslettersubscribe.ts","./src/features/newsletter/hooks/useunsubscribe.ts","./src/features/newsletter/pages/unsubscribepage.tsx","./src/features/newsletter/types/newsletter.ts","./src/features/search/index.ts","./src/features/search/components/searchinput.tsx","./src/features/search/hooks/usesearchstate.ts","./src/features/search/types/search.ts","./src/shared/index.ts","./src/shared/api/auth.ts","./src/shared/components/protectedroute.tsx","./src/shared/components/seohead.tsx","./src/shared/components/common/floatingeventexportbar.tsx","./src/shared/components/layout/aboutpage.tsx","./src/shared/components/layout/contactpage.tsx","./src/shared/components/layout/footer.tsx","./src/shared/components/layout/githublink.tsx","./src/shared/components/layout/navbar.tsx","./src/shared/components/layout/notfoundpage.tsx","./src/shared/components/layout/topbanner.tsx","./src/shared/components/ui/badge-mask.tsx","./src/shared/components/ui/badge.tsx","./src/shared/components/ui/button-variants.ts","./src/shared/components/ui/button.tsx","./src/shared/components/ui/card.tsx","./src/shared/components/ui/form.tsx","./src/shared/components/ui/icon-button.tsx","./src/shared/components/ui/index.ts","./src/shared/components/ui/input.tsx","./src/shared/components/ui/label.tsx","./src/shared/components/ui/loading.tsx","./src/shared/components/ui/pagination.tsx","./src/shared/components/ui/select.tsx","./src/shared/components/ui/tabs.tsx","./src/shared/components/ui/textarea.tsx","./src/shared/components/ui/tooltip.tsx","./src/shared/components/ui/useformfield.ts","./src/shared/constants/api.ts","./src/shared/hooks/index.ts","./src/shared/hooks/useauth.ts","./src/shared/hooks/useauthredirect.ts","./src/shared/hooks/usecategoryparam.ts","./src/shared/hooks/usedocumenttitle.ts","./src/shared/hooks/usenavbar.ts","./src/shared/hooks/usetheme.ts","./src/shared/lib/clubtypecolors.ts","./src/shared/lib/dateutils.ts","./src/shared/lib/emojiutils.ts","./src/shared/lib/eventutils.ts","./src/shared/lib/theme.tsx","./src/shared/lib/utils.ts","./src/shared/stores/authstore.ts","./src/shared/types/common.ts"],"version":"5.8.3"}

0 commit comments

Comments
 (0)