mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	Refactor "theme" selection
This commit is contained in:
		| @@ -82,9 +82,9 @@ settings_urls = [ | ||||
|     url(r'^i18n/?', include('django.conf.urls.i18n')), | ||||
|      | ||||
|     url(r'^appearance/?', AppearanceSelectView.as_view(), name='settings-appearance'), | ||||
|     url(r'^currencies-refresh/', CurrencyRefreshView.as_view(), name='settings-currencies-refresh'), | ||||
|  | ||||
|     url(r'^category/', SettingCategorySelectView.as_view(), name='settings-category'), | ||||
|     url(r'^currencies-refresh/', CurrencyRefreshView.as_view(), name='settings-currencies-refresh'), | ||||
|  | ||||
|     url(r'^(?P<pk>\d+)/edit/user', UserSettingEdit.as_view(), name='user-setting-edit'), | ||||
|     url(r'^(?P<pk>\d+)/edit/', SettingEdit.as_view(), name='setting-edit'), | ||||
|   | ||||
| @@ -821,13 +821,9 @@ class CurrencyRefreshView(RedirectView): | ||||
|         return redirect(reverse_lazy('settings')) | ||||
|  | ||||
|  | ||||
| class AppearanceSelectView(FormView): | ||||
| class AppearanceSelectView(RedirectView): | ||||
|     """ View for selecting a color theme """ | ||||
|  | ||||
|     form_class = ColorThemeSelectForm | ||||
|     success_url = reverse_lazy('settings-appearance') | ||||
|     template_name = "InvenTree/settings/appearance.html" | ||||
|  | ||||
|     def get_user_theme(self): | ||||
|         """ Get current user color theme """ | ||||
|         try: | ||||
| @@ -837,40 +833,10 @@ class AppearanceSelectView(FormView): | ||||
|  | ||||
|         return user_theme | ||||
|  | ||||
|     def get_initial(self): | ||||
|         """ Select current user color theme as initial choice """ | ||||
|  | ||||
|         initial = super(AppearanceSelectView, self).get_initial() | ||||
|  | ||||
|         user_theme = self.get_user_theme() | ||||
|         if user_theme: | ||||
|             initial['name'] = user_theme.name | ||||
|         return initial | ||||
|  | ||||
|     def get(self, request, *args, **kwargs): | ||||
|         """ Check if current color theme exists, else display alert box """ | ||||
|  | ||||
|         context = {} | ||||
|  | ||||
|         form = self.get_form() | ||||
|         context['form'] = form | ||||
|  | ||||
|         user_theme = self.get_user_theme() | ||||
|         if user_theme: | ||||
|             # Check color theme is a valid choice | ||||
|             if not ColorTheme.is_valid_choice(user_theme): | ||||
|                 user_color_theme_name = user_theme.name | ||||
|                 if not user_color_theme_name: | ||||
|                     user_color_theme_name = 'default' | ||||
|  | ||||
|                 context['invalid_color_theme'] = user_color_theme_name | ||||
|  | ||||
|         return self.render_to_response(context) | ||||
|  | ||||
|     def post(self, request, *args, **kwargs): | ||||
|         """ Save user color theme selection """ | ||||
|  | ||||
|         form = self.get_form() | ||||
|         theme = request.POST.get('theme', None) | ||||
|  | ||||
|         # Get current user theme | ||||
|         user_theme = self.get_user_theme() | ||||
| @@ -880,20 +846,10 @@ class AppearanceSelectView(FormView): | ||||
|             user_theme = ColorTheme() | ||||
|             user_theme.user = request.user | ||||
|  | ||||
|         if form.is_valid(): | ||||
|             theme_selected = form.cleaned_data['name'] | ||||
|         user_theme.name = theme | ||||
|         user_theme.save() | ||||
|  | ||||
|             # Set color theme to form selection | ||||
|             user_theme.name = theme_selected | ||||
|             user_theme.save() | ||||
|  | ||||
|             return self.form_valid(form) | ||||
|         else: | ||||
|             # Set color theme to default | ||||
|             user_theme.name = ColorTheme.default_color_theme[0] | ||||
|             user_theme.save() | ||||
|  | ||||
|             return self.form_invalid(form) | ||||
|         return redirect(reverse_lazy('settings')) | ||||
|  | ||||
|  | ||||
| class SettingCategorySelectView(FormView): | ||||
|   | ||||
| @@ -232,10 +232,15 @@ def get_available_themes(*args, **kwargs): | ||||
|     Return the available theme choices | ||||
|     """ | ||||
|  | ||||
|     print("available:") | ||||
|     print(ColorTheme.get_color_themes_choices()) | ||||
|     themes = [] | ||||
|  | ||||
|     return ColorTheme.get_color_themes_choices() | ||||
|     for key, name in ColorTheme.get_color_themes_choices(): | ||||
|         themes.append({ | ||||
|             'key': key, | ||||
|             'name': name | ||||
|         }) | ||||
|  | ||||
|     return themes | ||||
|  | ||||
|  | ||||
| @register.filter | ||||
|   | ||||
| @@ -1,64 +0,0 @@ | ||||
| {% extends "panel.html" %} | ||||
|  | ||||
| {% load i18n %} | ||||
|  | ||||
| {% block label %}appearance{% endblock %} | ||||
|  | ||||
| {% block heading %} | ||||
| {% trans "Appearance" %} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block content %} | ||||
|  | ||||
| <div class='row'> | ||||
|     <div class='col-sm-6'> | ||||
|         <h4>{% trans "Color Themes" %}</h4> | ||||
|     </div> | ||||
| </div> | ||||
|  | ||||
| <form action="{% url 'settings-appearance' %}" method="post"> | ||||
|     {% csrf_token %} | ||||
|     {% load crispy_forms_tags %} | ||||
|     {% crispy form %} | ||||
| </form> | ||||
|  | ||||
| {% if invalid_color_theme %} | ||||
|     <div class="alert alert-danger alert-block" role="alert" style="display: inline-block;"> | ||||
|     {% blocktrans %} | ||||
|         The CSS sheet "{{invalid_color_theme}}.css" for the currently selected color theme was not found.<br> | ||||
|         Please select another color theme :) | ||||
|     {% endblocktrans %} | ||||
|     </div> | ||||
| {% endif %} | ||||
|  | ||||
| <div class='row'> | ||||
|     <div class='col-sm-6'> | ||||
|         <h4>{% trans "Language" %}</h4> | ||||
|     </div> | ||||
| </div> | ||||
|  | ||||
| <div class='panel-heading'> | ||||
|     <h4>{% trans "Language Settings" %}</h4> | ||||
| </div> | ||||
|  | ||||
| <div class="row"> | ||||
|     <form action="{% url 'set_language' %}" method="post">{% csrf_token %} | ||||
|         <input name="next" type="hidden" value="{% url 'settings-appearance' %}"> | ||||
|         <div class="col-sm-6" style="width: 200px;"><div id="div_id_name" class="form-group"><div class="controls "> | ||||
|             <select name="language" class="select form-control"> | ||||
|                 {% 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></div> | ||||
|         <div class="col-sm-6" style="width: auto;"> | ||||
|             <input type="submit" value="{% trans 'Set Language' %}" class="btn btn btn-primary"> | ||||
|         </div> | ||||
|     </form> | ||||
| </div> | ||||
| {% endblock %} | ||||
| @@ -44,14 +44,24 @@ | ||||
|  | ||||
| <div class='row'> | ||||
|  | ||||
|     <form action='' method='post'> | ||||
|     <form action='{% url "settings-appearance" %}' method='post'> | ||||
|         {% csrf_token %} | ||||
|         <input name='next' type='hidden' value='{% url "settings" %}'> | ||||
|         <select name='theme' class='select form-control'> | ||||
|             {% for theme in get_available_themes %} | ||||
|             {{ theme }} | ||||
|             {% endfor %} | ||||
|         </select> | ||||
|         <div class="col-sm-6" style="width: 200px;"> | ||||
|             <div id="div_id_themes" class="form-group"> | ||||
|                 <div class="controls "> | ||||
|                     <select name='theme' class='select form-control'> | ||||
|                         {% get_available_themes as themes %} | ||||
|                         {% for theme in themes %} | ||||
|                         <option value='{{ theme.key }}'>{{ theme.name }}</option> | ||||
|                         {% endfor %} | ||||
|                     </select> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div class="col-sm-6" style="width: auto;"> | ||||
|             <input type="submit" value="{% trans 'Set Theme' %}" class="btn btn btn-primary"> | ||||
|         </div> | ||||
|     </form> | ||||
|  | ||||
| </div> | ||||
| @@ -64,7 +74,7 @@ | ||||
|     <form action="{% url 'set_language' %}" method="post"> | ||||
|         {% csrf_token %} | ||||
|         <input name="next" type="hidden" value="{% url 'settings' %}"> | ||||
|         <div class="col-sm-6" style="width: 200px;"><div id="div_id_name" class="form-group"><div class="controls "> | ||||
|         <div class="col-sm-6" style="width: 200px;"><div id="div_id_language" class="form-group"><div class="controls "> | ||||
|             <select name="language" class="select form-control"> | ||||
|                 {% get_current_language as LANGUAGE_CODE %} | ||||
|                 {% get_available_languages as LANGUAGES %} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user