Skip to content
Snippets Groups Projects
Commit e2be0029 authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

finish index viewing, pagination

parent d57fdb5e
No related branches found
No related tags found
No related merge requests found
......@@ -8,3 +8,4 @@ shared/static/shared/*.css
webpack-stats.json
package-lock.json
.venv
media/*
......@@ -519,7 +519,7 @@ class ContracteeSignature(models.Model):
result = self.contractee.name
if len(representatives) != 0:
result += f"zastoupena {representatives}"
result += f" - zastoupena {representatives}"
result += f", {self.date}"
......@@ -559,7 +559,7 @@ class SigneeSignature(models.Model):
result = self.signee.name
if len(representatives) != 0:
result += f"zastoupena {representatives}"
result += f" - zastoupena {representatives}"
result += f", {self.date}"
......
{% extends "shared/includes/base.html" %}
{% load subtract %}
{% block content %}
<h1 class="head-alt-lg mb-10">{{ title }}</h1>
<table class="table table--striped table--bordered">
<table class="table table-auto w-full table--striped table--bordered">
<thead>
<tr>
<td>Identifikátor</td>
<td class="font-bold">Identifikace</td>
<td>Typ</td>
<td>Právní stav</td>
<td>Účinná od</td>
<td>Platná do</td>
<td>Naše smluvní strana</td>
<td>Ostatní smluvní strany</td>
<td>Naše podpisy</td>
<td>Cizí podpisy</td>
</tr>
</thead>
<tbody>
{% for contract in page %}
<tr>
<td>{{ contract.identifier }}</td>
<td>
<a
class="underline"
href="#"
>{{ contract.identifier }}</a>
</td>
<td>{{ contract.get_type_display }}</td>
<td>{{ contract.get_legal_state_display }}</td>
<td>{{ contract.valid_start_date }}</td>
<td>{{ contract.valid_end_date }}</td>
<td></td>
<td></td>
<td>
<ul class="flex flex-col gap-1">
{% for signature in contract.contractee_signatures.all %}
<li
class="p-2 rounded-sm cursor-pointer text-center {% if not signature.signee.color %}bg-gray-200 duration-100 hover:bg-gray-300{% endif %}"
{% if signature.signee.color %}style="background-color:{{ signature.signee.color }}"{% endif %}
>{{ signature.contractee.name }}</li>
{% endfor %}
</ul>
</td>
<td>
<ul class="flex flex-col gap-1">
{% for signature in contract.signee_signatures.all %}
<li
class="p-2 rounded-sm cursor-pointer text-center {% if not signature.signee.color %}bg-gray-200 duration-100 hover:bg-gray-300{% endif %}"
{% if signature.signee.color %}style="background-color:{{ signature.signee.color }}"{% endif %}
>{{ signature.signee.name }}</li>
{% endfor %}
</ul>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% if page.has_other_pages %}
<div class="pagination-container">
<nav class="pagination space-x-1">
<a
class="btn btn--icon btn--grey-125 btn--hoveractive btn--to-black btn--condensed btn--inverted-icon"
{% if not page.has_previous %}disabled{% endif %}
{% if page.has_previous %}href="{% url "contracts:index" %}?page={{ page.previous_page_number }}"{% endif %}
>
<div class="btn__body-wrap">
<div class="btn__body">Předchozí</div>
<div class="btn__icon">
<i class="ico--chevron-left"></i>
</div>
</div>
</a>
{% if page.previous_page_number != 1 %}
<a
class="btn btn--grey-125 btn--hoveractive btn--to-black btn--condensed hidden md:inline-block"
href="{% url "contracts:index" %}?page=1"
>
<div class="btn__body">1</div>
</a>
{% endif %}
{% if page.has_previous and page.previous_page_number != 2 %}
<span class="text-grey-500 hidden md:flex flex-col px-2 justify-center">...</span>
{% endif %}
{% if page.has_previous %}
<a
class="btn btn--grey-125 btn--hoveractive btn--to-black btn--condensed hidden md:inline-block"
href="{% url "contracts:index" %}?page={{ page.previous_page_number }}"
>
<div class="btn__body ">{{ page.previous_page_number }}</div>
</a>
{% endif %}
<button class="btn btn--grey-500 btn--condensed hidden md:inline-block">
<div class="btn__body">{{ page.number }}</div>
</button>
{% if page.has_next %}
<a
class="btn btn--grey-125 btn--hoveractive btn--to-black btn--condensed hidden md:inline-block"
href="{% url "contracts:index" %}?page={{ page.next_page_number }}"
>
<div class="btn__body ">{{ page.next_page_number }}</div>
</a>
{% endif %}
{% if paginator.num_pages != page.next_page_number and paginator.num_pages|subtract:1 != page.next_page_number %}
<span class="text-grey-500 hidden md:flex flex-col px-2 justify-center">...</span>
{% endif %}
{% comment %}num_pages is equivalent to the last page number{% endcomment %}
{% if paginator.num_pages != page.next_page_number %}
<a
role="button"
class="btn btn--grey-125 btn--hoveractive btn--to-black btn--condensed hidden md:inline-block"
href="{% url "contracts:index" %}?page={{ paginator.num_pages }}"
>
<div class="btn__body">{{ paginator.num_pages }}</div>
</a>
{% endif %}
<a
class="btn btn--icon btn--grey-125 btn--hoveractive btn--to-black btn--condensed"
{% if not page.has_next %}disabled{% endif %}
{% if page.has_next %}href="{% url "contracts:index" %}?page={{ page.next_page_number }}"{% endif %}
>
<div class="btn__body-wrap">
<div class="btn__body">Další</div>
<div class="btn__icon">
<i class="ico--chevron-right"></i>
</div>
</div>
</a>
</nav>
</div>
{% endif %}
{% endblock %}
from django import template
register = template.Library()
@register.filter(name='subtract')
def subtract(value, arg):
return value - arg
......@@ -8,7 +8,7 @@ from .models import Contract
def index(request):
contracts = Contract.objects.all()
contracts = Contract.objects.order_by("valid_start_date").all()
paginator = Paginator(contracts, 25)
page = paginator.get_page(
......@@ -23,6 +23,7 @@ def index(request):
"user": request.user,
"title": "Seznam smluv",
"description": "Description",
"paginator": paginator,
"page": page,
}
)
......@@ -29,6 +29,12 @@
href="{% static "shared/favicon.png" %}"
>
<link
href="{% static "shared/style.css" %}"
rel="stylesheet"
media="all"
>
<link
href="https://styleguide.pirati.cz/2.11.x/css/styles.css"
rel="stylesheet"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment