This commit is contained in:
Dmitriy
2025-06-23 01:24:34 +03:00
commit 60b4e0e839
303 changed files with 35737 additions and 0 deletions

View File

@ -0,0 +1,28 @@
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block title %}Редактирование профиля - Автошкола{% endblock %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">
<h3 class="text-center">Редактирование профиля</h3>
</div>
<div class="card-body">
<form method="POST">
{% csrf_token %}
{{ form|crispy }}
<div class="d-grid gap-2">
<button type="submit" class="btn btn-primary">Сохранить изменения</button>
<a href="{% url 'profile' %}" class="btn btn-outline-secondary">Отмена</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,122 @@
{% extends 'base.html' %}
{% load static %}
{% block title %}Главная | Автошкола{% endblock %}
{% block content %}
<div class="container">
<!-- Главный баннер -->
<!-- Преимущества -->
<div class="row mb-5">
<div class="col-md-4 mb-4">
<div class="card h-100 shadow bg-dark bg-opacity-75 text-white">
<div class="card-body text-center">
<i class="fas fa-car fa-3x text-primary mb-3"></i>
<h3>Курсы вождения</h3>
<p>Изучите теорию и практику вождения с нашими профессиональными инструкторами. Мы предлагаем:</p>
<ul class="list-unstyled text-start">
<li><i class="fas fa-check text-success me-2"></i>Категория B</li>
<li><i class="fas fa-check text-success me-2"></i>Категория A</li>
<li><i class="fas fa-check text-success me-2"></i>Переподготовка</li>
</ul>
<a href="{% url 'course:list' %}" class="btn btn-primary">
<i class="fas fa-list me-2"></i>Смотреть курсы
</a>
</div>
</div>
</div>
<div class="col-md-4 mb-4">
<div class="card h-100 shadow bg-dark bg-opacity-75 text-white">
<div class="card-body text-center">
<i class="fas fa-users fa-3x text-success mb-3"></i>
<h3>Наши инструкторы</h3>
<p>Опытные инструкторы с многолетним стажем работы. Каждый инструктор:</p>
<ul class="list-unstyled text-start">
<li><i class="fas fa-check text-success me-2"></i>Имеет стаж более 5 лет</li>
<li><i class="fas fa-check text-success me-2"></i>Прошел специальную подготовку</li>
<li><i class="fas fa-check text-success me-2"></i>Имеет современный автопарк</li>
</ul>
<a href="{% url 'instructor:list' %}" class="btn btn-success">
<i class="fas fa-user-tie me-2"></i>Смотреть инструкторов
</a>
</div>
</div>
</div>
<div class="col-md-4 mb-4">
<div class="card h-100 shadow bg-dark bg-opacity-75 text-white">
<div class="card-body text-center">
<i class="fas fa-graduation-cap fa-3x text-info mb-3"></i>
<h3>Почему мы?</h3>
<ul class="list-unstyled text-start">
<li><i class="fas fa-check text-success me-2"></i>Современные автомобили</li>
<li><i class="fas fa-check text-success me-2"></i>Гибкий график занятий</li>
<li><i class="fas fa-check text-success me-2"></i>Индивидуальный подход</li>
<li><i class="fas fa-check text-success me-2"></i>Высокий процент сдачи</li>
<li><i class="fas fa-check text-success me-2"></i>Удобное расположение</li>
</ul>
</div>
</div>
</div>
</div>
<!-- Дополнительная информация -->
<div class="row mb-5">
<div class="col-md-6 mb-4">
<div class="card shadow bg-dark bg-opacity-75 text-white">
<div class="card-body">
<h3 class="mb-4">О нашей автошколе</h3>
<p>Автошкола "Флагман" - это современный учебный центр, где вы получите качественное образование и практические навыки вождения. Мы работаем с 2010 года и за это время подготовили более 5000 водителей.</p>
<p>Наша миссия - сделать процесс обучения вождению максимально эффективным и комфортным для каждого студента. Мы используем современные методики обучения и постоянно совершенствуем наш подход.</p>
</div>
</div>
</div>
<div class="col-md-6 mb-4">
<div class="card shadow bg-dark bg-opacity-75 text-white">
<div class="card-body">
<h3 class="mb-4">Наши преимущества</h3>
<ul class="list-unstyled">
<li class="mb-3"><i class="fas fa-car-side text-primary me-2"></i>Современный автопарк с автомобилями разных классов</li>
<li class="mb-3"><i class="fas fa-chalkboard-teacher text-success me-2"></i>Опытные преподаватели теории и практики</li>
<li class="mb-3"><i class="fas fa-clock text-info me-2"></i>Гибкий график занятий, включая выходные дни</li>
<li class="mb-3"><i class="fas fa-map-marker-alt text-danger me-2"></i>Удобное расположение в центре города</li>
<li class="mb-3"><i class="fas fa-percentage text-warning me-2"></i>Высокий процент успешной сдачи экзаменов</li>
</ul>
</div>
</div>
</div>
</div>
{% if not user.is_authenticated %}
<div class="row mt-4">
<div class="col-md-6 offset-md-3">
<div class="card shadow bg-dark bg-opacity-75 text-white">
<div class="card-body text-center">
<h3>Начните обучение прямо сейчас!</h3>
<p class="lead">Быстрая регистрация за 2 минуты</p>
<form method="post" action="{% url 'accounts:register' %}" class="mb-3">
{% csrf_token %}
<div class="mb-3">
<input type="text" name="username" class="form-control bg-dark text-white border-secondary" placeholder="Имя пользователя" required>
</div>
<div class="mb-3">
<input type="email" name="email" class="form-control bg-dark text-white border-secondary" placeholder="Email" required>
</div>
<div class="mb-3">
<input type="password" name="password1" class="form-control bg-dark text-white border-secondary" placeholder="Пароль" required>
</div>
<button type="submit" class="btn btn-primary btn-lg w-100">
<i class="fas fa-user-plus me-2"></i>Зарегистрироваться
</button>
</form>
<p>Уже есть аккаунт? <a href="{% url 'accounts:login' %}" class="text-white">Войти</a></p>
</div>
</div>
</div>
</div>
{% endif %}
</div>
{% endblock %}

View File

@ -0,0 +1,42 @@
{% extends 'base.html' %}
{% load static %}
{% load crispy_forms_tags %}
{% block title %}Вход | Автошкола{% endblock %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card shadow bg-dark bg-opacity-75 text-white">
<div class="card-header bg-primary text-white">
<h4 class="mb-0">
<i class="fas fa-sign-in-alt me-2"></i>Вход в систему
</h4>
</div>
<div class="card-body">
<form method="post" novalidate>
{% csrf_token %}
<div class="mb-3">
<label for="id_username" class="form-label text-white">Имя пользователя</label>
<input type="text" name="username" id="id_username" class="form-control bg-dark text-white border-secondary" required>
</div>
<div class="mb-3">
<label for="id_password" class="form-label text-white">Пароль</label>
<input type="password" name="password" id="id_password" class="form-control bg-dark text-white border-secondary" required>
</div>
<div class="d-grid gap-2 mt-4">
<button type="submit" class="btn btn-primary">
<i class="fas fa-sign-in-alt me-2"></i>Войти
</button>
<a href="{% url 'accounts:register' %}" class="btn btn-outline-light">
<i class="fas fa-user-plus me-2"></i>Нет аккаунта? Зарегистрироваться
</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,29 @@
{% extends 'base.html' %}
{% load static %}
{% block title %}Выход | Автошкола{% endblock %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card shadow">
<div class="card-header bg-primary text-white">
<h4 class="mb-0">
<i class="fas fa-sign-out-alt me-2"></i>Выход из системы
</h4>
</div>
<div class="card-body text-center">
<p class="lead">Вы успешно вышли из системы.</p>
<form method="post">
{% csrf_token %}
<button type="submit" class="btn btn-primary">
<i class="fas fa-sign-in-alt me-2"></i>Войти снова
</button>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,64 @@
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block title %}Профиль - Автошкола{% endblock %}
{% block content %}
<div class="container">
<div class="row">
<div class="col-md-4">
<div class="card">
<div class="card-body">
<h5 class="card-title">Информация о пользователе</h5>
<p><strong>Имя пользователя:</strong> {{ user.username }}</p>
<p><strong>Email:</strong> {{ user.email }}</p>
<p><strong>Имя:</strong> {{ user.first_name }}</p>
<p><strong>Фамилия:</strong> {{ user.last_name }}</p>
<p><strong>Тип пользователя:</strong> {{ user.profile.get_user_type_display }}</p>
<p><strong>Телефон:</strong> {{ user.profile.phone }}</p>
<p><strong>Адрес:</strong> {{ user.profile.address }}</p>
<p><strong>Дата рождения:</strong> {{ user.profile.birth_date }}</p>
<a href="{% url 'accounts:profile_update' %}" class="btn btn-primary">Редактировать профиль</a>
</div>
</div>
</div>
<div class="col-md-8">
{% if user.profile.user_type == 'student' %}
<div class="card mb-4">
<div class="card-body">
<h5 class="card-title">Прогресс обучения</h5>
<div class="progress mb-3">
<div class="progress-bar" role="progressbar" style="width: {{ user.student.progress }}%">
{{ user.student.progress }}%
</div>
</div>
<a href="{% url 'student_progress' %}" class="btn btn-outline-primary">Подробнее</a>
</div>
</div>
<div class="card">
<div class="card-body">
<h5 class="card-title">Ближайшие занятия</h5>
<!-- Здесь будет список ближайших занятий -->
</div>
</div>
{% elif user.profile.user_type == 'instructor' %}
<div class="card mb-4">
<div class="card-body">
<h5 class="card-title">Расписание занятий</h5>
<!-- Здесь будет расписание занятий -->
</div>
</div>
<div class="card">
<div class="card-body">
<h5 class="card-title">Список студентов</h5>
<!-- Здесь будет список студентов -->
</div>
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,50 @@
{% extends 'base.html' %}
{% load static %}
{% load crispy_forms_tags %}
{% block title %}Регистрация | Автошкола{% endblock %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card shadow bg-dark bg-opacity-75 text-white">
<div class="card-header bg-primary text-white">
<h4 class="mb-0">
<i class="fas fa-user-plus me-2"></i>Регистрация
</h4>
</div>
<div class="card-body">
<form method="post" novalidate>
{% csrf_token %}
<div class="mb-3">
<label for="id_username" class="form-label text-white">Имя пользователя</label>
<input type="text" name="username" id="id_username" class="form-control bg-dark text-white border-secondary" required>
</div>
<div class="mb-3">
<label for="id_email" class="form-label text-white">Email</label>
<input type="email" name="email" id="id_email" class="form-control bg-dark text-white border-secondary" required>
</div>
<div class="mb-3">
<label for="id_password1" class="form-label text-white">Пароль</label>
<input type="password" name="password1" id="id_password1" class="form-control bg-dark text-white border-secondary" required>
</div>
<div class="mb-3">
<label for="id_password2" class="form-label text-white">Подтверждение пароля</label>
<input type="password" name="password2" id="id_password2" class="form-control bg-dark text-white border-secondary" required>
</div>
<div class="d-grid gap-2 mt-4">
<button type="submit" class="btn btn-primary">
<i class="fas fa-user-plus me-2"></i>Зарегистрироваться
</button>
<a href="{% url 'accounts:login' %}" class="btn btn-outline-light">
<i class="fas fa-sign-in-alt me-2"></i>Уже есть аккаунт? Войти
</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,35 @@
{% extends 'base.html' %}
{% load static %}
{% load crispy_forms_tags %}
{% block title %}Регистрация инструктора | Автошкола{% endblock %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card shadow">
<div class="card-header bg-primary text-white">
<h4 class="mb-0">
<i class="fas fa-user-plus me-2"></i>Регистрация инструктора
</h4>
</div>
<div class="card-body">
<form method="post" novalidate>
{% csrf_token %}
{{ form|crispy }}
<div class="d-grid gap-2 d-md-flex justify-content-md-end mt-4">
<a href="{% url 'home' %}" class="btn btn-secondary me-md-2">
<i class="fas fa-times me-2"></i>Отмена
</a>
<button type="submit" class="btn btn-primary">
<i class="fas fa-user-plus me-2"></i>Зарегистрировать
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}