add todos for more class based views

This commit is contained in:
Laura Klünder 2023-10-02 17:42:01 +02:00
parent 12848e4acf
commit 233298cf34
6 changed files with 13 additions and 12 deletions

View file

@ -9,13 +9,13 @@ from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from c3nav.control.forms import AccessPermissionForm
from c3nav.control.views import control_panel_view
from c3nav.control.views.base import control_panel_view
from c3nav.mapdata.models.access import AccessPermissionToken
@login_required(login_url='site.login')
@control_panel_view
def grant_access(request):
def grant_access(request): # todo: make class based view
if request.method == 'POST' and request.POST.get('submit_access_permissions'):
form = AccessPermissionForm(request=request, data=request.POST)
if form.is_valid():
@ -37,7 +37,7 @@ def grant_access(request):
@login_required(login_url='site.login')
@control_panel_view
def grant_access_qr(request, token):
def grant_access_qr(request, token): # todo: make class based view
with transaction.atomic():
token = AccessPermissionToken.objects.select_for_update().get(token=token, author=request.user)
if token.redeemed:

View file

@ -3,13 +3,13 @@ from django.core.exceptions import PermissionDenied
from django.shortcuts import redirect, render, get_object_or_404
from c3nav.control.forms import AnnouncementForm
from c3nav.control.views import control_panel_view
from c3nav.control.views.base import control_panel_view
from c3nav.site.models import Announcement
@login_required(login_url='site.login')
@control_panel_view
def announcement_list(request):
def announcement_list(request): # todo: make class based view
if not request.user_permissions.manage_announcements:
raise PermissionDenied
@ -33,7 +33,7 @@ def announcement_list(request):
@login_required(login_url='site.login')
@control_panel_view
def announcement_detail(request, announcement):
def announcement_detail(request, announcement): # todo: make class based view
if not request.user_permissions.manage_announcements:
raise PermissionDenied

View file

@ -11,14 +11,14 @@ from django.utils.timezone import make_aware
from django.utils.translation import gettext_lazy as _
from c3nav.control.forms import MapUpdateForm, MapUpdateFilterForm
from c3nav.control.views import control_panel_view
from c3nav.control.views.base import control_panel_view
from c3nav.mapdata.models import MapUpdate
from c3nav.mapdata.tasks import process_map_updates
@login_required(login_url='site.login')
@control_panel_view
def map_updates(request):
def map_updates(request): # todo: make class based view
if not request.user_permissions.manage_map_updates:
raise PermissionDenied

View file

@ -1,6 +1,6 @@
from django.views.generic import ListView
from c3nav.control.views import ControlPanelMixin
from c3nav.control.views.base import ControlPanelMixin
from c3nav.mesh.models import MeshNode

View file

@ -13,8 +13,7 @@ from django.views.generic import ListView
from c3nav.control.forms import UserPermissionsForm, AccessPermissionForm, UserSpaceAccessForm
from c3nav.control.models import UserSpaceAccess, UserPermissions
from c3nav.control.views import ControlPanelMixin, control_panel_view
from c3nav.control.views.base import ControlPanelMixin, control_panel_view
from c3nav.mapdata.models import AccessRestriction
from c3nav.mapdata.models.access import AccessPermission
@ -36,7 +35,7 @@ class UserListView(ControlPanelMixin, ListView):
@login_required(login_url='site.login')
@control_panel_view
def user_detail(request, user):
def user_detail(request, user): # todo: make class based view
qs = User.objects.select_related(
'permissions',
).prefetch_related(

View file

@ -96,6 +96,8 @@ def level_detail(request, pk):
def space_detail(request, level, pk):
Level = request.changeset.wrap_model('Level')
Space = request.changeset.wrap_model('Space')
# todo: HOW TO GET DATA
qs = Space.objects.filter(Space.q_for_request(request))
space = get_object_or_404(qs.select_related('level'), level__pk=level, pk=pk)