diff options
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/context_processors.py | 8 | ||||
-rw-r--r-- | ishtar_common/migrations/0075_auto_20181108_1908.py | 25 | ||||
-rw-r--r-- | ishtar_common/models.py | 3 | ||||
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 32 | ||||
-rw-r--r-- | ishtar_common/templates/base.html | 8 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 18 |
6 files changed, 70 insertions, 24 deletions
diff --git a/ishtar_common/context_processors.py b/ishtar_common/context_processors.py index 8c965f99f..0dc907ffd 100644 --- a/ishtar_common/context_processors.py +++ b/ishtar_common/context_processors.py @@ -61,10 +61,12 @@ def get_base_context(request): session=request.session) menu.init() - if hasattr(request.user, 'ishtaruser') and request.user.ishtaruser and \ - request.user.ishtaruser.has_right('administrator', + if hasattr(request.user, 'ishtaruser') and request.user.ishtaruser: + if request.user.ishtaruser.has_right('administrator', session=request.session): - dct['ADMIN'] = True + dct['ADMIN'] = True + if request.user.ishtaruser.current_profile.display_pin_menu: + dct['DISPLAY_PIN_MENU'] = True if menu.selected_idx is not None: dct['current_theme'] = "theme-%d" % (menu.selected_idx + 1) dct['MENU'] = menu diff --git a/ishtar_common/migrations/0075_auto_20181108_1908.py b/ishtar_common/migrations/0075_auto_20181108_1908.py new file mode 100644 index 000000000..813b93117 --- /dev/null +++ b/ishtar_common/migrations/0075_auto_20181108_1908.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-11-08 19:08 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ishtar_common', '0074_auto_20181017_1854'), + ] + + operations = [ + migrations.AddField( + model_name='userprofile', + name='auto_pin', + field=models.BooleanField(default=False, verbose_name='Automatically pin'), + ), + migrations.AddField( + model_name='userprofile', + name='display_pin_menu', + field=models.BooleanField(default=False, verbose_name='Display pin menu'), + ), + ] diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 82c754fa0..648280ad2 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -3197,6 +3197,9 @@ class UserProfile(models.Model): current = models.BooleanField(_(u"Current profile"), default=False) show_field_number = models.BooleanField( _(u"Show field number"), default=False) + auto_pin = models.BooleanField(_(u"Automatically pin"), default=False) + display_pin_menu = models.BooleanField(_(u"Display pin menu"), + default=False) person = models.ForeignKey( Person, verbose_name=_(u"Person"), related_name='profiles') diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 9846b4f1a..b9e9d6844 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -41,6 +41,7 @@ function get_previous_table_id(){} var datatable_submit_search = function() {}; var shortcut_url = ''; +var show_shortcut_menu = false; var alert_url = ''; var debug = false; var datatables_i18n; @@ -277,22 +278,25 @@ function load_opened_shortcut_menu(){ } function load_shortcut_menu(opened){ - if (!shortcut_url) return; $('.modal-progress').modal('show'); - $.ajax({ - url: shortcut_url, - cache: false, - success:function(html){ - init_shortcut_menu(html); - load_alerts(); - if(opened){ - $("#dropdown-toggle-shortcut-menu").click(); + if (show_shortcut_menu && shortcut_url){ + $.ajax({ + url: shortcut_url, + cache: false, + success:function(html){ + init_shortcut_menu(html); + load_alerts(); + if(opened){ + $("#dropdown-toggle-shortcut-menu").click(); + } + }, + error:function(XMLHttpRequest, textStatus, errorThrows){ + close_wait(); } - }, - error:function(XMLHttpRequest, textStatus, errorThrows){ - close_wait(); - } - }); + }); + } else { + load_alerts(); + } } var load_alerts = function(){ diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html index ef3060a5f..a4d09c878 100644 --- a/ishtar_common/templates/base.html +++ b/ishtar_common/templates/base.html @@ -31,6 +31,7 @@ {{EXTRA_JS|safe}} <script type='text/javascript'> var shortcut_url = '{% url "shortcut-menu" %}'; + {% if DISPLAY_PIN_MENU %}var show_shortcut_menu = true;{% endif %} var alert_url = '{% url "alert-list" %}'; var get_file_url = '{% url "get-file-shortcut" %}'; var get_operation_url = '{% url "get-operation-shortcut" %}'; @@ -68,7 +69,12 @@ </head> <body data-spy="scroll" data-target="#window-fixed-menu"{% if current_theme%} id='{{current_theme}}'{%endif%}> {% include "navbar.html" %} - <div id="context-menu" class="navbar navbar-expand-lg"></div> + <div id="context-menu" class="navbar navbar-expand-lg"> + <div class="navbar-collapse collapse justify-content-between"> + <span id="alert-list"> + </span> + </div> + </div> {% if reminders %} <div id="reminder"><h5>{% trans "Current items" %}</h5> {% for lbl, value in reminders %} diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 499f008b4..d0a7df84b 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -906,10 +906,13 @@ class Wizard(IshtarWizard): # post save/m2m specific fix obj.fix() - # make the new object a default - if self.current_obj_slug: - self.request.session[self.current_obj_slug] = unicode(obj.pk) - self.request.session[self.get_object_name(obj)] = unicode(obj.pk) + ishtaruser = self.request.user.ishtaruser \ + if hasattr(self.request.user, 'ishtaruser') else None + if ishtaruser and ishtaruser.current_profile.auto_pin: + # make the new object a default + if self.current_obj_slug: + self.request.session[self.current_obj_slug] = unicode(obj.pk) + self.request.session[self.get_object_name(obj)] = unicode(obj.pk) dct = {'item': obj} self.current_object = obj # force evaluation of lazy urls @@ -1384,8 +1387,11 @@ class Wizard(IshtarWizard): current_step = step or self.steps.current c_form = self.form_list[current_step] - # make the current object the default item for the session - self.request.session[self.get_object_name(obj)] = unicode(obj.pk) + ishtaruser = self.request.user.ishtaruser \ + if hasattr(self.request.user, 'ishtaruser') else None + if ishtaruser and ishtaruser.current_profile.auto_pin: + # make the current object the default item for the session + self.request.session[self.get_object_name(obj)] = unicode(obj.pk) initial = MultiValueDict() # posted data or already in session |