Start of removing bulma.css, it interferes with vanilla tags like "span" or "div"
This commit is contained in:
parent
88987dde10
commit
e8f244d279
26
app/bloonsa_game/migrations/0024_config.py
Normal file
26
app/bloonsa_game/migrations/0024_config.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Generated by Django 5.1.6 on 2025-02-18 19:52
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('bloonsa_game', '0023_levelscore_dart_glitch_ever'),
|
||||||
|
('users', '0025_alter_player_avatar'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Config',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('autoplay', models.BooleanField(default=True)),
|
||||||
|
('player', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='bloonsa_config', to='users.player')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -67,4 +67,30 @@
|
|||||||
|
|
||||||
#level_info_row1 #level_info_row2 {
|
#level_info_row1 #level_info_row2 {
|
||||||
display: block;
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-red {
|
||||||
|
filter: invert(61%) sepia(72%) saturate(7291%) hue-rotate(338deg) brightness(108%) contrast(101%);
|
||||||
|
}
|
||||||
|
.filter-grey {
|
||||||
|
filter: invert(17%) sepia(2%) saturate(72%) hue-rotate(66deg) brightness(94%) contrast(89%);
|
||||||
|
}
|
||||||
|
.filter-black {
|
||||||
|
filter: invert(0%) sepia(96%) saturate(15%) hue-rotate(246deg) brightness(105%) contrast(105%);
|
||||||
|
}
|
||||||
|
.filter-softblue {
|
||||||
|
filter: invert(53%) sepia(93%) saturate(488%) hue-rotate(182deg) brightness(103%) contrast(103%);
|
||||||
|
}
|
||||||
|
.filter-orange {
|
||||||
|
filter: invert(75%) sepia(23%) saturate(6404%) hue-rotate(355deg) brightness(98%) contrast(107%) !important;
|
||||||
|
}
|
||||||
|
.filter-purple {
|
||||||
|
filter: invert(14%) sepia(92%) saturate(7496%) hue-rotate(299deg) brightness(91%) contrast(106%); !important;
|
||||||
|
}
|
||||||
|
.filter-pink {
|
||||||
|
filter: invert(65%) sepia(38%) saturate(4716%) hue-rotate(268deg) brightness(102%) contrast(102%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.invisible {
|
||||||
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
@ -86,28 +86,3 @@
|
|||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-red {
|
|
||||||
filter: invert(61%) sepia(72%) saturate(7291%) hue-rotate(338deg) brightness(108%) contrast(101%);
|
|
||||||
}
|
|
||||||
.filter-grey {
|
|
||||||
filter: invert(17%) sepia(2%) saturate(72%) hue-rotate(66deg) brightness(94%) contrast(89%);
|
|
||||||
}
|
|
||||||
.filter-black {
|
|
||||||
filter: invert(0%) sepia(96%) saturate(15%) hue-rotate(246deg) brightness(105%) contrast(105%);
|
|
||||||
}
|
|
||||||
.filter-softblue {
|
|
||||||
filter: invert(53%) sepia(93%) saturate(488%) hue-rotate(182deg) brightness(103%) contrast(103%);
|
|
||||||
}
|
|
||||||
.filter-orange {
|
|
||||||
filter: invert(75%) sepia(23%) saturate(6404%) hue-rotate(355deg) brightness(98%) contrast(107%) !important;
|
|
||||||
}
|
|
||||||
.filter-purple {
|
|
||||||
filter: invert(14%) sepia(92%) saturate(7496%) hue-rotate(299deg) brightness(91%) contrast(106%); !important;
|
|
||||||
}
|
|
||||||
.filter-pink {
|
|
||||||
filter: invert(65%) sepia(38%) saturate(4716%) hue-rotate(268deg) brightness(102%) contrast(102%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.invisible {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<!-- avoids flashbang -->
|
<!-- avoids flashbang -->
|
||||||
<html lang="en" style="background-color: #20B0FF;"></html>
|
<html lang="en" style="background-color: #20B0FF;">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||||
<meta name="title" content="{% block title %}{% endblock title %}"/>
|
<meta name="title" content="{% block title %}{% endblock title %}"/>
|
||||||
@ -78,7 +78,7 @@
|
|||||||
</div>
|
</div>
|
||||||
-->
|
-->
|
||||||
<div class="ad ad_90x720">
|
<div class="ad ad_90x720">
|
||||||
<div id="adslot3"></div>
|
<div id="adslot3"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -90,16 +90,17 @@
|
|||||||
//--></script>
|
//--></script>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="adholder2">
|
<div id="adholder2"></div>
|
||||||
<div id="adholder3">
|
<div id="adholder3">
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
e9 = new Object();
|
e9 = new Object();
|
||||||
e9.size = "160x600";
|
e9.size = "160x600";
|
||||||
//--></script>
|
//--></script></div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
document.getElementById('adslot1').appendChild(document.getElementById('adholder1'));
|
document.getElementById('adslot1').appendChild(document.getElementById('adholder1'));
|
||||||
document.getElementById('adslot2').appendChild(document.getElementById('adholder3'));
|
document.getElementById('adslot2').appendChild(document.getElementById('adholder3'));
|
||||||
document.getElementById('adslot3').appendChild(document.getElementById('adholder2'));
|
document.getElementById('adslot3').appendChild(document.getElementById('adholder2'));
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
</html>
|
||||||
@ -1,5 +1,5 @@
|
|||||||
{% load bloonsa_game_tags %}
|
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% load bloonsa_game_tags %}
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" media="screen" href="{% static 'bloonsa_game/css/profilebox.css' %}"/>
|
<link rel="stylesheet" type="text/css" media="screen" href="{% static 'bloonsa_game/css/profilebox.css' %}"/>
|
||||||
|
|
||||||
@ -17,7 +17,7 @@
|
|||||||
type="image/svg+xml"></object>
|
type="image/svg+xml"></object>
|
||||||
<span id="profile-plays-number">{{ user.player.bloonsa_levels_played_count }}</span>
|
<span id="profile-plays-number">{{ user.player.bloonsa_levels_played_count }}</span>
|
||||||
<span id="profile-plays-separator"> / </span>
|
<span id="profile-plays-separator"> / </span>
|
||||||
<span id="profile-plays-max">{{ total_levels }}</span>
|
<span id="profile-plays-max">{% bloonsa_total_levels %}</span>
|
||||||
</div>
|
</div>
|
||||||
<div id="profile-clears">
|
<div id="profile-clears">
|
||||||
<object data="{% static 'bloonsa_game/img/levelinfo/wins.svg' %}"
|
<object data="{% static 'bloonsa_game/img/levelinfo/wins.svg' %}"
|
||||||
@ -26,12 +26,14 @@
|
|||||||
type="image/svg+xml"></object>
|
type="image/svg+xml"></object>
|
||||||
<span id="profile-clears-number">{{ user.player.bloonsa_levels_beaten_count }}</span>
|
<span id="profile-clears-number">{{ user.player.bloonsa_levels_beaten_count }}</span>
|
||||||
<span id="profile-clears-separator"> / </span>
|
<span id="profile-clears-separator"> / </span>
|
||||||
<span id="profile-clears-max">{{ total_levels }}</span>
|
<span id="profile-clears-max">{% bloonsa_total_levels %}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="profile-buttons">
|
<div id="profile-buttons">
|
||||||
<button id="profile-settings-button">settings</button>
|
<a href="/users/config">
|
||||||
|
<button id="profile-settings-button">settings</button>
|
||||||
|
</a>
|
||||||
<a href="/users/logout">
|
<a href="/users/logout">
|
||||||
<button id="profile-logout-button">logout</button>
|
<button id="profile-logout-button">logout</button>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,9 +1,14 @@
|
|||||||
from django import template
|
from django import template
|
||||||
|
|
||||||
|
from bloonsa_game.models import Level
|
||||||
from users.models import Player
|
from users.models import Player
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
def dummy(text):
|
def dummy(text):
|
||||||
return f"dummy {text}"
|
return f"dummy {text}"
|
||||||
|
|
||||||
|
@register.simple_tag(name="bloonsa_total_levels")
|
||||||
|
def total_levels():
|
||||||
|
return int(Level.objects.count())
|
||||||
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
|||||||
#config-box {
|
#config-box {
|
||||||
background-color: black;
|
background-color: black;
|
||||||
width: 640px;
|
width: 640px;
|
||||||
height: 480px;
|
height: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#config-box {
|
#config-box {
|
||||||
|
|||||||
@ -21,4 +21,4 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="config-bloonsa-box"></div>
|
<div id="config-bloonsa-box"></div>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock content %}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
from django.contrib.auth import login, logout
|
from django.contrib.auth import login, logout
|
||||||
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
|
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
|
||||||
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import render, redirect
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
|
|
||||||
@ -53,16 +54,17 @@ class LogoutView(TemplateView):
|
|||||||
return redirect("bloonsa_game:game")
|
return redirect("bloonsa_game:game")
|
||||||
|
|
||||||
|
|
||||||
class ConfigView(TemplateView):
|
class ConfigView(LoginRequiredMixin, TemplateView):
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
form_player = PlayerUpdateForm()
|
form_player = PlayerUpdateForm(instance=request.user.player)
|
||||||
form_user = UserUpdateForm()
|
form_user = UserUpdateForm(instance=request.user)
|
||||||
return render(request=request,
|
return render(request=request,
|
||||||
template_name="users/config.html",
|
template_name="users/config.html",
|
||||||
context={"form_player": form_player,
|
context={"form_player": form_player,
|
||||||
"form_user": form_user})
|
"form_user": form_user})
|
||||||
|
|
||||||
|
# TODO add log
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
form_player = PlayerUpdateForm(request.POST)
|
form_player = PlayerUpdateForm(request.POST)
|
||||||
form_user = UserUpdateForm(request.POST)
|
form_user = UserUpdateForm(request.POST)
|
||||||
@ -78,8 +80,6 @@ class ConfigView(TemplateView):
|
|||||||
})
|
})
|
||||||
user = form_user.save()
|
user = form_user.save()
|
||||||
player = form_player.save()
|
player = form_player.save()
|
||||||
#bloonsa_util.log(player=player,
|
|
||||||
# action=actions.login)
|
|
||||||
return render(request=request,
|
return render(request=request,
|
||||||
template_name="users/config.html",
|
template_name="users/config.html",
|
||||||
context={
|
context={
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user