Compare commits

..

1 Commits

Author SHA1 Message Date
Yann Weber 457f6652e5 manager: make agenda's groups foldable (#85616)
gitea/chrono/pipeline/head This commit looks good Details
2024-04-11 17:45:45 +02:00
3 changed files with 12 additions and 14 deletions

View File

@ -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()

View File

@ -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 %}

View File

@ -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}]')