diff --git a/combo/apps/pwa/manager_views.py b/combo/apps/pwa/manager_views.py index 9b0d1161..8ea68829 100644 --- a/combo/apps/pwa/manager_views.py +++ b/combo/apps/pwa/manager_views.py @@ -32,6 +32,16 @@ class ManagerHomeView(UpdateView): fields = '__all__' success_url = reverse_lazy('pwa-manager-homepage') + def get_initial(self): + initial = super(ManagerHomeView, self).get_initial() + initial['application_name'] = self.get_object().get_application_name() + return initial + + def form_valid(self, form): + if form.instance.application_name == PwaSettings.get_default_application_name(): + form.instance.application_name = '' + return super(ManagerHomeView, self).form_valid(form) + def get_object(self): return PwaSettings.singleton() diff --git a/combo/apps/pwa/migrations/0005_pwasettings_application_name.py b/combo/apps/pwa/migrations/0005_pwasettings_application_name.py new file mode 100644 index 00000000..db848619 --- /dev/null +++ b/combo/apps/pwa/migrations/0005_pwasettings_application_name.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-04-16 14:08 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pwa', '0004_pwasettings_application_icon'), + ] + + operations = [ + migrations.AddField( + model_name='pwasettings', + name='application_name', + field=models.CharField(blank=True, max_length=64, verbose_name='Application Name'), + ), + ] diff --git a/combo/apps/pwa/models.py b/combo/apps/pwa/models.py index 47070827..355291a1 100644 --- a/combo/apps/pwa/models.py +++ b/combo/apps/pwa/models.py @@ -36,6 +36,10 @@ from combo import utils class PwaSettings(models.Model): APPLICATION_ICON_SIZES = ['%sx%s' % (x, x) for x in (48, 96, 192, 256, 512)] + application_name = models.CharField( + verbose_name=_('Application Name'), + max_length=64, + blank=True) application_icon = models.FileField( verbose_name=_('Application Icon'), help_text=_(u'Should be a square of at least 512×512 pixels.'), @@ -71,6 +75,13 @@ class PwaSettings(models.Model): setattr(obj, attr, json_settings[attr]) obj.save() + @classmethod + def get_default_application_name(cls): + return settings.TEMPLATE_VARS.get('global_title') or 'Compte Citoyen' + + def get_application_name(self): + return self.application_name or self.get_default_application_name() + class PwaNavigationEntry(models.Model): label = models.CharField(verbose_name=_('Label'), max_length=150, blank=True) diff --git a/combo/apps/pwa/templates/combo/manifest.json b/combo/apps/pwa/templates/combo/manifest.json index bbb71d3d..c6aae0ca 100644 --- a/combo/apps/pwa/templates/combo/manifest.json +++ b/combo/apps/pwa/templates/combo/manifest.json @@ -1,6 +1,6 @@ {% load static thumbnail %}{ - "name": "{% firstof global_title "Compte Citoyen" %}", - "short_name": "{% firstof global_title "Compte Citoyen" %}", + "name": "{{ pwa_settings.get_application_name }}", + "short_name": "{{ pwa_settings.get_application_name }}", "start_url": "{% firstof pwa_start_url "/" %}", {% if theme_color %} "background_color": "{{ theme_color }}", diff --git a/combo/apps/pwa/templates/combo/pwa/manager_home.html b/combo/apps/pwa/templates/combo/pwa/manager_home.html index d9d2d1cb..507e1329 100644 --- a/combo/apps/pwa/templates/combo/pwa/manager_home.html +++ b/combo/apps/pwa/templates/combo/pwa/manager_home.html @@ -15,7 +15,7 @@ {% endthumbnail %} {% endif %} -