mirror of
https://github.com/MOIS3Y/logs-collector.git
synced 2025-02-01 09:20:52 +01:00
Create: paginations
This commit is contained in:
parent
96ae8647e1
commit
e2b523a456
@ -82,6 +82,9 @@ class Ticket(models.Model):
|
|||||||
platform = models.ForeignKey('Platform', on_delete=models.CASCADE)
|
platform = models.ForeignKey('Platform', on_delete=models.CASCADE)
|
||||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
ordering = ['-time_update']
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return reverse(
|
return reverse(
|
||||||
'ticket',
|
'ticket',
|
||||||
|
@ -1,58 +1,62 @@
|
|||||||
<header>
|
<header>
|
||||||
<nav class="navbar navbar-expand-lg bg-body-tertiary">
|
<section>
|
||||||
<div class="container">
|
<nav class="navbar navbar-expand-lg bg-body-tertiary">
|
||||||
<a class="navbar-brand" href="{% url 'index' %}">Logs Collector</a>
|
<div class="container">
|
||||||
<button
|
<a class="navbar-brand" href="{% url 'index' %}">Logs Collector</a>
|
||||||
class="navbar-toggler"
|
<button
|
||||||
type="button"
|
class="navbar-toggler"
|
||||||
data-bs-toggle="collapse"
|
type="button"
|
||||||
data-bs-target="#navbarSupportedContent"
|
data-bs-toggle="collapse"
|
||||||
aria-controls="navbarSupportedContent"
|
data-bs-target="#navbarSupportedContent"
|
||||||
aria-expanded="false"
|
aria-controls="navbarSupportedContent"
|
||||||
aria-label="Переключатель навигации"
|
aria-expanded="false"
|
||||||
>
|
aria-label="Переключатель навигации"
|
||||||
<span class="navbar-toggler-icon"></span>
|
>
|
||||||
</button>
|
<span class="navbar-toggler-icon"></span>
|
||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
</button>
|
||||||
<ul class="navbar-nav ml-auto mb-2 mb-lg-0">
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
<li class="nav-item dropdown">
|
<ul class="navbar-nav ml-auto mb-2 mb-lg-0">
|
||||||
<a
|
<li class="nav-item dropdown">
|
||||||
class="nav-link dropdown-toggle"
|
<a
|
||||||
href="#"
|
class="nav-link dropdown-toggle"
|
||||||
role="button"
|
href="#"
|
||||||
data-bs-toggle="dropdown"
|
role="button"
|
||||||
aria-expanded="false"
|
data-bs-toggle="dropdown"
|
||||||
>Tickets</a>
|
aria-expanded="false"
|
||||||
<ul class="dropdown-menu">
|
>Tickets</a
|
||||||
<li>
|
>
|
||||||
<a class="dropdown-item" href="{% url 'index' %}">All</a>
|
<ul class="dropdown-menu">
|
||||||
</li>
|
<li>
|
||||||
{% for platform in platforms %}
|
<a class="dropdown-item" href="{% url 'index' %}">All</a>
|
||||||
<li>
|
</li>
|
||||||
<a
|
{% for platform in platforms %}
|
||||||
class="dropdown-item"
|
<li>
|
||||||
href="{{ platform.get_absolute_url }}"
|
<a
|
||||||
>{{ platform.pretty_name}}</a>
|
class="dropdown-item"
|
||||||
</li>
|
href="{{ platform.get_absolute_url }}"
|
||||||
{% endfor %}
|
>{{ platform.pretty_name}}</a
|
||||||
<li><hr class="dropdown-divider" /></li>
|
>
|
||||||
<li><a class="dropdown-item" href="#">Create ticket</a></li>
|
</li>
|
||||||
</ul>
|
{% endfor %}
|
||||||
</li>
|
<li><hr class="dropdown-divider" /></li>
|
||||||
<li class="nav-item">
|
<li><a class="dropdown-item" href="#">Create ticket</a></li>
|
||||||
<a class="nav-link disabled">Отключенная</a>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
<li class="nav-item">
|
||||||
<form class="d-flex" role="search">
|
<a class="nav-link disabled">Отключенная</a>
|
||||||
<input
|
</li>
|
||||||
class="form-control me-2"
|
</ul>
|
||||||
type="search"
|
<form class="d-flex" role="search">
|
||||||
placeholder="Поиск"
|
<input
|
||||||
aria-label="Поиск"
|
class="form-control me-2"
|
||||||
/>
|
type="search"
|
||||||
<button class="btn btn-outline-success" type="submit">Поиск</button>
|
placeholder="Поиск"
|
||||||
</form>
|
aria-label="Поиск"
|
||||||
|
/>
|
||||||
|
<button class="btn btn-outline-success" type="submit">Поиск</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</nav>
|
||||||
</nav>
|
</section>
|
||||||
</header>
|
</header>
|
||||||
|
37
logs_collector/collector/templates/collector/pagination.html
Normal file
37
logs_collector/collector/templates/collector/pagination.html
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{% if page_obj.has_other_pages %}
|
||||||
|
<nav class="d-flex justify-content-center mt-3" aria-label="...">
|
||||||
|
<ul class="pagination">
|
||||||
|
{% if page_obj.has_previous %}
|
||||||
|
<li class="page-item">
|
||||||
|
<a
|
||||||
|
class="page-link"
|
||||||
|
href="?page={{ page_obj.previous_page_number }}"
|
||||||
|
>Back</a>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<li class="page-item disabled"><a class="page-link">Back</a></li>
|
||||||
|
{% endif %}
|
||||||
|
{% for page in paginator.page_range %}
|
||||||
|
{% if page_obj.number == page %}
|
||||||
|
<li class="page-item active" aria-current="page">
|
||||||
|
<button class="page-link">{{ page }}</button>
|
||||||
|
</li>
|
||||||
|
{% elif page >= page_obj.number|add:-2 and page <= page_obj.number|add:2%}
|
||||||
|
<li class="page-item">
|
||||||
|
<a class="page-link" href="?page={{ page }}">{{ page }}</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% if page_obj.has_next %}
|
||||||
|
<li class="page-item">
|
||||||
|
<a
|
||||||
|
class="page-link"
|
||||||
|
href="?page={{ page_obj.next_page_number }}"
|
||||||
|
>Next</a>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<li class="page-item disabled"><a class="page-link">Next</a></li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
{% endif %}
|
@ -91,7 +91,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% include 'collector/pagination.html' %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
@ -21,6 +21,7 @@ class ListAllTickets(generic.ListView):
|
|||||||
model = Ticket
|
model = Ticket
|
||||||
template_name = 'collector/tickets.html'
|
template_name = 'collector/tickets.html'
|
||||||
context_object_name = 'tickets'
|
context_object_name = 'tickets'
|
||||||
|
paginate_by = 5
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
@ -33,6 +34,7 @@ class ListPlatformTickets(generic.ListView):
|
|||||||
template_name = 'collector/tickets.html'
|
template_name = 'collector/tickets.html'
|
||||||
context_object_name = 'tickets'
|
context_object_name = 'tickets'
|
||||||
allow_empty = False
|
allow_empty = False
|
||||||
|
paginate_by = 5
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Ticket.objects.filter(
|
return Ticket.objects.filter(
|
||||||
|
Loading…
Reference in New Issue
Block a user