Start content

This commit is contained in:
2021-08-07 17:37:36 +02:00
parent a3f31608a8
commit ec0a8c98e7
1391 changed files with 13744 additions and 14 deletions

View File

@@ -5,6 +5,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'css/icons/bootstrap-icons.css' %}" rel="stylesheet">
<title>{{ base.title }}</title>
{% block customhead %}
{% endblock customhead %}
@@ -23,19 +24,25 @@
<li class="nav-item"><a href="{{ item.link }}" class="nav-link {{ item.active_class }}">{{ item }}</a></li>
{% endfor %}
</ul>
{% if base.navbar.has_user %}
<form action="" method="post" class="ms-auto">
{% csrf_token %}
<input type="search" name="qr_search" id="qr_search_field" aria-label="QR Scan" placeholder="QR Search" class="form-control me-2 text-success">
</form>
{% endif %}
<ul class="navbar-nav ms-auto">
{% if base.navbar.has_user %}
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle text-primary" id="navbar-user-dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">{{ base.navbar.username }}</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbar-user-dropdown">
<li><a class="dropdown-item" href="#">Logout</a></li>
<li><a class="dropdown-item" href="{% url 'logout' %}">Logout</a></li>
{% if base.navbar.show_admin %}
<li><a class="dropdown-item text-warning" href="{% url 'admin:index' %}">Administration</a></li>
<li><a class="dropdown-item text-success" href="{% url 'admin:index' %}">Administration</a></li>
{% endif %}
</ul>
</li>
{% else %}
<li class="nav-item"><a href="#" class="nav-link">Login</a></li>
<li class="nav-item"><a href="{% url 'login' %}" class="nav-link{% if base.login_active %} active{% endif %}">Login</a></li>
{% endif %}
</ul>
</div>

View File

@@ -0,0 +1,5 @@
{% extends 'base.html' %}
{% block content %}
<h1>Components</h1>
{% endblock content %}

View File

@@ -0,0 +1,48 @@
{% extends 'base.html' %}
{% block content %}
<div class="container">
<form action="" method="post">
{% csrf_token %}
<div class="row mb-3 justify-content-center">
<div class="col-sm-5">
<label for="{{form.username.id_for_label}}">Username</label>
<div class="input-group has-validation">
<span class="input-group-text" id="username_prepend">@</span>
<input type="text" class="form-control{% if form.username.errors or form.non_field_errors %} is-invalid{% endif %}" id="{{form.username.id_for_label}}" name="{{form.username.name}}" aria-describedby="username_prepend validationServerUsernameFeedback" required>
<div id="validationServerUsernameFeedback" class="invalid-feedback">
{% for msg in form.username.errors %}
{{msg}}
{% endfor %}
</div>
</div>
</div>
</div>
<div class="row mb-3 justify-content-center">
<div class="col-sm-5">
<label for="{{form.password.id_for_label}}">Password</label>
<div class="input-group has-validation">
<input type="password" class="form-control{% if form.password.errors or form.non_field_errors %} is-invalid{% endif %}" name="{{form.password.name}}" id="{{form.password.id_for_label}}" aria-describedby="validationPassword"required>
<div id="validationPassword" class="invalid-feedback">
{% for msg in form.password.errors %}
{{msg}}
{% endfor %}
</div>
</div>
</div>
</div>
<div class="row mb-3 justify-content-center">
{% if form.non_field_errors %}
{% for error in form.non_field_errors %}
<p class="text-danger text-center">{{ error }}</p>
{% endfor %}
{% endif %}
</div>
<div class="row mb-3 justify-content-center">
<div class="col-sm-5">
<input class="btn btn-primary mb-3 px-4" type="submit" value="Login">
</div>
</div>
</form>
</div>
{% endblock content %}

View File

@@ -0,0 +1,19 @@
{% extends 'base.html' %}
{% load qr_code %}
{% block content %}
<div class="container">
<nav aria-label="breadcrumb" class="fs-4">
<ol class="breadcrumb">
<li class="breadcrumb-item"></li>
{% for crumb in breadcrumbs %}
<li class="breadcrumb-item"><a href="{% url 'parts-stocks-detail' uuid=crumb.id %}">{{crumb.name}}</a></li>
{% endfor %}
<li class="breadcrumb-item active" aria-current="page">{{object.name}}</li>
</ol>
</nav>
<h1>Stocks in {{object.get_full_path }}</h1>
{% qr_from_text object.get_qr_code size="m" image_format="svg" %}
</div>
{% endblock content %}

View File

@@ -0,0 +1,53 @@
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row">
<div class="col-md">
<h1>Low Stocks</h1>
<div class="list-group">
{% for low in low_stocks %}
<a href="{% url 'parts-stocks-detail' uuid=low.storage.id %}" class="text-decoration-none">
<li class="list-group-item list-group-item-action d-flex justify-content-between align-items-center">
<div class="flex-shrink-0">
{% if low.component.get_resolved_image %}
<img src="{{low.component.get_resolved_image}}" style="max-width:64px;max-height:64px;" alt="{{ low.component.name }}" class="mr-3">
{% else %}
{% load static %}
<img src="{% static 'css/icons/card-image.svg' %}" style="width:64px;max-height:64px;" alt="{{ low.component.name }}" class="mr-3">
{% endif %}
</div>
<div class="flex-grow-1 ms-3">
<h5 class="mt-0">{{ low.component.name }} in {{ low.component.package }}</h5>
{{ low.storage }}
</div>
{% if low.storage.responsible.username == view.request.user.username %}
<span class="badge bg-danger rounded-pill">{{low.amount}} / {{low.watermark}}</span>
{% else %}
<span class="badge bg-primary rounded-pill">{{low.amount}} / {{low.watermark}}</span>
{% endif %}
</li></a>
{% endfor %}
</div>
</div>
<div class="col-md">
<h1>Storages</h1>
<div class="list-group">
{% for storage in storages %}
<a href="{% url 'parts-stocks-detail' uuid=storage.id %}" class="text-decoration-none">
<li class="list-group-item list-group-item-action justify-content-between align-items-center d-flex">
<div>
<h5>{{storage.name}}</h5>
Responsible: {{ storage.responsible }}
</div>
<span class="badge bg-primary rounded-pill">{{storage.get_total_stock_amount}}</span>
</li>
</a>
{% endfor %}
</div>
</div>
</div>
</div>
{% endblock content %}