Switch to new Design

This commit is contained in:
Kevin Heyer 2025-09-08 08:10:30 +02:00
parent ff134eee9a
commit ee78caa3d1
3 changed files with 172 additions and 142 deletions

82
.gitignore vendored
View file

@ -1,5 +1,79 @@
.venv # Byte-compiled / optimized / DLL files
.startserver.sh __pycache__/
*.py[cod]
*$py.class
# Distribution / packaging
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# Django stuff:
*.log
*.pot
*.pyc
*.sqlite3
db.sqlite3
media/
staticfiles/
static/
# If you are using WhiteNoise for static file management
static_root/
# Django migrations (optional nur ignorieren wenn du sie nicht versionieren willst)
# **/migrations/
# PyInstaller
*.manifest
*.spec
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
# Environments
.env .env
sb.sqlite3 .venv
__pycache__ env/
venv/
ENV/
env.bak/
venv.bak/
# IDE / Editor stuff
.vscode/
.idea/
*.swp
*.swo
*.sublime-project
*.sublime-workspace
# System files
.DS_Store
Thumbs.db
db.sqlite3

View file

@ -1,53 +1,45 @@
html, body { /* Topbar-Farbe erzwingen (Bulma überschreibt sonst mit weiß) */
height: 100%; .navbar.topbar-nav {
} background-color: #d6801e !important; /* Orange wie im Screenshot */
.sidebar { box-shadow: none;
position: fixed;
top: 60px;
left: 0;
width: 220px;
height: calc(100% - 60px);
padding: 1rem;
border-right: 1px solid #ddd;
overflow-y: auto;
} }
.content { /* Textfarben in der Topbar */
margin-left: 220px; .navbar.topbar-nav .navbar-item,
padding: 2rem; .navbar.topbar-nav .navbar-link {
padding-top: 80px; color: #111;
}
.navbar.topbar-nav .navbar-item:hover,
.navbar.topbar-nav .navbar-link:hover {
background-color: rgba(0,0,0,.04);
color: #111;
} }
.navbar.is-fixed-top { /* Dropdown-Pfeil in lila */
z-index: 1000; .navbar.topbar-nav .navbar-link::after {
border-color: #6b2bbd; /* lila */
} }
@media (max-width: 768px) { /* Lila Logo-Kachel links */
.sidebar { .logo {
position: relative; background: #5a2a82 !important;
width: 100%; color: #fff;
height: auto;
border-right: none;
padding-top: 0;
}
.content {
margin-left: 0;
padding-top: 2rem;
} }
.logo .logo-text {
color: #fff;
font-weight: 700;
} }
/** /* Rechte Seite: Suche + Profil */
Breadcrumps .actions { display: flex; align-items: center; gap: 10px; padding-right: 10px; }
**/ .search { border: 1px solid #c7c7c7; border-radius: 4px; padding: 4px 8px; font-size: 14px; }
.profile { background: #3c7d74; color: #fff; width: 28px; height: 28px; border-radius: 9999px;
display: flex; align-items: center; justify-content: center; font-weight: 700; }
.breadcrumb { /* Inhalt darunter */
margin-bottom: 20px; .content { background: #fafafa; min-height: calc(100vh - 3.25rem); }
} .home-icon { font-size: 20px; display: inline-block; margin: 10px; }
.content li{ /* Dropdown optisch näher am Screenshot */
margin-top: 5px !important; .navbar-dropdown { border-top: none; box-shadow: 0 8px 16px rgba(0,0,0,.1); }
}
.content li+li {
margin: 0 !important;
}

View file

@ -3,104 +3,68 @@
<html lang="de"> <html lang="de">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Risiko Management</title> <title>Risiko Management</title>
<link rel="stylesheet" href="{% static '/css/bulma.min.css' %}"> <link rel="stylesheet" href="{% static 'css/bulma.min.css' %}">
<link rel="stylesheet" href="{% static '/css/design.css' %}"> <link rel="stylesheet" href="{% static 'css/design.css' %}">
<link rel="stylesheet" href="{% static '/css/fontawesome.min.css' %}"> <link rel="stylesheet" href="{% static 'css/fontawesome.min.css' %}">
<link rel="stylesheet" href="{% static '/css/print.css' %}" media="print"> <link rel="stylesheet" href="{% static 'css/print.css' %}" media="print">
<meta name="description" content="Effizientes Risiko Management für Unternehmen: Analysieren, bewerten und steuern Sie Risiken sicher und zuverlässig.">
<link rel="icon" href="favicon.ico">
<link rel="icon" href="favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="apple-touch-icon.png">
</head> </head>
<body> <body>
<!-- User Navbar --> <header class="topbar">
<nav class="navbar is-fixed-top has-shadow"> <nav class="navbar topbar-nav" role="navigation" aria-label="main navigation">
<div class="navbar-brand"> <div class="navbar-brand">
<a class="navbar-item" href="#"> <a class="navbar-item logo" href="/risks/index">
<strong>ISO27001 Management</strong> <strong class="logo-text">R</strong>
</a> </a>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarMenu">
<!-- Burger Menu für Mobile -->
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="mainNavbar">
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
</a> </a>
</div> </div>
<div id="navbarMenu" class="navbar-menu"> <div id="mainNavbar" class="navbar-menu">
<div class="navbar-end"> <div class="navbar-start">
<div class="navbar-item has-dropdown is-hoverable"> <div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link"> <a class="navbar-link">Allgemein</a>
Profil <div class="navbar-dropdown">
</a> <a class="navbar-item" href="/risks/index">Dashboard</a>
<div class="navbar-dropdown is-right"> <a class="navbar-item" href="/risks/stats">Statistiken</a>
<a class="navbar-item" href="#">Einstellungen</a>
<a class="navbar-item" href="#">Benachrichtigungen</a>
<hr class="navbar-divider">
<a class="navbar-item" href="#">Abmelden</a>
</div> </div>
</div> </div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">Risikomanagement</a>
<div class="navbar-dropdown">
<a class="navbar-item" href="/risks/risks">Risikoanalyse</a>
<a class="navbar-item" href="/risks/controls">Maßnahmen</a>
<a class="navbar-item" href="/risks/incidents">Vorfälle</a>
</div>
</div>
</div>
</div>
<div class="navbar-end">
<div class="actions">
<input type="text" placeholder="Suchen" class="search">
<div class="profile">KG</div>
<span class="icon"></span>
</div> </div>
</div> </div>
</nav> </nav>
</header>
<!-- Sidebar -->
<aside class="menu sidebar">
<p class="menu-label">Allgemein</p>
<ul class="menu-list">
<li><a class="{% if request.path == '/risks/' %}is-active{% endif %}" href="/risks/">Dashboard</a></li>
<li><a class="{% if request.path == '/risks/stats' %}is-active{% endif %}" href="/risks/stats">Statistiken</a></li>
</ul>
<p class="menu-label">Risikomanagement</p>
<ul class="menu-list">
<li><a class="{% if request.path == '/risks/risks' %}is-active{% endif %}" href="/risks/risks">Risiken</a></li>
<li><a class="{% if request.path == '/risks/controls' %}is-active{% endif %}" href="/risks/controls">Maßnahmen</a></li>
<li><a class="{% if request.path == '/risks/incidents' %}is-active{% endif %}" href="/risks/incidents">Vorfälle</a></li>
</ul>
<p class="menu-label">Verwaltung</p>
<ul class="menu-list">
<li><a href="/admin">Adminbereich</a></li>
</ul>
</aside>
<!-- Content -->
<main class="content"> <main class="content">
{% block breadcrumbs %} <div class="home-icon">
<nav class="breadcrumb has-arrow-separator" aria-label="breadcrumbs">
<ul>
<li>
<a href="{% url 'risks:index' %}"> <a href="{% url 'risks:index' %}">
<span class="icon is-small"> <span class="icon is-small">
<i class="fas fa-home" aria-hidden="true"></i> <i class="fas fa-home" aria-hidden="true" style="color: #6b2bbd"></i>
</span> </span>
</a> </a>
</li> </div>
{% block crumbs %}
{% if title %} &rsaquo; {{ title }}{% endif %}
{% endblock %}
</ul>
</nav>
{% endblock %}
{% block content %}{% endblock %} {% block content %}{% endblock %}
</main> </main>
<!-- Bulma Navbar Burger Script -->
<script>
document.addEventListener('DOMContentLoaded', () => {
const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
if ($navbarBurgers.length > 0) {
$navbarBurgers.forEach( el => {
el.addEventListener('click', () => {
const target = el.dataset.target;
const $target = document.getElementById(target);
el.classList.toggle('is-active');
$target.classList.toggle('is-active');
});
});
}
});
</script>
</body> </body>
</html> </html>