The new updates of partners and user

Made-with: Cursor
This commit is contained in:
Vivek P Prakash
2026-03-15 00:29:17 +05:30
parent 88b3aafb0b
commit c04395afc9
65 changed files with 5242 additions and 341 deletions

View File

@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<title>Eventify Partner Portal</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 'accounts:partner_dashboard' %}">Eventify Partner Portal</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 'accounts:partner_dashboard' %}">Dashboard</a>
</li>
{% if user.role == "partner" or user.role == "partner_manager" %}
<li class="nav-item">
<a class="nav-link" href="{% url 'accounts:partner_user_list' %}">Users</a>
</li>
{% endif %}
</ul>
<ul class="navbar-nav">
{% if user.is_authenticated %}
<li class="nav-item"><a class="nav-link" href="#">
{% if user.first_name and user.last_name %}
{{ user.first_name }} {{ user.last_name }}
{% elif user.username %}
{{ user.username }}
{% else %}
{{ user.email }}
{% endif %}
</a></li>
<li class="nav-item"><a class="nav-link text-danger" href="{% url 'accounts:partner_logout' %}">Logout</a></li>
{% else %}
<li class="nav-item"><a class="nav-link" href="{% url 'accounts:partner_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>

View File

@@ -0,0 +1,12 @@
{% extends 'partner/base.html' %}
{% block content %}
<div class="row text-center">
<div class="col-md-4">
<div class="card p-3 shadow-sm">
<h5>Total Partner Users</h5>
<h2>{{ total_partner_users }}</h2>
</div>
</div>
<!-- Add more partner-specific statistics here -->
</div>
{% endblock %}

View File

@@ -0,0 +1,56 @@
{% load static %}
<!DOCTYPE html>
<html>
<head>
<title>Partner Login</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
rel="stylesheet">
</head>
<body class="bg-light">
<div class="container d-flex justify-content-center mt-5">
<div class="col-md-4">
<div class="card shadow-sm p-4">
<h2 class="text-center mb-3">Eventify Partner Portal</h2>
<h4 class="text-center mb-3">Login</h4>
{% if messages %}
{% for message in messages %}
<div class="alert alert-danger py-2">{{ message }}</div>
{% endfor %}
{% endif %}
<form method="post" novalidate>
{% csrf_token %}
<div class="mb-3">
{{ form.username.label_tag }}
{{ form.username }}
{% for error in form.username.errors %}
<small class="text-danger">{{ error }}</small>
{% endfor %}
</div>
<div class="mb-3">
{{ form.password.label_tag }}
{{ form.password }}
{% for error in form.password.errors %}
<small class="text-danger">{{ error }}</small>
{% endfor %}
</div>
<button class="btn btn-primary w-100">Login</button>
</form>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,7 @@
{% extends 'partner/base.html' %}
{% block content %}
<h3>Delete Partner 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:partner_user_list' %}">Cancel</a></form>
{% endblock %}

View File

@@ -0,0 +1,26 @@
{% extends 'partner/base.html' %}
{% block content %}
<div class="container mt-4">
<h3>{% if object %}Edit{% else %}Add{% endif %} Partner User</h3>
<form method="post" novalidate>
{% csrf_token %}
{% for field in form %}
<div class="mb-3">
{{ field.label_tag }}
{{ field }}
{% if field.help_text %}
<small class="form-text text-muted">{{ field.help_text }}</small>
{% endif %}
{% for error in field.errors %}
<div class="text-danger">{{ error }}</div>
{% endfor %}
</div>
{% endfor %}
<button class="btn btn-primary">Save</button>
<a class="btn btn-secondary" href="{% url 'accounts:partner_user_list' %}">Cancel</a>
</form>
</div>
{% endblock %}

View File

@@ -0,0 +1,27 @@
{% extends 'partner/base.html' %}
{% block content %}
<div class="d-flex justify-content-between mb-3">
<h3>Partner Users</h3>
<a class="btn btn-success" href="{% url 'accounts:partner_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.get_role_display }}</td>
<td>
<a class="btn btn-sm btn-primary" href="{% url 'accounts:partner_user_edit' u.pk %}">Edit</a>
<a class="btn btn-sm btn-danger" href="{% url 'accounts:partner_user_delete' u.pk %}">Delete</a>
</td>
</tr>
{% empty %}
<tr><td colspan="6">No users yet.</td></tr>
{% endfor %}
</tbody>
</table>
{% endblock %}