Cleanup of html and progress on config page
This commit is contained in:
parent
e3734723a4
commit
95ce4940f2
@ -97,4 +97,10 @@ class LevelScore(ModelWithUpdate):
|
||||
dart_glitch_state = "✏" if self.dart_glitch else "🖋" if self.dart_glitch_ever else ""
|
||||
score_view = f"🎈{self.pops} | 🎯{self.darts_left} {dart_glitch_state}"
|
||||
return (f"{self.player.user.username if self.player else ''}'s "
|
||||
f"{clear_state} @ {self.level}: {score_view}")
|
||||
f"{clear_state} @ {self.level}: {score_view}")
|
||||
|
||||
class Config(ModelWithUpdate):
|
||||
player = models.OneToOneField(Player, on_delete=models.CASCADE, related_name="bloonsa_config")
|
||||
|
||||
# Automatically start ruffle/flash when page loads
|
||||
autoplay = models.BooleanField(default=True)
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
{% load static %}
|
||||
<!DOCTYPE html>
|
||||
<!-- avoids flashbang -->
|
||||
<html lang="en" style="background-color: #20B0FF;"></html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta name="title" content="{% block title %}{% endblock title %}"/>
|
||||
@ -51,7 +53,6 @@
|
||||
</div>
|
||||
<div id="content">
|
||||
{% block content %}{% endblock content %}
|
||||
{% include 'bloonsa_game/modules/levelinfo.html' %}
|
||||
</div>
|
||||
|
||||
<div class="skyscraper rhs">
|
||||
|
||||
@ -41,5 +41,5 @@
|
||||
player.style.height = "480px";
|
||||
});
|
||||
</script>
|
||||
|
||||
{% include 'bloonsa_game/modules/levelinfo.html' %}
|
||||
{% endblock content %}
|
||||
@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _
|
||||
from crispy_forms.helper import FormHelper
|
||||
from crispy_forms.layout import Submit
|
||||
|
||||
from users.models import Player
|
||||
from users.validators import usernameValidator
|
||||
|
||||
class UserRegisterForm(UserCreationForm):
|
||||
@ -70,5 +71,22 @@ class UserLoginForm(AuthenticationForm):
|
||||
"username",
|
||||
]
|
||||
|
||||
class UserConfigForm():
|
||||
...
|
||||
class UserUpdateForm(forms.ModelForm):
|
||||
username = forms.CharField(min_length=3,
|
||||
max_length=16,
|
||||
label="Username",
|
||||
required=False,
|
||||
validators=[usernameValidator, ],
|
||||
help_text=_("3-16 chars, alphanumeric and _- pls"))
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ["username",]
|
||||
|
||||
class PlayerUpdateForm(forms.ModelForm):
|
||||
bio = forms.CharField(max_length=128, required=False)
|
||||
|
||||
|
||||
class Meta:
|
||||
model = Player
|
||||
fields = ["avatar", "bio"]
|
||||
19
app/users/migrations/0025_alter_player_avatar.py
Normal file
19
app/users/migrations/0025_alter_player_avatar.py
Normal file
@ -0,0 +1,19 @@
|
||||
# Generated by Django 5.1.6 on 2025-02-18 16:57
|
||||
|
||||
import django_resized.forms
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0024_player_avatar_player_bio'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='player',
|
||||
name='avatar',
|
||||
field=django_resized.forms.ResizedImageField(crop=None, default='defaults/avatars.jpg', force_format='JPEG', keep_meta=False, quality=75, scale=None, size=[256, 256], upload_to='avatars'),
|
||||
),
|
||||
]
|
||||
@ -8,7 +8,7 @@ class Player(models.Model):
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="player")
|
||||
# Profile
|
||||
bio = models.TextField(max_length=128, null=True)
|
||||
avatar = ResizedImageField(default="default.jpg",
|
||||
avatar = ResizedImageField(default="defaults/avatars.jpg",
|
||||
size=[256, 256],
|
||||
upload_to="avatars",
|
||||
keep_meta=False,
|
||||
|
||||
3
app/users/static/users/css/bulma-1.0.3.css
Normal file
3
app/users/static/users/css/bulma-1.0.3.css
Normal file
File diff suppressed because one or more lines are too long
10
app/users/static/users/css/config.css
Normal file
10
app/users/static/users/css/config.css
Normal file
@ -0,0 +1,10 @@
|
||||
#config-box {
|
||||
background-color: black;
|
||||
width: 640px;
|
||||
height: 480px;
|
||||
}
|
||||
|
||||
#config-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
12
app/users/static/users/css/users.css
Normal file
12
app/users/static/users/css/users.css
Normal file
@ -0,0 +1,12 @@
|
||||
#users-container {
|
||||
width: 640px;
|
||||
height: 480px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#users-box {
|
||||
background-color: #20B0FF;
|
||||
width: 280px;
|
||||
height: 280px;
|
||||
margin: auto;
|
||||
}
|
||||
@ -1,11 +1,25 @@
|
||||
{% extends "bloonsa_game/base.html" %}
|
||||
{% load crispy_forms_tags %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}
|
||||
My Profile
|
||||
{% endblock title %}
|
||||
|
||||
{% block head %}
|
||||
<link rel="stylesheet" href="{% static 'users/css/bulma-1.0.3.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'users/css/config.css' %}">
|
||||
{% endblock head %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Profile settings</h1>
|
||||
{% crispy form %}
|
||||
<form method="post" id="config-box">
|
||||
<div id="config-profile-box">
|
||||
<div id="profile-settings-text">Profile settings</div>
|
||||
{% csrf_token %}
|
||||
{% crispy form_player %}
|
||||
{% crispy form_user %}
|
||||
<button type="submit" class="btn btn-primary">Save changes</button>
|
||||
</div>
|
||||
<div id="config-bloonsa-box">a</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@ -1,11 +1,20 @@
|
||||
{% extends "bloonsa_game/base.html" %}
|
||||
{% load crispy_forms_tags %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}
|
||||
Login
|
||||
{% endblock title %}
|
||||
|
||||
{% block head %}
|
||||
<link rel="stylesheet" href="{% static 'users/css/users.css' %}">
|
||||
{% endblock head %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Login!</h1>
|
||||
{% crispy form %}
|
||||
<div id="users-container">
|
||||
<div id="users-box">
|
||||
<h1>Login!</h1>
|
||||
{% crispy form %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@ -1,11 +1,20 @@
|
||||
{% extends "bloonsa_game/base.html" %}
|
||||
{% load crispy_forms_tags %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}
|
||||
Register
|
||||
{% endblock title %}
|
||||
|
||||
{% block head %}
|
||||
<link rel="stylesheet" href="{% static 'users/css/users.css' %}">
|
||||
{% endblock head %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Register!</h1>
|
||||
{% crispy form %}
|
||||
<div id="users-container">
|
||||
<div id="users-box">
|
||||
<h1>Register!</h1>
|
||||
{% crispy form %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@ -3,7 +3,7 @@ from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
|
||||
from django.shortcuts import render, redirect
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
from users.forms import UserRegisterForm, UserLoginForm, UserConfigForm
|
||||
from users.forms import UserRegisterForm, UserLoginForm, PlayerUpdateForm, UserUpdateForm
|
||||
from users.models import Player
|
||||
from users.util import bloonsa_util, actions
|
||||
|
||||
@ -56,21 +56,33 @@ class LogoutView(TemplateView):
|
||||
class ConfigView(TemplateView):
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
form = UserConfigForm()
|
||||
form_player = PlayerUpdateForm()
|
||||
form_user = UserUpdateForm()
|
||||
return render(request=request,
|
||||
template_name="users/config.html",
|
||||
context={"form": form})
|
||||
context={"form_player": form_player,
|
||||
"form_user": form_user})
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
form = UserConfigForm(request.POST)
|
||||
if not form.is_valid():
|
||||
form_player = PlayerUpdateForm(request.POST)
|
||||
form_user = UserUpdateForm(request.POST)
|
||||
if any((
|
||||
not form_player.is_valid(),
|
||||
not form_user.is_valid()
|
||||
)):
|
||||
return render(request=request,
|
||||
template_name="users/config.html",
|
||||
context={"form": form})
|
||||
user = form.save()
|
||||
login(request=request, user=user)
|
||||
context={
|
||||
"form_player": form_player,
|
||||
"form_user": form_user
|
||||
})
|
||||
user = form_user.save()
|
||||
player = form_player.save()
|
||||
#bloonsa_util.log(player=player,
|
||||
# action=actions.login)
|
||||
return render(request=request,
|
||||
template_name="users/config.html",
|
||||
context={"form": form})
|
||||
context={
|
||||
"form_player": form_player,
|
||||
"form_user": form_user
|
||||
})
|
||||
Loading…
Reference in New Issue
Block a user