1 | <!DOCTYPE html>
|
---|
2 | <html>
|
---|
3 | <head>
|
---|
4 | <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/css/bootstrap.min.css" rel="stylesheet"
|
---|
5 | integrity="sha384-SgOJa3DmI69IUzQ2PVdRZhwQ+dy64/BUtbMJw1MZ8t5HZApcHrRKUc4W0kG879m7" crossorigin="anonymous">
|
---|
6 | <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/js/bootstrap.bundle.min.js"
|
---|
7 | integrity="sha384-k6d4wzSIapyDyv1kpU366/PK5hCdSbCRGRCMv+eplOQJWyd1fbcAu9OCUj5zNLiq"
|
---|
8 | crossorigin="anonymous"></script>
|
---|
9 | <title>Number of Tracks from Each Genre per Customer</title>
|
---|
10 | </head>
|
---|
11 | <body class="d-flex bg-light">
|
---|
12 | {% include 'sidebar.html' %}
|
---|
13 | <div class="container mt-5">
|
---|
14 | <h1 class="mb-4 text-center">Number of Tracks from Each Genre per Customer</h1>
|
---|
15 |
|
---|
16 | <form method="GET" action="" class="row g-3 mb-4">
|
---|
17 | <div class="col-md-4">
|
---|
18 | <label for="customer_id" class="form-label">Select Customer:</label>
|
---|
19 | <select name="customer_id" id="customer_id" class="form-select">
|
---|
20 | <option value="">All Customers</option>
|
---|
21 | {% for customer in customers %}
|
---|
22 | <option value="{{ customer.customer_id }}"
|
---|
23 | {% if request.GET.customer_id == customer.0|stringformat:'s' %}selected{% endif %}>
|
---|
24 | {{ customer.first_name }} {{ customer.last_name }}
|
---|
25 | </option>
|
---|
26 | {% endfor %}
|
---|
27 | </select>
|
---|
28 | </div>
|
---|
29 |
|
---|
30 | <div class="col-md-4 d-flex align-items-end">
|
---|
31 | <button type="submit" class="btn btn-primary w-100">Filter</button>
|
---|
32 | </div>
|
---|
33 | </form>
|
---|
34 | {% if customer %}
|
---|
35 | <div class="row display-5">
|
---|
36 | <div class="col-3 bg-light-subtle m-1 pb-3 border border-secondary-subtle rounded-3">
|
---|
37 | {{ customer }}
|
---|
38 | </div>
|
---|
39 | </div>
|
---|
40 | {% endif %}
|
---|
41 | {% if not data %}
|
---|
42 | <div class="alert alert-warning" role="alert">
|
---|
43 | No data available for the selected customer.
|
---|
44 | </div>
|
---|
45 | {% else %}
|
---|
46 | <div class="container">
|
---|
47 | <div class="row col-6 justify-content-between mb-3">
|
---|
48 | <div class="col-6 font-weight-bold">
|
---|
49 | <strong>Genre</strong>
|
---|
50 | </div>
|
---|
51 | <div class="col-6 font-weight-bold px-4">
|
---|
52 | <strong>Number of tracks</strong>
|
---|
53 | </div>
|
---|
54 | </div>
|
---|
55 | <ul class="row list-group col-6">
|
---|
56 | {% for row in data %}
|
---|
57 | <li class="list-group-item d-flex justify-content-between align-items-center">
|
---|
58 | <div class="col-6">
|
---|
59 | <span>{{ row.genre }}</span>
|
---|
60 | </div>
|
---|
61 | <div class="col-6">
|
---|
62 | <span>Number of Tracks: {{ row.track_count }}</span>
|
---|
63 | </div>
|
---|
64 | </li>
|
---|
65 | {% empty %}
|
---|
66 | <li class="list-group-item">No data available for this customer.</li>
|
---|
67 | {% endfor %}
|
---|
68 | </ul>
|
---|
69 | </div>
|
---|
70 | {% endif %}
|
---|
71 | </div>
|
---|
72 |
|
---|
73 | </body>
|
---|
74 | </html>
|
---|