Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ticketing #501

Merged
merged 66 commits into from
Apr 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
074fda5
Ticket model
cphalen Dec 13, 2021
4171a61
some basic untested functionality
rohangpta Jan 16, 2022
ef872be
tested routes, added view ticket count route
rohangpta Jan 16, 2022
c55fd75
lint
rohangpta Jan 16, 2022
2d0db0d
email confirmation, qrcode, retrieve ticket
rohangpta Nov 12, 2022
7240a11
remove commented stuff
rohangpta Jan 17, 2022
ae99446
created cart model and add to cart, validate cart, and checkout from …
rohangpta Nov 12, 2022
0a975fb
added holding expiration functionality, holding is initiated at check…
Dfeng6789 Feb 20, 2022
7fe194d
lint and tests
Dfeng6789 Feb 20, 2022
ac0975a
added cart creation for a user upon adding to a cart if a cart does n…
Dfeng6789 Feb 20, 2022
c69254a
slightly changed holding updates, added update to holding status when…
Dfeng6789 Feb 27, 2022
5382f48
atomic transactions, cleanup, and some views
rohangpta Nov 12, 2022
6508a97
holding, validation improvements, perms
rohangpta Jul 6, 2022
9610747
some docstring stuff
rohangpta Oct 16, 2022
c9fb115
rebase + pipfile lock
rohangpta Oct 16, 2022
1b0bda8
use master pipfile.lock
rohangpta Oct 16, 2022
094ad42
lint and pre-commit fixes
rohangpta Oct 16, 2022
d67a3a6
minor bugs
rohangpta Oct 16, 2022
a352b01
add to populate script
rohangpta Nov 12, 2022
7367db1
lint
rohangpta Nov 12, 2022
7f650dc
rebase, fix some documentation
rohangpta Nov 12, 2022
03214af
Update ticketing (backend) branch (#612)
aviupadhyayula Feb 13, 2024
50b9c0b
Revert "Update ticketing (backend) branch (#612)"
julianweng Feb 16, 2024
80e8201
Merge ticketing branches (#615)
julianweng Mar 4, 2024
22968db
Merge master into ticketing
julianweng Mar 4, 2024
91b1df9
Fix TS errors
julianweng Mar 4, 2024
580be09
Update Links to new Next.js behavior
anli5005 Mar 20, 2024
6151c4f
Merge branch 'master' into ticketing
esinx Apr 13, 2024
a40e469
missed merge conflict
esinx Apr 13, 2024
20d250d
migrations
esinx Apr 13, 2024
428dd7e
Ticketing integrate cybersource -> ticketing (#652)
rohangpta Apr 14, 2024
b911872
Set and enforce order limit on ticket purchases (#654)
aviupadhyayula Apr 14, 2024
4af8765
Check ticket holds before completing checkout (#657)
aviupadhyayula Apr 15, 2024
5880d7c
Ticketing price integration (#659)
julianweng Apr 16, 2024
125905a
feat(events): new events page
esinx Apr 16, 2024
a8059d3
todo remove
esinx Apr 16, 2024
c32bbba
Merge branch 'feat/ticketing/cart' into ticketing
esinx Apr 16, 2024
3a8829d
Add support for group discounts (#661)
aviupadhyayula Apr 16, 2024
27ac7c6
Owned Tickets Tab in Settings (#663)
joyliu-q Apr 16, 2024
40fb7f7
Ticketing backend tests (#666)
rohangpta Apr 18, 2024
6f75d48
Rm console.log on frontend
rohangpta Apr 18, 2024
20f68ab
Add Group Discount to Create Ticket Flow and Auto Scroll Down (#669)
joyliu-q Apr 21, 2024
78f02fd
Use capture context in cart checkout (#671)
aviupadhyayula Apr 21, 2024
212720b
fix N+1 query due to attribute
rm03 Apr 22, 2024
66cceb0
Add support for ticket drop times (#672)
aviupadhyayula Apr 23, 2024
d4de8d4
Add ability to transfer ownership of tickets (#653)
rm03 Apr 23, 2024
8847a3b
Ticketing Cart Pre-Checkout (#670)
joyliu-q Apr 23, 2024
3888a5c
Fix breaking changes introduced in #670 (#680)
aviupadhyayula Apr 23, 2024
ad28028
Add guards on ticketed event deletion (#667)
aviupadhyayula Apr 23, 2024
fb4e4cf
Default billing phone number to null
aviupadhyayula Apr 23, 2024
71e1fbc
Basic mobile responsiveness for TicketCard
julianweng Apr 24, 2024
da6abe0
Add route for admins to issue tickets to users (#679)
aviupadhyayula Apr 25, 2024
b57d797
Add route for attendance tracking (#684)
rm03 Apr 25, 2024
14ae31e
Fix ticket interface for sellers (#665)
julianweng Apr 26, 2024
ffea49a
✨ feat(checkout): cybersource integration
esinx Apr 23, 2024
a614997
:art: It's toast time
joyliu-q Apr 26, 2024
5f4716a
🛠️ fix(close): handle modal close with confirm
esinx Apr 26, 2024
4076a4f
✨ feat(success): checkout success message
esinx Apr 26, 2024
21eceff
❌ feat(handle error)
esinx Apr 26, 2024
5d13f9b
🛠️ fix(message): more explicit message for modal close confirmation
esinx Apr 26, 2024
d032c7a
Fix lint, min/max add to cart quantities per class
julianweng Apr 28, 2024
a1b694d
Add support for free tickets (#658)
Porcupine1 Apr 28, 2024
32dd60d
:arrow_down: Downgrade Eslint dependency
joyliu-q Apr 28, 2024
1c4d9ef
Add ability to make tickets not buyable + disable paid tickets for be…
julianweng Apr 28, 2024
ff74f68
Ticketing Beta branding and File Cleanup (#686)
julianweng Apr 29, 2024
e1fac0b
Merge master into ticketing (#687)
aviupadhyayula Apr 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ htmlcov/
# Test database
db.sqlite3

# Mac
# Misc
.DS_Store
*.pem

# React
node_modules/
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ React/Next.js frontend and Django-based REST API.

## Installation

You will need to start both the backend and the frontend to do Penn Clubs development.

You will need to start both the backend and the frontend to develop on Penn Clubs. Clubs supports Mac and Linux/WSL development.

Questions? Check out our [extended guide](https://github.com/pennlabs/penn-clubs/wiki/Development-Guide) for FAQs.
Expand Down Expand Up @@ -84,3 +86,13 @@ Use `$ yarn test` to run Cypress tests.
### Development

Click `Login` to log in as a test user. The `./manage.py populate` command creates a test user for you with username `bfranklin` and password `test`. Go to `/api/admin` to login to this account.

#### Ticketing

To test ticketing locally, you will need to [install](https://github.com/FiloSottile/mkcert?tab=readme-ov-file#installation) `mkcert`, enter the `frontend` directory, and run the following commands:

- `$ mkcert -install`
- `$ mkcert localhost 127.0.0.1 ::1`
- `$ export DOMAIN=https://localhost:3001 NODE_TLS_REJECT_UNAUTHORIZED=0`

Then, after the frontend is running, run `yarn ssl-proxy` **in a new terminal window** and access the application at [https://localhost:3001](https://localhost:3001).
5 changes: 4 additions & 1 deletion backend/Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ django-runtime-options = "*"
social-auth-app-django = "*"
django-redis = "*"
channels-redis = "*"
uwsgi = {version = "*", sys_platform = "== 'linux'"}
uwsgi = {version ="==2.0.24", sys_platform = "== 'linux'"}
uvloop = {version = "*", sys_platform = "== 'linux'"}
uvicorn = {extras = ["standard"], version = "*"}
gunicorn = "*"
Expand All @@ -54,6 +54,9 @@ pandas = "*"
drf-excel = "*"
numpy = "*"
inflection = "*"
cybersource-rest-client-python = "*"
pyjwt = "*"
freezegun = "*"

[requires]
python_version = "3.11"
155 changes: 105 additions & 50 deletions backend/Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions backend/clubs/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
ApplicationSubmission,
Asset,
Badge,
Cart,
Club,
ClubApplication,
ClubFair,
Expand Down Expand Up @@ -50,6 +51,8 @@
TargetStudentType,
TargetYear,
Testimonial,
Ticket,
TicketTransactionRecord,
Year,
ZoomMeetingVisit,
)
Expand Down Expand Up @@ -451,4 +454,7 @@ class ApplicationSubmissionAdmin(admin.ModelAdmin):
admin.site.register(Year, YearAdmin)
admin.site.register(ZoomMeetingVisit, ZoomMeetingVisitAdmin)
admin.site.register(AdminNote)
admin.site.register(Ticket)
admin.site.register(TicketTransactionRecord)
admin.site.register(Cart)
admin.site.register(ApplicationCycle)
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import traceback

from django.core.management.base import BaseCommand
from django.utils import timezone

Expand All @@ -17,10 +19,10 @@
self.stdout.write(
self.style.SUCCESS("Successfully marked all stale invites as expired!")
)
except Exception as e:
except Exception:

Check warning on line 22 in backend/clubs/management/commands/expire_membership_invites.py

View check run for this annotation

Codecov / codecov/patch

backend/clubs/management/commands/expire_membership_invites.py#L22

Added line #L22 was not covered by tests
self.stdout.write(
self.style.ERROR(
"An error was encountered while expiring stale membership invites!"
)
)
self.stdout.write(e)
self.stdout.write(self.style.ERROR(traceback.format_exc()))

Check warning on line 28 in backend/clubs/management/commands/expire_membership_invites.py

View check run for this annotation

Codecov / codecov/patch

backend/clubs/management/commands/expire_membership_invites.py#L28

Added line #L28 was not covered by tests
2 changes: 2 additions & 0 deletions backend/clubs/management/commands/find_broken_images.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
import traceback

import requests
from django.conf import settings
Expand Down Expand Up @@ -41,6 +42,7 @@
"{} has broken image {}".format(club.code, club.image.url)
)
)
self.stdout.write(self.style.ERROR(traceback.format_exc()))

Check warning on line 45 in backend/clubs/management/commands/find_broken_images.py

View check run for this annotation

Codecov / codecov/patch

backend/clubs/management/commands/find_broken_images.py#L45

Added line #L45 was not covered by tests
if not self.dry_run:
club.image.delete(save=True)
broken_list.append(
Expand Down
Loading
Loading