from django.conf import settings from django.core.paginator import Paginator from django.shortcuts import render from guardian.shortcuts import get_objects_for_user from .models import Contract # Create your views here. def index(request): filter = { "is_approved": True } if not request.user.has_perm("contracts.view_confidential"): filter["is_public"] = True contracts = ( get_objects_for_user(request.user, "contracts.view_contract") .filter(**filter) .order_by("valid_start_date") .all() ) paginator = Paginator(contracts, 25) page = paginator.get_page(request.GET.get("page")) return render( request, "contracts/index.html", { "site_url": settings.SITE_URL, "user": request.user, "title": "Seznam smluv", "description": "Description", "paginator": paginator, "page": page, }, ) def view_contract(request, id: int): filter = { "is_approved": True } if not request.user.has_perm("contracts.view_confidential"): filter["is_public"] = True contract = ( get_objects_for_user(request.user, "contracts.view_contract") .filter(**filter) .get(id=id) ) return render( request, "contracts/view_contract.html", { "site_url": settings.SITE_URL, "user": request.user, "title": contract.name, "description": contract.summary, "contract": contract, }, )