working FileIndex and user Profile pages/settings

This commit is contained in:
2026-08-03 14:13:40 -05:00
parent 85e6241ad4
commit 39e31d3980
17 changed files with 999 additions and 25 deletions
+86
View File
@@ -0,0 +1,86 @@
{% extends 'base.html' %}
{% load static %}
{% block title %}Account Settings - Packs{% endblock %}
{% block content %}
<h1>Account Settings</h1>
<p><a href="{% url 'profiles:settings' %}"><i class="fas fa-key"></i> Manage API tokens</a></p>
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
<div class="account-grid">
<section class="card account-card">
<h2><i class="fas fa-user"></i> Username</h2>
<p class="account-current">Current: <strong>{{ request.user.username }}</strong></p>
<form method="post" action="{% url 'profiles:account' %}">
{% csrf_token %}
<input type="hidden" name="action" value="username">
<div class="form-group">
{{ username_form.username.errors }}
<label for="{{ username_form.username.id_for_label }}">New username</label>
{{ username_form.username }}
</div>
<button type="submit" class="btn btn-primary">Change username</button>
</form>
</section>
<section class="card account-card">
<h2><i class="fas fa-envelope"></i> Email</h2>
<p class="account-current">Current: <strong>{{ request.user.email|default:"none" }}</strong></p>
<form method="post" action="{% url 'profiles:account' %}">
{% csrf_token %}
<input type="hidden" name="action" value="email">
<div class="form-group">
{{ email_form.email.errors }}
<label for="{{ email_form.email.id_for_label }}">Email (optional — leave empty to clear)</label>
{{ email_form.email }}
</div>
<button type="submit" class="btn btn-primary">Update email</button>
</form>
</section>
<section class="card account-card">
<h2><i class="fas fa-lock"></i> Password</h2>
<form method="post" action="{% url 'profiles:account' %}">
{% csrf_token %}
<input type="hidden" name="action" value="password">
{% for field in password_form %}
<div class="form-group">
{{ field.errors }}
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
{{ field }}
</div>
{% endfor %}
<button type="submit" class="btn btn-primary">Change password</button>
</form>
</section>
<section class="card account-card">
<h2><i class="fas fa-image"></i> Profile picture</h2>
<div class="avatar-preview">
{% if request.user.userprofile.avatar %}
<img src="{{ request.user.userprofile.avatar_url }}" alt="Current avatar">
{% else %}
<div class="default-avatar large">{{ request.user.username|first|upper }}</div>
{% endif %}
</div>
<form method="post" action="{% url 'profiles:account' %}" enctype="multipart/form-data">
{% csrf_token %}
<input type="hidden" name="action" value="avatar">
<div class="form-group">
{{ avatar_form.avatar.errors }}
<label for="{{ avatar_form.avatar.id_for_label }}">{{ avatar_form.avatar.label }}</label>
{{ avatar_form.avatar }}
</div>
<button type="submit" class="btn btn-primary">Upload picture</button>
</form>
</section>
</div>
{% endblock %}