Compare commits
1 Commits
a64aa47c1e
...
457f6652e5
Author | SHA1 | Date |
---|---|---|
Yann Weber | 457f6652e5 |
|
@ -22,10 +22,3 @@ from django.utils.translation import gettext_lazy as _
|
|||
class UserPreferences(models.Model):
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
||||
preferences = models.JSONField(_('Preferences'), default=dict)
|
||||
|
||||
def get_preference(self, name):
|
||||
return self.preferences.get(name) or False
|
||||
|
||||
def update_preference(self, name, value):
|
||||
self.preferences.update({name: value})
|
||||
self.save()
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
{% regroup object_list by category as agenda_groups %}
|
||||
{% for group in agenda_groups %}
|
||||
{% with i=group.grouper.id|stringformat:"s" %}
|
||||
{% with foldname='folded-admin-forms-group-'|add:i %}
|
||||
{% with foldname='foldable-manager-category-group-'|add:i %}
|
||||
<div class="section foldable {% if user|get_preference:foldname %}folded{% endif %}" data-section-folded-pref-name="{{foldname}}">
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
|
|
|
@ -10,6 +10,11 @@ from tests.utils import login
|
|||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
||||
def update_preference(user_preference, name, value):
|
||||
user_preference.preferences.update({name: value})
|
||||
user_preference.save()
|
||||
|
||||
|
||||
def test_list_categories_as_manager(app, manager_user):
|
||||
agenda = Agenda(label='Foo Bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
|
@ -103,8 +108,8 @@ def test_inspect_category(app, admin_user):
|
|||
def test_category_fold_preferences(app, admin_user):
|
||||
category1 = Category.objects.create(label='Foo bar')
|
||||
category2 = Category.objects.create(label='Toto')
|
||||
pref_name1 = f'folded-admin-forms-group-{category1.id}'
|
||||
pref_name2 = f'folded-admin-forms-group-{category2.id}'
|
||||
pref_name1 = f'foldable-manager-category-group-{category1.id}'
|
||||
pref_name2 = f'foldable-manager-category-group-{category2.id}'
|
||||
|
||||
Agenda.objects.create(label='Foo bar', category=category1)
|
||||
agenda2 = Agenda.objects.create(label='Titi', category=category2)
|
||||
|
@ -124,7 +129,7 @@ def test_category_fold_preferences(app, admin_user):
|
|||
assert 'folded' not in elt[0].classes
|
||||
|
||||
user_prefs = UserPreferences.objects.get(user=admin_user)
|
||||
user_prefs.update_preference(pref_name1, True)
|
||||
update_preference(user_prefs, pref_name1, True)
|
||||
resp = app.get('/manage/')
|
||||
|
||||
elt = resp.pyquery.find(f'div[data-section-folded-pref-name={pref_name1}]')
|
||||
|
@ -140,12 +145,12 @@ def test_category_fold_preferences(app, admin_user):
|
|||
# Order is preserved when adding a new category : preferences are preserved
|
||||
category_temp = Category.objects.create(label='Tata0')
|
||||
category3 = Category.objects.create(label='Tata')
|
||||
pref_name3 = f'folded-admin-forms-group-{category3.id}'
|
||||
pref_name3 = f'foldable-manager-category-group-{category3.id}'
|
||||
category_temp.delete()
|
||||
Agenda.objects.create(label='Titi', category=category3)
|
||||
|
||||
user_prefs.update_preference(pref_name1, False)
|
||||
user_prefs.update_preference(pref_name2, True)
|
||||
update_preference(user_prefs, pref_name1, False)
|
||||
update_preference(user_prefs, pref_name2, True)
|
||||
resp = app.get('/manage/')
|
||||
|
||||
elt = resp.pyquery.find(f'div[data-section-folded-pref-name={pref_name1}]')
|
||||
|
|
Loading…
Reference in New Issue