Initials
This commit is contained in:
17
templates/accounts/login.html
Normal file
17
templates/accounts/login.html
Normal file
@@ -0,0 +1,17 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-4">
|
||||
<div class="card p-4 shadow-sm">
|
||||
<h3 class="text-center mb-3">Login</h3>
|
||||
<form method="post" novalidate>
|
||||
{% csrf_token %}
|
||||
{{ form.non_field_errors }}
|
||||
<div class="mb-3">{{ form.username.label_tag }}{{ form.username }}</div>
|
||||
<div class="mb-3">{{ form.password.label_tag }}{{ form.password }}</div>
|
||||
<button class="btn btn-primary w-100">Login</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
7
templates/accounts/user_confirm_delete.html
Normal file
7
templates/accounts/user_confirm_delete.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<h3>Delete User</h3>
|
||||
<p>Are you sure you want to delete <strong>{{ object.username }}</strong>?</p>
|
||||
<form method="post">{% csrf_token %}<button class="btn btn-danger">Yes, delete</button>
|
||||
<a class="btn btn-secondary" href="{% url 'accounts:user_list' %}">Cancel</a></form>
|
||||
{% endblock %}
|
||||
9
templates/accounts/user_form.html
Normal file
9
templates/accounts/user_form.html
Normal file
@@ -0,0 +1,9 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<h3>{% if object %}Edit{% else %}Add{% endif %} User</h3>
|
||||
<form method="post">{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button class="btn btn-primary">Save</button>
|
||||
<a class="btn btn-secondary" href="{% url 'accounts:user_list' %}">Cancel</a>
|
||||
</form>
|
||||
{% endblock %}
|
||||
27
templates/accounts/user_list.html
Normal file
27
templates/accounts/user_list.html
Normal file
@@ -0,0 +1,27 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<div class="d-flex justify-content-between mb-3">
|
||||
<h3>Users</h3>
|
||||
<a class="btn btn-success" href="{% url 'accounts:user_add' %}">Add User</a>
|
||||
</div>
|
||||
<table class="table table-striped">
|
||||
<thead><tr><th>#</th><th>Username</th><th>Email</th><th>Phone</th><th>Role</th><th>Actions</th></tr></thead>
|
||||
<tbody>
|
||||
{% for u in users %}
|
||||
<tr>
|
||||
<td>{{ forloop.counter }}</td>
|
||||
<td>{{ u.username }}</td>
|
||||
<td>{{ u.email }}</td>
|
||||
<td>{{ u.phone_number }}</td>
|
||||
<td>{{ u.role }}</td>
|
||||
<td>
|
||||
<a class="btn btn-sm btn-primary" href="{% url 'accounts:user_edit' u.pk %}">Edit</a>
|
||||
<a class="btn btn-sm btn-danger" href="{% url 'accounts:user_delete' u.pk %}">Delete</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="6">No users yet.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
44
templates/base.html
Normal file
44
templates/base.html
Normal file
@@ -0,0 +1,44 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
||||
<title>Eventify</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="{% url 'dashboard' %}">Eventify</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navmenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navmenu">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||
<li class="nav-item"><a class="nav-link" href="{% url 'dashboard' %}">Dashboard</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="{% url 'master_data:event_type_list' %}">Categories</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="{% url 'events:event_list' %}">Events</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="{% url 'accounts:user_list' %}">Users</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav">
|
||||
{% if user.is_authenticated %}
|
||||
<li class="nav-item"><a class="nav-link" href="#">{{ user.username }}</a></li>
|
||||
<li class="nav-item"><a class="nav-link text-danger" href="{% url 'logout' %}">Logout</a></li>
|
||||
{% else %}
|
||||
<li class="nav-item"><a class="nav-link" href="{% url 'login' %}">Login</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="container mt-4">
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{{ message.tags }}">{{ message }}</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
23
templates/dashboard.html
Normal file
23
templates/dashboard.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<div class="row text-center">
|
||||
<div class="col-md-4">
|
||||
<div class="card p-3 shadow-sm">
|
||||
<h5>Total Events</h5>
|
||||
<h2>{{ total_events }}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card p-3 shadow-sm">
|
||||
<h5>Total Categories</h5>
|
||||
<h2>{{ total_categories }}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card p-3 shadow-sm">
|
||||
<h5>Total Users</h5>
|
||||
<h2>{{ total_users }}</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
7
templates/events/event_confirm_delete.html
Normal file
7
templates/events/event_confirm_delete.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<h3>Delete Event</h3>
|
||||
<p>Are you sure you want to delete <strong>{{ object.name }}</strong>?</p>
|
||||
<form method="post">{% csrf_token %}<button class="btn btn-danger">Yes, delete</button>
|
||||
<a class="btn btn-secondary" href="{% url 'events:event_list' %}">Cancel</a></form>
|
||||
{% endblock %}
|
||||
9
templates/events/event_form.html
Normal file
9
templates/events/event_form.html
Normal file
@@ -0,0 +1,9 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<h3>{% if object %}Edit{% else %}Add{% endif %} Event</h3>
|
||||
<form method="post">{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button class="btn btn-primary">Save</button>
|
||||
<a class="btn btn-secondary" href="{% url 'events:event_list' %}">Cancel</a>
|
||||
</form>
|
||||
{% endblock %}
|
||||
27
templates/events/event_list.html
Normal file
27
templates/events/event_list.html
Normal file
@@ -0,0 +1,27 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<div class="d-flex justify-content-between mb-3">
|
||||
<h3>Events</h3>
|
||||
<a class="btn btn-success" href="{% url 'events:event_add' %}">Add Event</a>
|
||||
</div>
|
||||
<table class="table table-hover">
|
||||
<thead><tr><th>#</th><th>Name</th><th>Type</th><th>Dates</th><th>Place</th><th>Actions</th></tr></thead>
|
||||
<tbody>
|
||||
{% for e in events %}
|
||||
<tr>
|
||||
<td>{{ forloop.counter }}</td>
|
||||
<td>{{ e.name }}</td>
|
||||
<td>{{ e.event_type }}</td>
|
||||
<td>{{ e.start_date }} - {{ e.end_date }}</td>
|
||||
<td>{{ e.place }}</td>
|
||||
<td>
|
||||
<a class="btn btn-sm btn-primary" href="{% url 'events:event_edit' e.pk %}">Edit</a>
|
||||
<a class="btn btn-sm btn-danger" href="{% url 'events:event_delete' e.pk %}">Delete</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="6">No events found.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
7
templates/master_data/event_type_confirm_delete.html
Normal file
7
templates/master_data/event_type_confirm_delete.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<h3>Delete Category</h3>
|
||||
<p>Are you sure you want to delete <strong>{{ object.event_type }}</strong>?</p>
|
||||
<form method="post">{% csrf_token %}<button class="btn btn-danger">Yes, delete</button>
|
||||
<a class="btn btn-secondary" href="{% url 'master_data:event_type_list' %}">Cancel</a></form>
|
||||
{% endblock %}
|
||||
9
templates/master_data/event_type_form.html
Normal file
9
templates/master_data/event_type_form.html
Normal file
@@ -0,0 +1,9 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<h3>{% if object %}Edit{% else %}Add{% endif %} Category</h3>
|
||||
<form method="post">{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<button class="btn btn-primary">Save</button>
|
||||
<a class="btn btn-secondary" href="{% url 'master_data:event_type_list' %}">Cancel</a>
|
||||
</form>
|
||||
{% endblock %}
|
||||
24
templates/master_data/event_type_list.html
Normal file
24
templates/master_data/event_type_list.html
Normal file
@@ -0,0 +1,24 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<div class="d-flex justify-content-between mb-3">
|
||||
<h3>Event Categories</h3>
|
||||
<a class="btn btn-success" href="{% url 'master_data:event_type_add' %}">Add Category</a>
|
||||
</div>
|
||||
<table class="table table-striped">
|
||||
<thead><tr><th>#</th><th>Event Type</th><th>Actions</th></tr></thead>
|
||||
<tbody>
|
||||
{% for c in categories %}
|
||||
<tr>
|
||||
<td>{{ forloop.counter }}</td>
|
||||
<td>{{ c.event_type }}</td>
|
||||
<td>
|
||||
<a class="btn btn-sm btn-primary" href="{% url 'master_data:event_type_edit' c.pk %}">Edit</a>
|
||||
<a class="btn btn-sm btn-danger" href="{% url 'master_data:event_type_delete' c.pk %}">Delete</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="3">No categories yet.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user