From 2d69731e993bd7171aad98c6346fde536c983162 Mon Sep 17 00:00:00 2001 From: jedi Date: Thu, 18 Jul 2024 21:11:53 +0200 Subject: [PATCH] stash --- core/inventory/api_v2.py | 18 +++++++++++------- core/tickets/api_v2.py | 5 ++++- core/tickets/tests/v2/test_tickets.py | 4 +++- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/core/inventory/api_v2.py b/core/inventory/api_v2.py index 613f7ec..e027110 100644 --- a/core/inventory/api_v2.py +++ b/core/inventory/api_v2.py @@ -1,4 +1,4 @@ -from django.urls import path +from django.urls import re_path from django.contrib.auth.decorators import permission_required from rest_framework import routers, viewsets from rest_framework.decorators import api_view, permission_classes @@ -35,8 +35,8 @@ def filter_items(items, query): @api_view(['GET']) @permission_classes([]) -#@permission_classes([IsAuthenticated]) -#@permission_required('view_item', raise_exception=True) +# @permission_classes([IsAuthenticated]) +# @permission_required('view_item', raise_exception=True) def search_items(request, event_slug, query): try: event = Event.objects.get(slug=event_slug) @@ -109,8 +109,12 @@ router.register(r'boxes', ContainerViewSet, basename='boxes') router.register(r'box', ContainerViewSet, basename='boxes') urlpatterns = router.urls + [ - path('/items/', item), - path('/items//', search_items), - path('/item/', item), - path('/item//', item_by_id), + # path('/items/', item), + # path('/items//', search_items), + # path('/item/', item), + # path('/item//', item_by_id), + re_path(r'^(?P[\w-]+)/items/$', item, name='item'), + re_path(r'^(?P[\w-]+)/items/(?P[-A-Za-z0-9+/]*={0,3})/$', search_items, name='search_items'), + re_path(r'^(?P[\w-]+)/item/$', item, name='item'), + re_path(r'^(?P[\w-]+)/item/(?P\d+)/$', item_by_id, name='item_by_id'), ] diff --git a/core/tickets/api_v2.py b/core/tickets/api_v2.py index 479df76..4a4f71a 100644 --- a/core/tickets/api_v2.py +++ b/core/tickets/api_v2.py @@ -152,10 +152,13 @@ router.register(r'tickets', IssueViewSet, basename='issues') # router.register(r'comments', CommentViewSet, basename='comments') router.register(r'shipping_vouchers', ShippingVoucherViewSet, basename='shipping_vouchers') + +# [-A-Za-z0-9+/]*={0,3} urlpatterns = ([ re_path(r'tickets/states/$', get_available_states, name='get_available_states'), re_path(r'^tickets/(?P\d+)/reply/$', reply, name='reply'), re_path(r'^tickets/(?P\d+)/comment/$', add_comment, name='add_comment'), re_path(r'^(?P[\w-]+)/tickets/manual/$', manual_ticket, name='manual_ticket'), - re_path(r'^(?P[\w-]+)/tickets/(?P.+)/$', search_issues, name='search_issues'), + re_path(r'^(?P[\w-]+)/tickets/(?P[-A-Za-z0-9+/]*={0,3})/$', search_issues, + name='search_issues'), ] + router.urls) diff --git a/core/tickets/tests/v2/test_tickets.py b/core/tickets/tests/v2/test_tickets.py index dae1755..808b61c 100644 --- a/core/tickets/tests/v2/test_tickets.py +++ b/core/tickets/tests/v2/test_tickets.py @@ -3,6 +3,7 @@ from datetime import datetime, timedelta from django.test import TestCase, Client from authentication.models import ExtendedUser +from inventory.models import Event from mail.models import Email, EmailAttachment from tickets.models import IssueThread, StateChange, Comment from django.contrib.auth.models import Permission @@ -323,6 +324,7 @@ class IssueSearchTest(TestCase): def setUp(self): super().setUp() + self.event = Event.objects.create(slug='EVENT', name='Event') self.user = ExtendedUser.objects.create_user('testuser', 'test', 'test') self.user.user_permissions.add(*Permission.objects.all()) self.user.save() @@ -331,6 +333,6 @@ class IssueSearchTest(TestCase): def test_search(self): search_query = b64encode(b'abc').decode('utf-8') - response = self.client.get(f'/api/2/evt/tickets/{search_query}/') + response = self.client.get(f'/api/2/{self.event.slug}/tickets/{search_query}/') self.assertEqual(200, response.status_code) self.assertEqual([], response.json())