Skip to content

Commit

Permalink
update dependencies and static files
Browse files Browse the repository at this point in the history
  • Loading branch information
dougpenny committed Aug 11, 2024
1 parent 007ee08 commit cc55e91
Show file tree
Hide file tree
Showing 191 changed files with 8,182 additions and 36,749 deletions.
33 changes: 24 additions & 9 deletions api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,31 +24,46 @@ class ExistingOrderMenuItemSerializer(serializers.ModelSerializer):

class Meta:
model = MenuItem
fields = ['cost', 'id', 'name']
fields = ["cost", "id", "name"]


class LunchIdSearchSerializer(serializers.ModelSerializer):
name = serializers.SerializerMethodField()

def get_name(self, obj):
if obj.role == Profile.STAFF:
grade = "Staff"
else:
grade = str(obj.grade)
return f"{obj.name()} - {grade}"

class Meta:
model = Profile
fields = ["lunch_uuid", "name"]


class MenuItemSerializer(serializers.ModelSerializer):
cost = serializers.DecimalField(max_digits=None, decimal_places=2, coerce_to_string=False)

class Meta:
model = MenuItem
fields = ['app_only', 'category', 'cost', 'id', 'name', 'sequence', 'short_name']
fields = ["app_only", "category", "cost", "id", "name", "sequence", "short_name"]


class MenuLineItemSerializer(serializers.ModelSerializer):
menu_item = MenuItemSerializer()

class Meta:
model = MenuLineItem
fields = ['menu_item', 'quantity']
fields = ["menu_item", "quantity"]


class OrderSerializer(serializers.ModelSerializer):
line_item = MenuLineItemSerializer(many=True)

class Meta:
model = Transaction
fields = ['id', 'line_item']
fields = ["id", "line_item"]


class OrderSubmissionSerializer(serializers.Serializer):
Expand All @@ -73,19 +88,19 @@ def get_grade(self, obj):

class Meta:
model = Profile
fields = ['current_balance', 'grade', 'id', 'lunch_uuid', 'name', 'user_number']
fields = ["current_balance", "grade", "id", "lunch_uuid", "name", "user_number"]


class UserSearchSerializer(serializers.ModelSerializer):
text = serializers.SerializerMethodField()

def get_text(self, obj):
if obj.profile.role == Profile.STAFF:
grade = 'Staff'
grade = "Staff"
else:
grade = str(obj.profile.grade)
return obj.first_name + ' ' + obj.last_name + ' - ' + grade
return f"{obj.first_name} {obj.last_name} - {grade}"

class Meta:
model = User
fields = ['id', 'text']
fields = ["id", "text"]
13 changes: 7 additions & 6 deletions api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,11 @@
from api import views

urlpatterns = [
path('menu/entrees/today', views.todays_menu_items, name='todays-items'),
path('order/<uuid:id>', views.user_order_lookup, name='user-order'),
path('order/submit', views.user_order_submit, name='submit-order'),
path('user/<uuid:id>', views.user_lookup, name='user-lookup'),
path('users/basic/', views.UserSearch.as_view(), name='basic-user-search'),
path('profile/basic/', views.ProfileSearch.as_view(), name='basic-profile-search'),
path("menu/entrees/today", views.todays_menu_items, name="todays-items"),
path("order/<uuid:id>", views.user_order_lookup, name="user-order"),
path("order/submit", views.user_order_submit, name="submit-order"),
path("user/<uuid:id>", views.user_lookup, name="user-lookup"),
path("users/basic/", views.UserSearch.as_view(), name="basic-user-search"),
path("profile/basic/", views.ProfileSearch.as_view(), name="basic-profile-search"),
path("profile/lunchid/", views.LunchIdSearch.as_view(), name="lunch-id-search"),
]
26 changes: 19 additions & 7 deletions api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@
logger = logging.getLogger(__file__)


class UserSearch(generics.ListAPIView):
search_fields = ["first_name", "last_name"]
class LunchIdSearch(generics.ListAPIView):
search_fields = ["user__first_name", "user__last_name"]
filter_backends = [filters.SearchFilter]
queryset = User.objects.filter(is_active=True).filter(
Q(profile__role=Profile.STUDENT) | Q(profile__role=Profile.STAFF)
queryset = (
Profile.objects.filter(active=True)
.exclude(pending=True)
.filter(Q(role=Profile.STUDENT) | Q(role=Profile.STAFF))
)
serializer_class = serializers.UserSearchSerializer
serializer_class = serializers.LunchIdSearchSerializer


class ProfileSearch(generics.ListAPIView):
Expand All @@ -51,6 +53,15 @@ class ProfileSearch(generics.ListAPIView):
serializer_class = serializers.ProfileSerializer


class UserSearch(generics.ListAPIView):
search_fields = ["first_name", "last_name"]
filter_backends = [filters.SearchFilter]
queryset = User.objects.filter(is_active=True).filter(
Q(profile__role=Profile.STUDENT) | Q(profile__role=Profile.STAFF)
)
serializer_class = serializers.UserSearchSerializer


@api_view(["GET"])
def todays_menu_items(request):
try:
Expand Down Expand Up @@ -85,19 +96,20 @@ def user_order_lookup(request, id):
profile = Profile.objects.get(lunch_uuid=id)
except Profile.DoesNotExist as e:
logger.error(f"API: Profile with id #{id} not found.\nError message: {e}")
return Response(status=status.HTTP_404_NOT_FOUND)
return Response(status=status.HTTP_204_NO_CONTENT)
try:
order = (
Transaction.objects.filter(transactee=profile)
.filter(submitted__date=timezone.localdate(timezone.now()))
.filter(transaction_type=Transaction.DEBIT)
.filter(completed__isnull=True)
.order_by("-submitted")
)
except Transaction.DoesNotExist as e:
logger.error(
f"API: No transaction found for profile with id #{id}.\nError message: {e}"
)
return Response(status=status.HTTP_404_NOT_FOUND)
return Response(status=status.HTTP_204_NO_CONTENT)

profile = serializers.ProfileSerializer(profile).data
order = serializers.OrderSerializer(order, many=True).data
Expand Down
2 changes: 1 addition & 1 deletion config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,5 +221,5 @@
sentry_sdk.init(
dsn="https://3b9e30470f1df096b1b2f68529dd4f72@o4506650567311360.ingest.sentry.io/4506651708751872",
sample_rate=0.6,
release="lunch-manager@2.4.0",
release="lunch-manager@2.5.0",
)
18 changes: 9 additions & 9 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
django==5.0.1
djangorestframework==3.14
django-auth-adfs==1.13
psycopg==3.1.17
gunicorn==21.2.0
django==5.1
djangorestframework==3.15.2
django-auth-adfs==1.14.0
psycopg==3.2.1
gunicorn==23.0.0
python-dotenv==1.0.1
reportlab==4.0.9
XlsxWriter==3.1.9
reportlab==4.2.2
XlsxWriter==3.2.0
django-constance[database]==3.1.0
mozilla-django-oidc==4.0.0
mozilla-django-oidc==4.0.1
django-mathfilters==1.0.0
pypowerschool==0.2.0
sentry-sdk[django]==1.40.0
sentry-sdk[django]==2.12.0
Loading

0 comments on commit cc55e91

Please sign in to comment.