mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 19:26:48 +00:00
A theme change compiled Bootswatch with libsass (34 MB, upstream deprecated) into two tracked files, which updates, rollbacks and new Docker containers then reset. The 27 themes now ship as static/css/themes/<theme>.min.css, built by "manage.py build_themes"; the Settings page only saves the theme name and every page links that file (zephyr when no settings are in context, as on the 500 page). libsass moves to dev/requirements.txt; a test checks that each shipped file is its theme compiled from dev/scss. The "Theme SASS Path" setting is removed, and the theme default "flaty", a typo that never applied, becomes zephyr, the theme those installs showed. The update and rollback steps restore an older version's rewritten theme files only where they are modified.
65 lines
3.4 KiB
HTML
65 lines
3.4 KiB
HTML
{% extends "base.html" %}
|
|
{% load i18n %}
|
|
|
|
{% block title %}{% trans "Edit Settings" %}{% endblock title %}
|
|
|
|
{% block page_heading %}{% trans "Edit Settings" %}{% endblock page_heading %}
|
|
|
|
{% block content %}
|
|
<div class="">
|
|
<div class="col-lg-12">
|
|
<h3 class="page-header">{% trans "App Settings" %}</h3>
|
|
<form action="{% url 'set_language' %}" method="post" style="display:inline" aria-label="Edit language.name_local settings form">{% csrf_token %}
|
|
<div class="row mb-1">
|
|
<input name="next" type="hidden" value="{{ redirect_to }}">
|
|
<label class="col-sm-3 col-form-label">{% trans "Language" %}</label>
|
|
<div class="col-sm-6">
|
|
<select name="language" class="form-control" onchange="this.form.submit()">
|
|
{% get_current_language as LANGUAGE_CODE %}
|
|
{% get_available_languages as LANGUAGES %}
|
|
{% get_language_info_list for LANGUAGES as languages %}
|
|
{% for language in languages %}
|
|
<option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected{% endif %}>
|
|
{{ language.name_local }} ({{ language.code }})
|
|
</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
{% if request.user.is_superuser %}
|
|
<form method="post" action="" role="form" aria-label="Edit theme settings form">{% csrf_token %}
|
|
<div class="row mb-1">
|
|
<label class="col-sm-3 col-form-label">{% trans bootstrap_theme.name %}</label>
|
|
<div class="col-sm-6">
|
|
<select class="form-select" name="{{ bootstrap_theme.key }}" onchange="this.form.submit()" title="{% trans bootstrap_theme.description %}">
|
|
{% for theme in themes_list %}
|
|
<option {% if bootstrap_theme.value == theme %}selected{% endif %} value="{{ theme }}">{{ theme }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
{% endif %}
|
|
<h3 class="page-header">{% trans "Other Settings" %}</h3>
|
|
{% for setting in appsettings %}
|
|
<form method="post" action="" role="form" aria-label="{{setting.name}} form">{% csrf_token %}
|
|
<div class="row mb-1">
|
|
<label class="col-sm-3 col-form-label">{% trans setting.name %}</label>
|
|
<div class="col-sm-6">
|
|
{% if setting.choices %}
|
|
<select class="form-select" name="{{ setting.key }}" onchange="this.form.submit()" title="{% trans setting.description %}">
|
|
{% for choice in setting.choices_as_list %}
|
|
<option {% if setting.value == choice %} selected {% endif %} value={{ choice }}>{% trans choice %}</option>
|
|
{% endfor %}
|
|
</select>
|
|
{% else %}
|
|
<input class="form-control" name="{{ setting.key }}" value="{{ setting.value }}" title="{% trans setting.description %}" onchange="this.form.submit()"/>
|
|
{% endif%}
|
|
</div>
|
|
</div>
|
|
</form>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|