feat: upgrade Bootstrap to v5.3
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6
app/base/static/bootstrap5.3/css/bootstrap.min.css
vendored
Normal file
6
app/base/static/bootstrap5.3/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
app/base/static/bootstrap5.3/css/bootstrap.min.css.map
Normal file
1
app/base/static/bootstrap5.3/css/bootstrap.min.css.map
Normal file
File diff suppressed because one or more lines are too long
7
app/base/static/bootstrap5.3/js/bootstrap.bundle.min.js
vendored
Normal file
7
app/base/static/bootstrap5.3/js/bootstrap.bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -3,9 +3,8 @@
|
||||
src: url(/static/fonts/Dosis.ttf);
|
||||
}
|
||||
|
||||
.font-dosis {
|
||||
font-family: 'Dosis', sans-serif;
|
||||
}
|
||||
a:not(:hover) {text-decoration: none;}
|
||||
.font-dosis {font-family: 'Dosis', sans-serif;}
|
||||
|
||||
/*
|
||||
* Colors
|
||||
@@ -21,15 +20,9 @@
|
||||
--fg-subtle: #495057;
|
||||
}
|
||||
|
||||
.bg-subtle {
|
||||
background-color: var(--bg-subtle);
|
||||
}
|
||||
.bg-subtle:hover {
|
||||
background-color: var(--bg-subtle-hover);
|
||||
}
|
||||
.bg-dim {
|
||||
background-color: var(--bg-dim);
|
||||
}
|
||||
.bg-subtle {background-color: var(--bg-subtle);}
|
||||
.bg-subtle:hover {background-color: var(--bg-subtle-hover);}
|
||||
.bg-dim {background-color: var(--bg-dim);}
|
||||
.btn.bg-dim:hover, .list-group-item-action.bg-dim:hover {
|
||||
background-color: var(--bg-dim-hover);
|
||||
}
|
||||
@@ -59,10 +52,6 @@ header {
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
#main-nav {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#navbar-toggler {
|
||||
display: none;
|
||||
margin-right: 1em;
|
||||
@@ -130,7 +119,7 @@ header {
|
||||
|
||||
table th {
|
||||
font-size: .8em;
|
||||
background-color: var(--bg-dim);
|
||||
background-color: var(--bg-dim) !important;
|
||||
}
|
||||
|
||||
thead>tr, tr.thead {
|
||||
@@ -189,13 +178,14 @@ td.table-actions a:hover {
|
||||
} */
|
||||
|
||||
.table-sm tbody>tr {
|
||||
border: unset !important;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
table.clickable tbody>tr {
|
||||
cursor: pointer;
|
||||
}
|
||||
table.clickable tbody>tr:hover {
|
||||
table.clickable tbody>tr:hover>td {
|
||||
background-color: var(--bg-subtle-hover);
|
||||
}
|
||||
|
||||
@@ -204,10 +194,10 @@ table.clickable tbody>tr:hover {
|
||||
gap: .3em;
|
||||
align-items: baseline;
|
||||
color: var(--fg-subtle);
|
||||
font-size: 2.5rem;
|
||||
font-size: 2.3rem;
|
||||
}
|
||||
.h1-w-icon+.h1-w-icon {
|
||||
font-size: 2rem;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
.h1-w-icon>h1 {
|
||||
font-size: unset;
|
||||
@@ -264,13 +254,13 @@ table.clickable tbody>tr:hover {
|
||||
}
|
||||
|
||||
.text-red {
|
||||
color: #df2752;
|
||||
color: #df2752 !important;
|
||||
}
|
||||
.text-green {
|
||||
color: #23be58;
|
||||
color: #23be58 !important;
|
||||
}
|
||||
.text-gray {
|
||||
color: #aaa;
|
||||
color: #aaa !important;
|
||||
}
|
||||
|
||||
#by_month_history td:first-of-type {
|
||||
|
||||
@@ -8,42 +8,44 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="shortcut icon" href="{% static 'img/favicon.ico' %}">
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'bootstrap4.6.2/css/bootstrap.min.css' %}">
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'bootstrap5.3/css/bootstrap.min.css' %}">
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'fontawesome6.4.0/css/all.min.css' %}">
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
|
||||
{% comment %} <script src="{% static 'jquery3.6.4/js/jquery.min.js' %}"></script> {% endcomment %}
|
||||
{% comment %} <script src="{% static 'bootstrap4.6.2/js/bootstrap.min.js' %}"></script> {% endcomment %}
|
||||
{% comment %} <script src="{% static 'bootstrap5.3/js/bootstrap.min.js' %}"></script> {% endcomment %}
|
||||
<script src="{% static 'js/main.js' %}"></script>
|
||||
<script src="{% static 'js/onload.js' %}" defer></script>
|
||||
<title>{% block title %}{{ title }}{% endblock title %}</title>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<nav id="main-nav" class="navbar navbar-expand-lg navbar-light">
|
||||
<a id="navbar-toggler" onclick="toggleMenu('sidebar-wrapper')">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</a>
|
||||
<a class="navbar-brand d-none d-md-block" href="{% url 'index' %}">
|
||||
<img id="logo" src="{% static 'img/logo.png' %}" alt="Werkstattmanagement">
|
||||
</a>
|
||||
<form id="global-search" action="{% url 'person:list' %}" method="get">
|
||||
<input name="q" value="{{ request.GET.q }}">
|
||||
<button type="submit" class="btn bg-owba"><i class="fas fa-search"></i></button>
|
||||
</form>
|
||||
<div class="avatar">
|
||||
<button type="button" data-toggle="dropdown" onclick="toggleMenu('profileMenu')">
|
||||
<i class="far fa-user fa-lg"></i>
|
||||
</button>
|
||||
<div id="profileMenu" class="dropdown-menu dropdown-menu-right icon-list">
|
||||
<a class="dropdown-item" href="{% url 'dashboard' %}"><i class="fas fa-chart-line"></i> Dashboard</a>
|
||||
<a class="dropdown-item" href="{% url 'settings' %}"><i class="fas fa-sliders-h"></i> Einstellungen</a>
|
||||
<a class="dropdown-item" href="{% url 'logout' %}"><i class="fas fa-arrow-right-from-bracket"></i> Logout</a>
|
||||
<nav class="navbar navbar-expand-lg">
|
||||
<div class="container-fluid">
|
||||
<a id="navbar-toggler" onclick="toggleMenu('sidebar-wrapper')">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</a>
|
||||
<a class="navbar-brand d-none d-md-block" href="{% url 'index' %}">
|
||||
<img id="logo" src="{% static 'img/logo.png' %}" alt="Werkstattmanagement">
|
||||
</a>
|
||||
<form id="global-search" action="{% url 'person:list' %}" method="get">
|
||||
<input name="q" value="{{ request.GET.q }}">
|
||||
<button type="submit" class="btn bg-owba"><i class="fas fa-search"></i></button>
|
||||
</form>
|
||||
<div class="avatar">
|
||||
<button type="button" data-toggle="dropdown" onclick="toggleMenu('profileMenu')">
|
||||
<i class="far fa-user fa-lg"></i>
|
||||
</button>
|
||||
<div id="profileMenu" class="dropdown-menu dropdown-menu-right icon-list">
|
||||
<a class="dropdown-item" href="{% url 'dashboard' %}"><i class="fas fa-chart-line"></i> Dashboard</a>
|
||||
<a class="dropdown-item" href="{% url 'settings' %}"><i class="fas fa-sliders-h"></i> Einstellungen</a>
|
||||
<a class="dropdown-item" href="{% url 'logout' %}"><i class="fas fa-arrow-right-from-bracket"></i> Logout</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="d-flex" id="wrapper">
|
||||
<div id="sidebar-wrapper" class="border-right bg-dim">
|
||||
<div id="sidebar-wrapper" class="border-end bg-dim">
|
||||
<div class="icon-list list-group list-group-flush">
|
||||
<a href="{% url 'booking:list' %}" class="list-group-item list-group-item-action bg-dim"><i class="fas fa-clock"></i> Zeitbuchungen</a>
|
||||
<a href="{% url 'person:list' %}" class="list-group-item list-group-item-action bg-dim"><i class="fas fa-users"></i> Werkstattnutzer:innen</a>
|
||||
@@ -53,7 +55,7 @@
|
||||
</div>
|
||||
{% if BUILD_DATE %}
|
||||
<i class="flex-fill"></i>
|
||||
<p class="small text-center font-weight-lighter">
|
||||
<p class="small text-center fw-lighter">
|
||||
v{{ BUILD_DATE|date:'Y-m-d H:i' }}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
@@ -44,8 +44,8 @@ und <b>{{person.by_count.long_not_seen}}</b> waren seit über einem Jahr nicht m
|
||||
<tr>
|
||||
<th>{{ booking.labels|get_item:stat.type }}</th>
|
||||
<td class="text-center">{{ stat.count }}</td>
|
||||
<td class="text-right">{{ stat.sum|divide:stat.count|floatformat:1 }} Min.</td>
|
||||
<td class="text-right">{{ stat.sum }} Min.</td>
|
||||
<td class="text-end">{{ stat.sum|divide:stat.count|floatformat:1 }} Min.</td>
|
||||
<td class="text-end">{{ stat.sum }} Min.</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
<div class="mb-3">
|
||||
<h6 class="d-inline-block">Attribute:</h6>
|
||||
{% for attr in object.attributes|dictsort:2 %}
|
||||
<a class="badge border1" href="{% url 'trait-mapping:detail' attr.0 %}">{{ attr.2 }}</a>
|
||||
<a class="badge text-primary border1" href="{% url 'trait-mapping:detail' attr.0 %}">{{ attr.2 }}</a>
|
||||
{% endfor %}
|
||||
<a class="badge badge-secondary" href="{% url 'trait-mapping:create' %}{{ back_query }}&user={{ object.pk }}" title="Attribut hinzufügen"><i class="fas fa-plus"></i></a>
|
||||
<a class="badge bg-secondary" href="{% url 'trait-mapping:create' %}{{ back_query }}&user={{ object.pk }}" title="Attribut hinzufügen"><i class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
|
||||
{% include 'widgets/alerts.html' %}
|
||||
@@ -57,13 +57,11 @@
|
||||
</div>
|
||||
<form method="get" action="{% url 'transaction:create' %}" onsubmit>
|
||||
<div class="input-group">
|
||||
<input name="amount" class="form-control text-right" type="number" min="0" step="0.5" value="{{ object.account.balance|invert|min:object.account.balance|default:10|floatformat:'2u' }}">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text">€</span>
|
||||
</div>
|
||||
<input name="amount" class="form-control text-end" type="number" min="0" step="0.5" value="{{ object.account.balance|invert|min:object.account.balance|default:10|floatformat:'2u' }}">
|
||||
<span class="input-group-text">€</span>
|
||||
</div>
|
||||
<input type="hidden" name="account" value="{{ object.account.pk }}">
|
||||
<div class="btn-group btn-block mt-2">
|
||||
<div class="btn-group mt-2 w-100">
|
||||
<button name="_type" class="btn btn-outline-success" value="deposit-plus">Einzahlen</button>
|
||||
<button name="_type" class="btn btn-outline-danger" value="deposit-minus">Auszahlen</button>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% if object.note %}
|
||||
<div class="alert alert-warning d-flex">
|
||||
<span><i class="far fa-message"></i></span>
|
||||
<span class="raw-text ml-2">{{ object.note }}</span>
|
||||
<span class="raw-text ms-2">{{ object.note }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if object.agreed_to_terms_of_service is False %}
|
||||
|
||||
@@ -4,19 +4,17 @@
|
||||
{% if user.current_checkin %}
|
||||
<div id="checkin-timer" class="text-green mb-3" data-since="{{ user.current_checkin.begin_time|date:'r' }}">0h 0min 0s</div>
|
||||
<div class="checkin-title mb-3"><i class="fas fa-circle text-green"></i> {{ user.first_name }} ist in der Werkstatt.</div>
|
||||
<a class="btn btn-primary btn-block" href="{% url 'toggle-checkin' user.id %}?next={{ request.path }}">{{ user.first_name }} auschecken</a>
|
||||
<a class="btn btn-primary w-100" href="{% url 'toggle-checkin' user.id %}?next={{ request.path }}">{{ user.first_name }} auschecken</a>
|
||||
{% else %}
|
||||
<div class="checkin-title mb-3"><i class="fas fa-circle text-red"></i> {{ user.first_name }} ist zuhause.</div>
|
||||
<form method="GET" action="{% url 'toggle-checkin' user.id %}">
|
||||
<div class="form-group">
|
||||
<label for="plan-select">Tarif:</label>
|
||||
<select class="custom-select mb-2" id="plan-select" name="plan">
|
||||
<option value="basic" selected>BASIC</option>
|
||||
<option value="plus">PLUS</option>
|
||||
</select>
|
||||
<input type="hidden" name="next" value="{{ request.path }}">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary btn-block">{{ user.first_name }} einchecken</button>
|
||||
<label for="plan-select" class="form-label">Tarif:</label>
|
||||
<select class="form-select mt-2 mb-4" id="plan-select" name="plan">
|
||||
<option value="basic" selected>BASIC</option>
|
||||
<option value="plus">PLUS</option>
|
||||
</select>
|
||||
<input type="hidden" name="next" value="{{ request.path }}">
|
||||
<button type="submit" class="btn btn-primary w-100">{{ user.first_name }} einchecken</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -129,7 +129,7 @@ class PersonDetailView(PersonOptions, ModelDetailView):
|
||||
},
|
||||
'amount': {
|
||||
'is_price': True,
|
||||
'class': 'text-right',
|
||||
'class': 'text-end',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ class TransactionOptions(ViewOptions[Transaction], LoginRequired):
|
||||
},
|
||||
'amount': {
|
||||
'is_price': True,
|
||||
'class': 'text-right',
|
||||
'class': 'text-end',
|
||||
'width': '6rem',
|
||||
},
|
||||
'account': {
|
||||
|
||||
Reference in New Issue
Block a user