Skip to content

page_views

django_spire.auth.user.views.page_views

detail_view

Source code in django_spire/auth/user/views/page_views.py
@permission_required('django_spire_auth_user.view_authuser')
def detail_view(request: WSGIRequest, pk: int) -> TemplateResponse:
    user = get_object_or_404(AuthUser, pk=pk)
    group_list = user.groups.all()

    nav = AuthUserNavigation()
    nav.page_title = str(user)
    nav.breadcrumbs.add_model_instance_string(
        user, view_name='django_spire:auth:user:page:detail', view_kwargs={'pk': user.pk}
    )

    context = nav.as_context()
    context['user'] = user
    context['group_list'] = group_list
    context['group_list_permission_data'] = [
        generate_group_perm_data(group) for group in group_list
    ]
    context['user_perm_data'] = generate_user_perm_data(user)
    return TemplateResponse(
        request, context=context, template='django_spire/auth/user/page/detail_page.html'
    )

list_view

Source code in django_spire/auth/user/views/page_views.py
@permission_required('django_spire_auth_user.view_authuser')
def list_view(request: WSGIRequest) -> TemplateResponse:
    active_users = (
        AuthUser.objects.filter(is_active=True)
        .prefetch_related('groups')
        .order_by('first_name', 'last_name')
    )
    inactive_users = (
        AuthUser.objects.filter(is_active=False)
        .prefetch_related('groups')
        .order_by('first_name', 'last_name')
    )

    Glue.queryset(request, 'active_users', active_users, Glue.Access.VIEW, fields='__all__')
    Glue.queryset(request, 'inactive_users', inactive_users, Glue.Access.VIEW, fields='__all__')

    nav = AuthUserNavigation()
    nav.page_title = 'Users'

    context = nav.as_context()
    context['active_users'] = active_users
    context['active_user_count'] = active_users.count()
    context['inactive_users'] = inactive_users
    context['inactive_user_count'] = inactive_users.count()
    return TemplateResponse(
        request, context=context, template='django_spire/auth/user/page/list_page.html'
    )