From 3d76855d0eced2d08b7d56a2db3e567e8b95841e Mon Sep 17 00:00:00 2001 From: kdeterme Date: Mon, 12 Oct 2026 14:49:07 +0200 Subject: [PATCH] feat: add favorite filters feature for user configurations and interventions module --- loko/common/locale/en/LC_MESSAGES/django.mo | Bin 7716 -> 7950 bytes loko/common/locale/en/LC_MESSAGES/django.po | 16 + loko/common/locale/fr/LC_MESSAGES/django.mo | Bin 9545 -> 9817 bytes loko/common/locale/fr/LC_MESSAGES/django.po | 16 + loko/common/locale/nl/LC_MESSAGES/django.mo | Bin 7302 -> 7541 bytes loko/common/locale/nl/LC_MESSAGES/django.po | 16 + .../0021_userconfig_favorite_filters.py | 18 + loko/common/models.py | 6 + loko/common/tests.py | 75 +++ loko/common/urls.py | 2 + loko/common/user_services.py | 1 + loko/common/views.py | 114 ++++ .../locale/en/LC_MESSAGES/django.mo | Bin 125334 -> 126026 bytes .../locale/en/LC_MESSAGES/django.po | 27 + .../locale/en/LC_MESSAGES/djangojs.mo | Bin 20483 -> 22523 bytes .../locale/en/LC_MESSAGES/djangojs.po | 91 +++ .../locale/fr/LC_MESSAGES/django.mo | Bin 141059 -> 141851 bytes .../locale/fr/LC_MESSAGES/django.po | 27 + .../locale/fr/LC_MESSAGES/djangojs.mo | Bin 22461 -> 24635 bytes .../locale/fr/LC_MESSAGES/djangojs.po | 91 +++ .../locale/nl/LC_MESSAGES/django.mo | Bin 130972 -> 131710 bytes .../locale/nl/LC_MESSAGES/django.po | 27 + .../locale/nl/LC_MESSAGES/djangojs.mo | Bin 21169 -> 23335 bytes .../locale/nl/LC_MESSAGES/djangojs.po | 91 +++ .../interventions/interventions_index.js | 560 +++++++++++++++++- .../interventions/interventions_index.html | 104 +++- loko/interventions/views/general.py | 1 + 27 files changed, 1277 insertions(+), 6 deletions(-) create mode 100644 loko/common/migrations/0021_userconfig_favorite_filters.py diff --git a/loko/common/locale/en/LC_MESSAGES/django.mo b/loko/common/locale/en/LC_MESSAGES/django.mo index b0c1c1646490d1c1e82eb5d52d39d84f9e507619..762ea3cbdc6508807d449bb4debea1116b84b2d0 100644 GIT binary patch delta 2524 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 delta 2161 zcmZA1e`r-@7{Kvo*R`$9wdri?R_$4M5)QPd$|4ry09N7~ScC82HTW^k!7s5Ce@1_w$9b5! zI$|bvqxWscRvbW{myI{+)N$cmY{V}Te@Ab~lotkS!x@}+VLfif2HcO+a1g8UEi};& zlIx#fGw0vpLM*9>sKsVn#Q4!ghe^j1=nn_bfsW&Jd=IDMr|5uRBe}(|=nVft@1M($ z=*B`^jjd=A_n{LxnD`vq*5L+hm`42@={(5=Gky&n@C^E(Q8d$U(BGxF zXz81~m5jnOV;MTbZZzRd=H{InPEH9mb3vH1pkP z1r8{6PTHpM&F{w-hT)3nQXUmWX#EAeXp&GZDoPzPP`v|jaMhrebAY57hGF+ez!gfc2=uDLBiB`fLW9uV!60UTL_@{NzSw!>`n+g}p z<6b&96RUFLr8SLr(tD6tL)a{}%{6Zz++1m5SFWiGGZI?5OEiA6XD;} zQsVz@GZ$7Q7hOCzz;2?4$Pkk+JNnYzPV6DvolV5ugpGfmRBRnNQMR{uBvUyfmFul) g$_-cbkCat+mW^zi^;uD_y{;*DsIGrxqVAQ{--PwF6#xJL diff --git a/loko/common/locale/nl/LC_MESSAGES/django.po b/loko/common/locale/nl/LC_MESSAGES/django.po index ab11c32..3eefea6 100644 --- a/loko/common/locale/nl/LC_MESSAGES/django.po +++ b/loko/common/locale/nl/LC_MESSAGES/django.po @@ -546,3 +546,19 @@ msgstr "Herstellen" msgid "Format de fond de plan invalide" msgstr "Ongeldig basiskaartformaat" +#: common/views.py:863 +msgid "Module invalide" +msgstr "Ongeldige module" + +#: common/views.py:874 +msgid "Le nom du filtre est obligatoire" +msgstr "Filternaam is verplicht" + +#: common/views.py:937 +msgid "Identifiant de filtre manquant" +msgstr "Filter-ID ontbreekt" + +#: common/models.py:382 +msgid "Filtres favoris" +msgstr "Favoriete filters" + diff --git a/loko/common/migrations/0021_userconfig_favorite_filters.py b/loko/common/migrations/0021_userconfig_favorite_filters.py new file mode 100644 index 0000000..0700c0f --- /dev/null +++ b/loko/common/migrations/0021_userconfig_favorite_filters.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.7 on 2026-10-12 12:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0020_userconfig_can_view_all_posts_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='userconfig', + name='favorite_filters', + field=models.JSONField(blank=True, default=dict, help_text='Filtres favoris enregistrés par module (interventions, observations, assets, etc.).', verbose_name='Filtres favoris'), + ), + ] diff --git a/loko/common/models.py b/loko/common/models.py index 5a9e196..89ad4e0 100644 --- a/loko/common/models.py +++ b/loko/common/models.py @@ -377,6 +377,12 @@ class UserConfig(models.Model): verbose_name="Préférences du calendrier", help_text="Préférences de la page calendrier (mode d'affichage, zoom, filtres actifs, état d'expansion du backlog).", ) + favorite_filters = models.JSONField( + default=dict, + blank=True, + verbose_name="Filtres favoris", + help_text="Filtres favoris enregistrés par module (interventions, observations, assets, etc.).", + ) def __str__(self): return f"Configuration de {self.user.username}" diff --git a/loko/common/tests.py b/loko/common/tests.py index 296cc2f..5f8ff0d 100644 --- a/loko/common/tests.py +++ b/loko/common/tests.py @@ -665,6 +665,81 @@ class HelpDocumentTests(TestCase): self.assertNotIn("StreetUp", rendered_nl) +class FavoriteFiltersAPITests(TestCase): + def setUp(self): + self.user = User.objects.create_user(username="fav_tester", password="password123") + self.config = UserConfig.objects.create(user=self.user) + self.client.force_login(self.user) + + def test_save_and_update_favorite_filter(self): + # 1. Create a new favorite filter + url = reverse("common:save_favorite_filter", kwargs={"module": "interventions"}) + payload = { + "name": "Urgences Voirie", + "filters": { + "thematic": ["road"], + "priority": "high", + "status": ["in_progress"], + }, + } + response = self.client.post(url, json.dumps(payload), content_type="application/json") + self.assertEqual(response.status_code, 200) + data = response.json() + self.assertTrue(data["success"]) + fav = data["favorite"] + self.assertEqual(fav["name"], "Urgences Voirie") + self.assertIn("id", fav) + self.assertEqual(len(data["favorites"]), 1) + + # Verify persistence in UserConfig + self.config.refresh_from_db() + interventions_favs = self.config.favorite_filters.get("interventions", []) + self.assertEqual(len(interventions_favs), 1) + self.assertEqual(interventions_favs[0]["name"], "Urgences Voirie") + + # 2. Update the existing favorite filter + fav_id = fav["id"] + update_payload = { + "id": fav_id, + "name": "Urgences Voirie Modifiées", + "filters": { + "thematic": ["road"], + "priority": "high", + "status": ["in_progress", "assigned"], + }, + } + update_response = self.client.post(url, json.dumps(update_payload), content_type="application/json") + self.assertEqual(update_response.status_code, 200) + update_data = update_response.json() + self.assertEqual(update_data["favorite"]["name"], "Urgences Voirie Modifiées") + self.assertEqual(len(update_data["favorites"]), 1) + + # 3. Create a second favorite + second_payload = { + "name": "Espaces verts", + "filters": {"thematic": ["green"]}, + } + self.client.post(url, json.dumps(second_payload), content_type="application/json") + self.config.refresh_from_db() + self.assertEqual(len(self.config.favorite_filters["interventions"]), 2) + + # 4. Delete the first favorite + delete_url = reverse("common:delete_favorite_filter", kwargs={"module": "interventions"}) + delete_response = self.client.post(delete_url, json.dumps({"id": fav_id}), content_type="application/json") + self.assertEqual(delete_response.status_code, 200) + delete_data = delete_response.json() + self.assertEqual(len(delete_data["favorites"]), 1) + self.assertEqual(delete_data["favorites"][0]["name"], "Espaces verts") + + self.config.refresh_from_db() + self.assertEqual(len(self.config.favorite_filters["interventions"]), 1) + + def test_invalid_module_rejected(self): + url = reverse("common:save_favorite_filter", kwargs={"module": "unknown_module"}) + response = self.client.post(url, json.dumps({"name": "Test", "filters": {}}), content_type="application/json") + self.assertEqual(response.status_code, 400) + + diff --git a/loko/common/urls.py b/loko/common/urls.py index 4747429..b4667c4 100644 --- a/loko/common/urls.py +++ b/loko/common/urls.py @@ -20,5 +20,7 @@ urlpatterns = [ path("save-assets-index-preferences/", views.save_assets_index_preferences, name="save_assets_index_preferences"), path("save-calendar-preferences/", views.save_calendar_preferences, name="save_calendar_preferences"), path("save-project-list-preferences/", views.save_project_list_preferences, name="save_project_list_preferences"), + path("favorite-filters//save/", views.save_favorite_filter, name="save_favorite_filter"), + path("favorite-filters//delete/", views.delete_favorite_filter, name="delete_favorite_filter"), path("help//", views.get_help_document, name="get_help_document"), ] \ No newline at end of file diff --git a/loko/common/user_services.py b/loko/common/user_services.py index a424897..57ed05a 100644 --- a/loko/common/user_services.py +++ b/loko/common/user_services.py @@ -167,6 +167,7 @@ def copy_user_config(source_user_or_config: Any, target_user_or_config: Any, cop target_config.calendar_preferences = ( dict(source_config.calendar_preferences) if source_config.calendar_preferences is not None else None ) + target_config.favorite_filters = dict(source_config.favorite_filters or {}) # Permissions spécifiques (eSign, documents, panoramax, transport exceptionnel, contrats) target_config.can_add_unique_tag_documents = source_config.can_add_unique_tag_documents diff --git a/loko/common/views.py b/loko/common/views.py index 984a718..8a13e45 100644 --- a/loko/common/views.py +++ b/loko/common/views.py @@ -852,5 +852,119 @@ def set_language(request): return response +ALLOWED_FAVORITE_MODULES = [ + 'interventions', + 'observations', + 'assets', + 'controls', + 'inspections', + 'projects', +] + + +@login_required +@require_POST +def save_favorite_filter(request, module): + """API endpoint to save or update a favorite filter for a specific module.""" + import json + import uuid + from django.utils import timezone + + if module not in ALLOWED_FAVORITE_MODULES: + return JsonResponse({'error': _('Module invalide')}, status=400) + + try: + data = json.loads(request.body) + name = (data.get('name') or '').strip() + filters = data.get('filters', {}) + favorite_id = data.get('id') + except (json.JSONDecodeError, AttributeError): + return JsonResponse({'error': _('Données invalides')}, status=400) + + if not name: + return JsonResponse({'error': _('Le nom du filtre est obligatoire')}, status=400) + + if not isinstance(filters, dict): + return JsonResponse({'error': _('Format de filtres invalide')}, status=400) + + try: + user_config, _created = UserConfig.objects.get_or_create(user=request.user) + all_favorites = dict(user_config.favorite_filters or {}) + module_favorites = list(all_favorites.get(module, [])) + + now_str = timezone.now().isoformat() + saved_item = None + + if favorite_id: + # Update existing + for item in module_favorites: + if item.get('id') == favorite_id: + item['name'] = name + item['filters'] = filters + item['updated_at'] = now_str + saved_item = item + break + + if not saved_item: + # Create new + new_id = f"fav_{uuid.uuid4().hex[:12]}" + saved_item = { + 'id': new_id, + 'name': name, + 'filters': filters, + 'created_at': now_str, + } + module_favorites.append(saved_item) + + all_favorites[module] = module_favorites + user_config.favorite_filters = all_favorites + user_config.save(update_fields=['favorite_filters']) + + return JsonResponse({ + 'success': True, + 'favorite': saved_item, + 'favorites': module_favorites, + }) + except Exception as e: + return JsonResponse({'error': str(e)}, status=500) + + +@login_required +@require_POST +def delete_favorite_filter(request, module): + """API endpoint to delete a favorite filter for a specific module.""" + import json + + if module not in ALLOWED_FAVORITE_MODULES: + return JsonResponse({'error': _('Module invalide')}, status=400) + + try: + data = json.loads(request.body) + favorite_id = data.get('id') + except (json.JSONDecodeError, AttributeError): + return JsonResponse({'error': _('Données invalides')}, status=400) + + if not favorite_id: + return JsonResponse({'error': _('Identifiant de filtre manquant')}, status=400) + + try: + user_config, _created = UserConfig.objects.get_or_create(user=request.user) + all_favorites = dict(user_config.favorite_filters or {}) + module_favorites = list(all_favorites.get(module, [])) + + updated_favorites = [item for item in module_favorites if item.get('id') != favorite_id] + + all_favorites[module] = updated_favorites + user_config.favorite_filters = all_favorites + user_config.save(update_fields=['favorite_filters']) + + return JsonResponse({ + 'success': True, + 'favorites': updated_favorites, + }) + except Exception as e: + return JsonResponse({'error': str(e)}, status=500) + + diff --git a/loko/interventions/locale/en/LC_MESSAGES/django.mo b/loko/interventions/locale/en/LC_MESSAGES/django.mo index f52a5cf6589617d3a768f45dbc5a0fc5216f1cca..5252ef23d34f081ae75f3bec3c1d9cf44837753b 100644 GIT binary patch delta 35088 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 Qb82-`YQyG>ubmeBe?|bRi~s-t delta 6026 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 diff --git a/loko/interventions/locale/en/LC_MESSAGES/djangojs.po b/loko/interventions/locale/en/LC_MESSAGES/djangojs.po index ad52295..8a6fc48 100644 --- a/loko/interventions/locale/en/LC_MESSAGES/djangojs.po +++ b/loko/interventions/locale/en/LC_MESSAGES/djangojs.po @@ -1207,6 +1207,97 @@ msgstr "Error while saving" msgid "Erreur lors de la mise à jour" msgstr "Error during update" +msgid "Favoris" +msgstr "Favorites" + +msgid "Aucun favori enregistré" +msgstr "No saved favorites" + +msgid "Mettre à jour avec les filtres actuels" +msgstr "Update with current filters" + +msgid "Sélectionner un favori" +msgstr "Select a favorite" + +msgid "Aucun filtre sélectionné (toutes les interventions)." +msgstr "No filter selected (all interventions)." + +msgid "Thématique(s)" +msgstr "Thematic(s)" + +msgid "Statut(s)" +msgstr "Status(es)" + +msgid "Priorité" +msgstr "Priority" + +msgid "Type maintenance" +msgstr "Maintenance type" + +msgid "Catégories" +msgstr "Categories" + +msgid "sélectionnée(s)" +msgstr "selected" + +msgid "Date début" +msgstr "Start date" + +msgid "Date fin" +msgstr "End date" + +msgid "Non traitées (en retard)" +msgstr "Pending (overdue)" + +msgid "Suivies uniquement" +msgstr "Followed only" + +msgid "Marché bloqué : Oui" +msgstr "Contract blocked: Yes" + +msgid "Marché bloqué : Non" +msgstr "Contract blocked: No" + +msgid "Localisations" +msgstr "Locations" + +msgid "Filtres divers appliqués." +msgstr "Various filters applied." + +msgid "Filtre favori enregistré avec succès." +msgstr "Favorite filter saved successfully." + +msgid "Erreur lors de la sauvegarde du favori." +msgstr "Error saving favorite filter." + +msgid "Erreur de communication avec le serveur." +msgstr "Communication error with server." + +#, javascript-format +msgid "Voulez-vous vraiment supprimer le favori '%s' ?" +msgstr "Are you sure you want to delete favorite '%s'?" + +msgid "Filtre favori supprimé." +msgstr "Favorite filter deleted." + +msgid "Erreur lors de la suppression du favori." +msgstr "Error deleting favorite filter." + +#, javascript-format +msgid "Mettre à jour le favori '%s' avec les filtres actuellement actifs ?" +msgstr "Update favorite '%s' with currently active filters?" + +#, javascript-format +msgid "Favori '%s' mis à jour." +msgstr "Favorite '%s' updated." + +msgid "Erreur lors de la mise à jour du favori." +msgstr "Error updating favorite filter." + +#, javascript-format +msgid "Filtre '%s' appliqué." +msgstr "Filter '%s' applied." + #~ msgid "Veuillez entrer un entier de maximum 6 chiffres" #~ msgstr "Please enter an integer with maximum 6 digits" diff --git a/loko/interventions/locale/fr/LC_MESSAGES/django.mo b/loko/interventions/locale/fr/LC_MESSAGES/django.mo index c3998628afc58302092a2dbfa9e6db04538d3086..54b4a0f4a57c60972989274edb89f640765b80c7 100644 GIT binary patch delta 35975 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 AasU7T delta 35209 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 xj_CLx44AqjaxLPEy801>crr)Sb|=icG=y~9I! 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 PCI3g8^q=l=Qt5vHO})@j delta 6041 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 delta 34354 zcmZAA1#}kI!tU`2gdoA)69|?N2$BH7-MwgW_hQ9maCa$C+}+*X-QC>+El!d9f8M=w z7WbRA=KQw%o;U4x?zumP#F+Inx_c*~_f&_cfRE#(#`ifLr&M-oo11+7DxrKN6$jWL%BYFfEoEqmCS>IjWsO=!0W12K_rz z2t>!(sFhfZnQ#Yc2KO;Oe!_AXW2|YQI%XqY7gc{as{D9lX`RJb60c%mOg+w&t7mP7 zZhkV_5m1LqP$NB!S@5MzPdwi2eF4l)dLshP|^1bAg4>#rF+BOx3kP$SF2(bZn%LCvff>d=%!b=btF_eQPYAWVq6QTgXk z6M2sD@CWLQ#GPzRjtPmUcL`{wVW^JEp+;H_gRwPgfKzSyOw{4ofU$8q*2g30ivd&2 z076h(S{Aic9WfowK&|Lb%!=*}0&2)-su@`#j6pmN24N=DjH=oEwy2f*6BFSYjDiPH z9UMm0dx|=I3I8$^sEry(1Jp_kN7`|ni3Gw(IElH@Ynr)^VOWfKO$^0p7#B}r2;RgT z=sVqPSwYl5%VQF3hKaEkYJ%fX1DlCz=Llxf{l82=Bm0Kht4uS@0P>)gs1_E%L6{5= zp!WO*7QiHbo5NHMHK1mg0;ga$Tw~+6Fc0yMsEK8p$*cR{k$^wWMh#>S>Qnm++hOck z=34edHT;*2uftNr&!Dy<@ocjNSy0!sJnB04!pt}gwfB2bD|iQ8Em7P#j*}7tPtXe=#S~8>Gz{Lev3NXpHb~) zUue>cqb5?`C2)oN%|;67A?u~(Y=?1#a`!%)|>Df(g; z)Ij@VG@On)Tys$0fz{}b2W|c%)E2(*$o_vL5TAs&s~8pfVJggk8gWsqgf%e;7uxhQ z)`#dr`e#(VpBMvEtu_P9fLhrcsQhxMc3WUF`geLOfRj)oTY);oyHFLcVjO&n8Sn?{ zbO)?4-}s`a@~uz<9Awj1TQ8yZ{y+58TWiizQFQZ>QHelI9ERGn38;ZAMGb5_YAMfS zA$*FONyc^NG#5iPTn=MnOH_MZQSJ4^=r{#6fmx`n-M^0euZ&A1sKZ;RiV^6GpV4zz z)|;6HpaxPImEIgxZZK*|$D_7l5o$$NqPFx1#=?`Rt+`^oyPow=K*BQ;{P8Pl0I4>Z z)1DF4U;9>9W~Reo6XYZK%JQqs0miXxY!J}VqGv1y8Q{L z!AYost1&U|MKy2wLwJ|<+L$yB) zHPG?shf6Vm?*CB&T9WG+5AUO{(LXl*2Sy?8v%@qH6Lm<_p$=zORJ~lNEi8`exCUy* zEo^=#8y|qGHyT|PoJ2r}a3N~OCs0dv7d7M8r~!HJG)tcVwZyqF9acg8HgrbSn}%BA z#i%XXi8>=kQRS|nCj4zD>z|o`_bxNiU`$CoFRFv;sF`*|Ep;y&pM;v(EKH9}Q4O9z zP2d8m!>6cnA5n+TYq$BW$cU+k7un7F>yXtWK@Chq&0q$qp{1yq?7}p70kw2*(H}pd z8cM#${LF@;&Oi%P$30OK8jPC29Mp-L_i}9MinSyZG>u|2WsRaQ5`Hm zotYJ=0qsN$=m=_M&Y@QBDyse~)P#PZwkqy^^9N2&WaV9_0fAsLCZj*@!#sE&)p7Cz zwgQF|Z-9O{4Fhqj&A*Rnh{ri-(z9X^@tT+x2VicTYx6InzwZBc0vci3L#AMMYb8ua zdV3omhdRxxQ7g6`HN#7&m3xBz_ycuj{0^Iy3PY__Y1DwKp;oA`(&^usNI)~1g}P?D zP#qn|oOl^^Mxq}vr#C*Tp&(3+HPQ0{v-Ux?H^k;Ivg!NLhx8Mu37<#L-~aasXm3BF zD*nLqnD(ftPz+NLFN>O4Q`8FdL^U)SqvJx<%vPex??WBx8|e9tpjN{Bm?8Mur(l<%zHQP(>9aWlXqsIwDv zob^}7HAv85Ym2#XFlr`SFdCjj4d^^-i!P%E^Z<4L|G|tH=Y(0A+^CsXwl={4;(wyr zosQ~vwM#%997N6NII7}p)Dpi%74$u6I!K3}Yl>>95o*SNVoaQb8rUq1f-6xoUxS*! zF4Upjhndj5KtOx_1uJ0cQ)aJPqtac>jtej|o=2_F7YxDR)8-#S>!UyM1*n-G!~*yf z>tetewiWxK+B=4YXx{lmKr;zDYdS8Eno$$fmbj=HPe)%|hp}*%^(g9aUBKA*9Ci3U zqONcJb0$3(YG6fBE87f{>Hha8P?UtfkP$goQA?BLylJQ)Y9O_2yd!EQMxr`iZ_|&V zKk)~sEsJ`=)K7tViRZ=!*ba4Oj$<79cODZ^L+>yL#=2-MfFZ=&qfY%S)Jp9~b#MhW zlUJA@qhB%>$8h5PP)ofPL-7eFz*Lvbz_Ov|{+A(;kc|2mA3I_o4nWO(1;)dJsB#z4 z8=s&We2Ln!@2F30sw?J<M&H55v94f!^4O4Fj)*yZwwZiFdnqSKW7)1OgYGr+Hk=v3$o?GT0 zhi9W^a2K_7Kd=C1yKVl=Zi8BxX{f`rAJyPvER6B*n1-vM@?G@Dg{Z@L$i|;w8RF61 zyXK$UtDqX1g4)ZySPQ>mR;+fICZIjJis>=tLvss)u{80vSQpo$D)>G!|2C{Ps-tOG7&l-F{0G&Z?_=|` zUI>d3Z;QG$t1u&8LRQ#yz7j}FLf{iKfU=m5cspE#V^MpX>!~?ptuY4iVVDfZqc<+K z@l~kr#37r04&xHPj9P(57ze$dX=PkaGyyGDAnLT2w(&-u0{l*+4$EZJH9Cm;(0oSK zi}u{yiu9-z2}5;I71d!wOoII}CQd=E)Evd>-`Qp}4xnaq$`*Kpp1rf_NnV(avY`fA z6g7alHr^fc5Fd~E@d)bLdc8CQNProLXU0IRh;9M`-3jPkk3e-e6E)%u7#)wHIy{Fy z_#D;nThsuYS7t_Oun5t-m%J;SDASG%E zgD^Ih$23?QGh;VYN3&69U_I&swgm(5C~AN&QT1a)n6r}vHNmtItiLLRlAt{)h1!Bf zsPrDFJsp8sp@r5hsDT|vE$MUAO2vI+2AC8z(@+~PjT%66)IdAicz2h8W-u7F0@F~} zV;#oDD_9C2qh_ArZsB7CEGvRpD(r!W3-;LVRQ>Ym~L~YR*o9~AIV;U-p zG03QBt%?4`8)AHPQA;@iHQ?2#mD-OQ$aPeQw=oXBLSOu9(|!ImE1U$i5+O)A*C|Lq z70cUnxd9!AZl-?VJzH*s(2LD&=pLG4=@paKy6XX_hz7(F&^=7)C!hE)%)Gr z5~I++(?tR7W;1%CW-!bOgr9xLDsz5;3r8a6$`=ACe*}4|BGAB_pdVxvsE9%t8|77YXN1cU&sB%S7D^}Io z2z568K%IfUpV)sjFp>m~Y$9r=D^YvC7uDb))EDg->hwnaY|53uWW;Nu_PnEwkHW;n z7hqD{iaOk9Fc)6M+!*T%>#va({$dJN#&F^-P=|0X>JTkKb+ig~CJvz*dT!HGe>DRN z#c>xg80lBrp+m7FMB7>o)Ym9c)YaH)~=X>Hh=?JLf!l;3iM;*o%sJ$DBnQ$Je z+)>nuT*R381a-*XqB{7Ax&`TenwbWpwm3hk>QtsA4-* z#et~b=NYID58C)Qo1ZC)m*-v=My*6E)E4!|G&mkZa5ZZ0Z=+V^32NZ~ptkTobd}*1 z)yuQQu~8YhQA-w%YM>nYVRh61yP!H6g<8sGsD{^~2EH9Np@*m~{el@WvA37!A8_)c zXTsiIuIF1mkOVE^->8`!M=jkQREJJ9FVEphj%u(FrouX?j{igrq(5rQhN9Y;h$_DX zwdDKJ^Ch*uispKmzhHb!g*2#{=0dGZb=19WfT?l3brq%{ejL@oL)0GsK&@Pw=w6;v zpAA(m%*LyrR-b+Ow@IJe9Zt7p=Op3we*cpOVt*&r(ID4a8U!Ah8n;+ z)PPQ+z5{nq;VLidvZ}sF^iG zHP{AqR)(Ty>reyRhdS-oQCs;F^<9Y_*9{Gm;Quz zYGG3>k;u#Q^ScDK1uIe4Ym;>+YJdk&*YpC-N7vd&1hcg&euM+AE)Ii<)&R7tK zC+7ZZX%3N43@@PPLy^QZm>)ggY|KJ_ebiPAMeX$r>oU|zY(;J5Ues1yLDj#7I@A%U zv+)zNqHj{}e>MVnlbS=<0@Y9_R0BOxhpRtoCKFLJpN?v118OVwU@N?W`XCifW(HCg zHSq@9S9)mhO%WQnVjo(IX)koBT zf1*|_VG7f60o1@Mq4H~^2I96QpoRxvYn+8@C|XMMMU0EOmI0`(Dvz154(ikoK>Y*A zOdH>0y^iYOJ!-(QQkj(qK;4?6NV@AZCZN6Ph3aS&hU0qF(!NA}TBD{mr#L<4C*BIx z@B*BLJFz|1Nn`3AMh);bR>aS!iIz%hR=5dz{`tQf0qxBg^u{@;570u?R;)qI zTtlspx1ZVLIH(zAK;43psDaf$O`rq%<4{z+B{qGn;<|@N3Fy?GLpAgib-1GYn-54L z)M4~TrDw9{vKB^lR31H_ZqzO6imEpQHL$s;39dzL*(P-LLAYu&GN&^g1f#y``B2xa zDQfRKqvz0|zHC!bhiL(-!_7ARCaQyHSPy;Eo274s`aTRswL3pO_g@v)k)UgL#b(?= zHSijBYU2l(4pX95ATw%jb6YE;2HXZUpvkCuOHeajhuY%Js0kcJZPD!j*X;2}TOd{j zGqTjytf+zHM>X8Q+6i?w24i)chT4J`sF_8{Xa<}B6;Er;hWg$V#1L%j6428Ajrxma z8R~lNMlIE2)L+9EAVEQK#HJLbr2{%~o8IfTrsm!k&s0;B2vr_EuOE(2=jA*eG^0`RmSf0_yZXLVY#W)10Lus6*WhT?K{_$bieS7@k3$+W5K5$o)_=uZ(qYA?mt) zL(M!>Zu9F`1IrNKg<5*=P%ozh7Q(7H5OruTU`>n{#{E}?7GYjaBV3JzF-{&+p&}L{ zJ{xsvZ=$~a$?}?V)v-MBiI^8}p|&t_KJ!~q0kyRgP`Bd*s(k!#^Osb;aPGf4SU`eC zcn?(}XMVF}?NEniHfnDVp#~DCfSE}-)C7iMW;}yx?;~o3LJOKh+7NZ$hoj1EMXkhL zmw--n>Ox+gf74M0^&O~y`ouOyorMml--tdoeGUgX55USpJ^wIslML^f&A*#bD#Y}^-Q1JlNwabdSj)iQzF6y4QLv7hk zR6FNT19*e_ar@7vrz>u*cTrS3H88dAes8d=|AU%oj1s1NI@F4U zqqeRh>O0XNHK6h6hl^144%zhEs1MM;=<3>JDrruAL)0~yj+OBa>PIMBDKnr7s0Lf0 zW-t^(aX#uWUBP%5wX~PRSe-<8hL)aF;L;N|!eZ;CqXgRv8Cui%;y1ywXN zs*L&~wnhDcF&6bnUS{)mp*p;V+M)kZ}anLAT20@Qp`Rn2$P?>#WI!rrIpU~5&Ppx-V^E+MyRk4$`JL*f<7j?>apbqIh48TvA4pUV#U(iCR zfi<^|Lsr6dwh_=$9Ymel)2N0Xpl-z%8&6Q(3@{67B?_R*mq(RrWaB+h6B&a#q;pYQ zxD$0f&!PqxfhlzV6aHorf>EcpDyreesC(ZH)xdDnZJ3D~z;@IJ<{0L{)2Ms@1GUGo zYM6;7LDly|ot@mMa^)~w_rIpi7;jySn$b?wp}B}!p+~5S5!SD$!{t-coQcG!Gmsi} z9m7yt))aMZTcfsm1ZraA(QQg#J^_u`yOtSYJk-)ebKIJ;U#=-w08gNT{lqqg!H>P&ezG`A}?>YBT`3FtJpMUA)@ zs^P_`3P(}b2un{7tAca3A%TPRz#Ukd{Ur!pcZJ*QrTB z_q~J77=k(+qfw`HzD?hV+WQ@--}AjTehPI<&ZEjdz?%3T|G@H1O#XJPM*IZ&W9p_# z=l&J)1Q?OEk+leA zt!=zBYO7|Ws~?5S1d3zYR_4#B2Gdb(sig?a1u4( zo9K_PP!o&O#%yhg%W_jX;%;-qy?c9h0JF z+!@Q@Qq(nlgDUqOb;e@1GasS=)Jlf5b4`QcBWH+pjP#s2~2ISSj z#1o-bB$JI7K;4?k=(&!l_WGj!UYLd&*j&^A_M^7cy-Yw$^98j>@&7P0&Wjm{H?Z+R zs1M09)XWZ{zHH}Ehc#|TGk_GRfrg+4Sj@(2VJYIRQ3G9rteEQ@BA_qeag*RYL7j=0 zHvK(ng%Wf!zhcQz1I~vkSH;Hb*my_O3id?(>J37DSr^#+%cw(o2V?2}M-b46zMv|` z>ug4z0=1{vQ8UbKEsWapa;S!Cp$=tB)Ka^sl^Tv3;6l{WuR^WJ8Ppa$l)C?)2xtJl zUCiF5L;a|PqW17NRE0lKf1D0NHMAI2ZU+{_>(*3V&HZkGxk;aj8t8G55v?!KjWWp_Xc|QIzwUo60vX8YfogD;EwB>R@pjZ%ID)!HS5X80f;t<~`j`O)qsrw% zUB?or>sTMPvdwM0Cu(H|V0zvEQ3UjXS&dqnP1e0O{RHaToJTeM8nu)@ea%0#`lISs zK+Ui^s>8;p75Njj5<^f+z7W;UGEAxazn_3s;1+7nz51DklA{V{vKB$DKpoUs=#3ii zB-F~yMyT=C3g?enM9rhx9jlT?5r&1JozEJF3ED)Qo1M8d{G! zy+=_4d0^vTQT3B>t5hyKs$NM{J9SVi(iAoDF0TFk??-}`W*BM)qph=0Gh2;1WV=uU zzK7W{+5od6p{Vp)7>0dN16hwcBPTE?{(~BDz(7;4z(5+(2ciK9sxTDwdp`$*@Q_V^ zgE@%D7-a5mIO=fLx37orAu5%oceGT5v@4%Eu!N3Bdvmw*ma8`L2ijQWtw zMU8Y5>a?FieF3kb=Zp+7OPCy0F95YtMNo&ZG8Vx4sHL8c>Ube)f_qROD)*5s5M`*D zQ5^IqBPFUp0o2~rMIEYUsE*p9wyL*HAC3BAPDUNlC8%3*3{~zdYT)-!6aIvJUtA}_ zFmw1)q7F@fH5}Do6;#EhsFmo28pu%8=^l$ZRC7^VvKIA$+J)NE1E_XxqJBLiP)na+ zxa9t2B%mb^N8QuPs4rg!Yj;$KE^2_oQHO1|jUPbG=o$v%zo-GH9%0(ajrs%^M6F~| z)RvS-Ki&VD1hgmJP}goIYG&I|OML=$7OtZP`VVR#J|j)TsZlfXM|B*EDqq2-H$&Z? z9yUG`wK8kb)yR(#(9%9Y?Nx;JCu$|)k1`#lK;@@F9meda!&e)tU{};3JBWUG2X*~^ z*m%a#CSD3Pp!TD=|0M`aAVDi|33cecVjfIB#>?~nWTFaICcYX&@tZa0STmrOsG0Y$ zjzg`;VjJI%TG4Z;rGJ3hiq~Vg{|bDv30~t&MPJlF{7@@X2sNW}sHJUV9f+F14Afsz zw^1`oIo>RBVbqG$wst|S+*s7gZ*d9ebe=a1f*7Wn==bbDe-1dV;!E-!VI;pJEP6HEU1Q z0Oz6(+a=T)$uQOYbA3IWOnfy~!eW1!f8#kG^$EU)h0$l4`7b(@!cMyXYY3=--*od| zxu}FSiI2rT_z?49qZ#JU>FKC1+$n5_5vUdV{cp3^Lokf^T+~^(jGEXNR6l8Fn(s_S z^!)FCv?HLyGXr&9uGj+KQA?P5mT5Q)b=|6BF>H@Ta1HAAM4(nA@oX=rHda7w#X{6s zIb-8DaRzapIo$u;1m+RYKmT7s{Te2lYxcMZ>X6j8@y=L{_&6+$_fWrfndh0qTN`r_ z?}7Po8EPO8QCn7Ez8Uyv)Q9f$eC~fq0xw9=83J=Cd52C(&7f}Pdg&M#+ z)M-z&*ffv{^_?h)x?aDd%KwRKZ#3!*EJ7XXW2oPfPpEP~T>|>XCtYF^GNL*zh?+?$ z)D|>BeTcfFMm`8tZn{mMk6O~zHva^w-aYFF)TcYvQqyiK^e67-C7_YlLG4)=)L~qW zn&}JFNWY_Ins}M{mrA)%9W+Fh>xwEj3^l;n=z|+kpW+>;dw&Ks;S0!@(RJ<<&;Y)n z4o}kMrol3(Pv`Hb4^KDL2V^X&;kl?4Sb{3I7USRv)D~Vtt>81%H{W}O8CX2j-vJpt zaqfRv0{VlYA*zAqsF`*_H8cTrXy&0hT!EVLM%0oXK@IFGYNpRo?R-bAi0?{MEOQ|i4a8YxRwxnr6U~YmXhqZqrzWc0 zVAP@f3$+z%(bY^h63~*IM=jNR)C_*2W)Nq!=^z7^B3=+R^Fip1lTj-)-MRqN5nqK` znKP(b_Bc6a-nWd-!Y(NcgA8I8opbpzZ zRKq_}?Iv7j+6h6`%ZF;GG-?a0xi+IA>Xf%fjeH2I;5gL1pJC&Rt?N)rzZ0Y2K2*Jf zsM~ZJL-47MCtGjY$%z_hA*_sUT>^OsEJMxsE@}myVMg@XU}hSOy4Qs<2y37^bWt-N zX`O}Isy2%W<3wr+kA4)(UkQt~g*o3;Dr)>N_>e_w5ocPn4 zbF&#pGt>Y&V*wnFTFHZ`dZ$n;asjoXFHyg`3AWIm?tdu)YM=q;$F8V`)?hw-fq5}t zt0`9xb(%Y)PWw>Q7K}yBcpmBuEJhu&y*7Tz=08Cl&X?$FiDPUtBTR-`>Kv#QDULdP z4QzTF)Xe&zmU;+kX7f-TZAY!#5u1P0#y_FT#olfPm=Obs2W{v6t6~ij^Z{yuI<-SE z6gQz}^c?*$0@Xph9VVUuHK0JT1AwRZ|j;0@G3((W?1BhV$FnHNP} zyJn~n4#WWb8#Cb^49CZ)Yvs4w{+*B7>qe+8>xF7>3WniU%!aQ~?fctIF4EHGOB?esHIP|&wL*;pjM(ZD!qfXzfB)+<6BUFsvSkO^AvS9zS;Z~`_0UQ zFoypAFGfHEC~vKWx=u~4-K--}Gnr}QD{Xv_jh{g+{e9F*cpotL+}BzJwd7qypQ_Qy|sQtHQ;^FG?)_gcSBCp;i`)Ij?_b~z+b2@>`Lot z>l<`4lab(%=^z}nmnBe3+yu49T~LS8MGbU1YQKa~0ZOJ>AfIopG$4y6hP^Y&FY9Jj^Gw6f5PQy@3JPvip=3`M@ zhWgETjyek&PnbW|N@79cqp&m{MYSLIq`Ag!b^^K{xv?`=#cFr}t6<_&rlICof%pm> zh99vy_B-w6e86+q1dp6CTae|f8F((#mJ~vL%FCd>v=xo6)0%(|*$~tjm}m=ZMa}S{ zjo&~WqK~MV#y)3mOIg&G)Ix35bX0rmQHO00s@)5ymHUjkWxnT?&;3h5KqJhCY9KG_ z`c*|8!n&vmf7tZCsJ$DCy6;O-TXe$aUq)@!9n|%Gf||$&)S38(8erlJ^r!oujzBBS zkJ|GEsMERzb-nhYX7UgZl!NMHltOT50nSpgK5dy^WgD8|;A5FPoWnL$%WnHL!`O721s2`+cYty>*%U zuLfR_pqWLvVme5MDiDa;^Sr2Xm2A9)&F_P1cqFRfDVP`6p_cv`s{SX;hjFf&U(wR2 z6&`Sv`#+1oL=xI!_G>0%2I{b^Kvmq0p2LTlS?ud3?vJ|9c~E;?6?K+sqkb!zpz3wT zOgJ31(rZxdY;_6f(4Djyk5KpXwM~z6!{lc|HCzO>66H`0H9`XM)FE__63`4Tq4qWcb-JCKW=82zGYLf9-*EKD!dM?0p*q}!TG9iU9WSC* zFv=}cKM5+H(Z=&3Y`@c0@Yz#)Kd4hj7}Z23d(zY;dugk7kaA3-&I1vLY&N5-tE z??g@XoO;w=_D3~16?F#YqS{%HTEYET2v1`;`aU-CQjc9T^T8zON97P|hRzdHpb&-< z?So2Rhbs3Pi(=qY^QTr@)F*c_hT$V@j47X)za#o!N#bkKAKzmLCUKveJu8JO(9F6F zwdb!i^JVix&z7NP+y}LSLs2U;&bkn_CEHLdbP;tuU!cB}|DjgOP4?1M473(T zo#Nk64K&59*bn`2x%C9N?d4 z^d+G$>QsNh+?XrEENM$DOMEfr#|SKjfp3iMP^Wn{D*p$n!|=CeuZNSrA?q4GUN|WE4h?xF)JV3)BGnp?+>hS=XVi z=@r!ViuJ>MF^ggq;{8z_pFy?r0yUs0Kg~+`VW58h^Ak|R%~4A;3bpsoSpOv2d>(F` z=R2-&Ez-{N2J!ln-dp>`b6k~vc}lYJ>39e5UZkv6HS)PhT8RE$)BW!kh5aECn}!0_ zsV9T~iv^YRtg#IrqMV+s#FLU2NF$4FUUtHfPg%k@X{QV}qt0Y9UK4&mof_EOwxjX| zT^rd%rcQRXUuH3yMg~(s&rH&@*?|oANdk*a$C;txbQJdG- zwzZf10=$Vy*Z0TSWCwAU!g@YZa53*=6Xk!9gzq`=O5~@pjddX&*Os@%oB=lOMSHu+ zFGof@%J=5=Bkt+U7XF8LzGx)o$zdj> zow5^HXH{NJTc8qYt7!8G^Hqy@UPiKx0*CPs?=cFF$J4)bbdSOxZNPn~4YJ!Zfb=^yZzk;}q5cxgra{r3o}|_?q}AX}uKhnq;w=jQjrDl@Q0WcsC#@*? z?@V3i;4dBju;Koc%ftZ2+cL?B>&Zafca-@~ybEoVq|KhBB_SS{_X}kgg#)y~w8o;a=3!Q5s_vG+2*JJ&y<ZDBpr|ok)woQPj;%A0dQmlNOC|T3$UPh`V*EsPA+xDkdW1 z3gJ+~U8z`v0(#Ed!ECo3Cn7B+X`^g@5b=zZ&&=D9x>-p7NLbGd;yH<5BV3)gBk_O9 z>xVq9Gl_@jK#lHkF+PwvJljuQumAasKlD|DJ@D zZALvk`k_iozDv97Df=z*lN8-{SdxNKZR3C85aPd4VHq}|Olwaw{9j1OYh=Uv`JGCB zOKd~gbCjD!<9A8>-45^+<@*!nFFDUs%J#9#C7_?h%6JyTZGp8ka+eCliPxtgJ@f1! zqhVg&6Xbm-eH-B_l&x(W?P-lcdMvxwgUR2;tDn}Zy!Uv&5qFo9R-Q;k3b$4PDr6_# zluq}co;AEDh{yB9_*ZF^eax#Tzb&J1A?nw&>5A*wO4=XjO}VbTKRv1c`w!R2NrenH zUYC*oLxnb^<+iidUo{y>`$$@L)Kl=6PM?$Bk+hDKPfY#2ywQ1|QC5EiZ&n4K<rFO8N@hfiLbREiYLCc3?3lPwbG$y+O`Sx@th_U!Mu2MLxF)AGEbAS%TGxXQq52@=FqrOWZLHIY|jW=8Z}`0WP83bF%e>(qU5DrsBgXGn@K5y*XK5 zD7aG%@mwVQAMXJ&gGjqWT3^BwY~>5&>B&X|$4$_gPPu;wXXNcj_>vvaILe0bwx{kn z(%SHPGmx8<@#764?x%0ubUJ8Y8=HdzczaMl&lvLfM{Um&VLQ)A#rC|B&+y2AwJGJh z*zj}O*<$PKpHSixUt`-oOgi&7PYIjYhyhjO)f0nGrc&q{PPb{TBO4?BgECuex~GEu zkA%#!DdEYKEl0aW?O)m^j}HZX zZKu6yxEbkPD6fCs@;uZ_Xa|s*a0kj}ql_1WnNRr_wyrJWd?Egoir$nB)cX5T_$i6q zDV&|e5xl8LTS49#(sT2s;$3cA(7)9C_1R`4EvPqb|Rntq#YyD`IoeG z%}7YXJA)1uQaOmsp{VCO6@K@8CC<=vdrI`-%}8!HN^KxF5%G1Vu;<@BBqKhDJb%hZ zK36C=lJs0Q;UDt$k*234Z$-kRXw%@n&hA2okl%9yGe_~Aoy2PP7l(1 z(C0Qz6r^AE9*OPviS5FJ#KGgY+ z4@eut`zDNvWh88#yZ={M-GKJUNe=fi!d zC%Ub_({@mR^kwAhd5`&tSFm}T2p=WwFWT3xc)k){NqkS_5dKESbk*b;Yb(trJdV5_ zwxf5XpC_)TEUqK{yN#Ep@&9c26DH>^O8K^=r^58qc~2kqah)#|7)z#}qc&p`1v8P} zo3vXtPx-@1k4a}GC|8YecO~*nCj5bNudtA9BRcMuq3RIcOv{@u8Iejl8qO-xAKso1Hh2r(ynHCC`tym2IyA zc~PlXf%2_MOG`MH{{Dzgpb!Pa@y#!tljHik7J!__s^f!$UBR-z=hg8l& zycqF$g!ROsUSs05$X`p|?-+ylpC;S$pSLJe(stOCye+(u&u4wcx)FQJ+m{B~<6_?N zgy&MQ4ev|dAvBP}HnNol_tMcp;+HAch<77t+lhap>=fd!iEpCJNvume@|j55RU#uP zx1K!DXXFBj{}H}QLR-QEc>B`Wbt>lIjmyb6Lw+ec0D{g{8n{8;GDUbc5Pw4bmy~%x zd@At+gwN4dYRU!TBJzu3F5W=$#_+lY$ehTlr#1a?N! zX-rSvSkiJ4UrBr^uRm`u(ih__>KydcGXHUjctg^YM{_1m>X1;M(r}`Wa4y~Ixq=IA zI2*=n&hRYyC-xpj(9xEG~;c+t7k8HDS7YMHWm_|O)Am#KJ~Wo zdOqb!OhhCP?+C(aC|HX^mzBYjolUq*+G@fF< zZxZFNVjc$F7WIUX_K7xT*mg}StH=K-!zoN=QVJKQAw6DHn$7!y3j28V6r{{XDi6k} zymKi#7hBs7OeuCYGJs#n&qBMA&r#y9h_wG@5Njjp%F+4)733*Lc%^M)ysaOHvcEnH$p0CI%|2{XPtu5< zr4)?Lv|dmk6%8#SJt1jBe`#PZ>0@cQA!YjTPNZHG(nb^3(*cWPY0|FSc0C#V#|`TJ zLH-Bw{&(2-+s4a~*n`YJC^VJq+r(cH{y`%fDYH{`>{AsRlc%Q`?{-g!pGDH1QT~r# z2Hcsv;-pQs<)aXGm9NXzf%hAoX119*$w*5$K860})zg5q)VxawC#38x(hs4YLbgmU z>iF^|ByEgmcAjjfAmMZ-=$uxkJk_aFn)+@rn{bVU*d#>bok4~C#Fr9I#@moa&k@g0 z#Z$y*Q>Pp8TD&Vs8-hD{LrL$%yOnSO%9SOY2^VN!w7CM?@us$?_Fv7vCmB;I_=9&8 znR?C=4#x4QXE*5qxQKXXTPCq>#8ZI(7|ENKww9BBk?;=61~8C}41oW`tmpZY{4RvA zknZJ4WBu!q)saelZNqaZl#jHNG%(QAbM}y?=L%(B@~*NChBJtlq^}`=kFBqARmsmp zCr1d!C9ehVB;uclAL1QNJUhm7DcF%WCY^cnX0Wr$M}h7%IE}PZ6wE<*4DS%$Or)J7 z?GpY*qgi+(pXao-ob=?hGlujfglCZ%o%ZzP;q@WC1MlCo+nDPM*Lwi8Z3-Z0u2N%$tOo_E9>kUpO>Q%IXfcrwtU>jOx^GXqa!Yo?y_M%ZeQ+T@(PDEZ->eZxdX2LHiGl{&sc#3x| z=@W<_BbD-LCs@b>1-$*R1;+q5~K{NY&Nwx5jt+`1$dCm{~*prKASGbQ1aRK7-MYYE>c zT#+~O=}Mz3$SXwo+9WLg8l&EP{q2pJz7wk2NN~qRdZhXWLnc$!vv~%yJEF-6Zafx$zHN$~)TgzuQVe zFDlIA?MJvg8Ch|a?SP=?sY!e;p`4hS4lD9Tq0TDOA_!L_T;9%H6>`z>G16v{r)Q=* z=WWSb*(5o4^dqpI0)OLBTW}d(C4QKWmfC_TXm~pDFxx>Y{A}|ADBFuXJwHjOeP<`} z3Zze?tu2K6*!;faJyijoB;@OVBF1@0rR(TVVkiX%5srKklNXD$W%!edRjD+SSC0?n zYGFF^qVR^1-ir4u@#cY2*bcF^$%c>PecNsU!tbf$OvUd|!ol{w2PScRk_VHt#ZRf2C|$ z%%OjZiccT}kMoY>oyf}tIWsgOc=GN$$v3{<&^`LbH9HnW+cNCa{1~T; zH-RxYh5CGKgBvjiw_`7S8P(5sIM76mY0b0?I57qplv#@EXccM(>#;lTKnIVYX8I-e zz>ZnQ48c)&5mup+cL>|zTS#B#3rxb~ZpKhFnK+mJ%?JvM@CK~FFOas)0(#X9YOxvq z8a2~3n2h(@>pM^x+lxx^OQ@6|v%Zfh)IUcJ;75DDm19g)Gi*rJz522jssW|M!-XfP)-u*B-x8?HbN z;5JkP>yg2mEvSJWz&t#LTGQsNhfGIJAP4y|=kSZ9nuXX0ue9~L9#L=YpW#G47fz!( z$Yz0c;{?=FRAN8826ORY)aHB>wU*7v7a`pW_&8!RXdt zw1|S%^bl$Wui+qUN^eZg3`4yg3s9SJ4JuQ&qGr0!dK5L#uTU9lO=G$*7xnxsRJ&K9 zz9&1eoc`l?=|-1d@T8h6n9*PXDGq1-)KHs1L>*)PNRa8@v*e@j6VxJ5V#&j2g&3R0mI^ zUguX(?REVrHU+J9HR{0_w!+Prg4_t6z7+c~?sQcbP zb@U-B13zLi<_z#Q^AOY*aSUoHXQ1x)4

ZfcyZICz9zL>)K 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 B&G!HR delta 6006 zcmZwL33N_p0><(8%Vvp4f>e+Y5?c}?h6b%9h#(ajO2pb~Rc)zSYMp+TR_(Oc)`o7V z+M@Ecs?<6e+t^B%X_=;$mKxNwly+3-|Kz@zlnbURKJX_a#yx&v_ zSZX*bd5np|spX9sO8IP%HI!kz zT|*mbt&5d8k4JT+HKt)UYN{5XhW;H4!jI9bY2Hgg6@7{ou>>_DSFi&5*LJUmU}=Tc zx~Ti{7>q4Yze`7TAP<>6GtN5S-d}@iz^>Yizg|$x1r7OeR7m_5kwF+~SY!N5r^mB^?tvAAnk0b7Q>j9Bt(S(``=J8$V!6&co`u zizpK{v?EY2o{Soa*HJxLjsCa+^;{upM0TM%c-VRxHA4Tuhwv9Kh1nFE(=AQGPHcpS zF&TeCExtJZsAru~Yh?m9#urfyFSH&)jnsK$nV4Tu&pp6a(C^bx?|l}vt-Wtkc#6W0 zs0SZo@5mRBwwd=(FFb;p({nfr@1mw^CgVuatUxtdsG-@9YWW$|YQKX)SedtLEkvM(xW2W8z1{)!`<_@HN1}c|9<|8lp|
*&; z+lOlSY1DhqV<7dLpD2{aJ6HidELl|$jC9`AMK!Psmcv}s2WJp!O2(j`Uw~@RYOIL6 zP#rmBJ%Q@T7np=suyp^|OmKUifNDSr>P78PJ?V#P$OKfyZ=!lsgxZG1)(fbi^<$5z zLp4z&5^HUYsyGSNkwJ-!zlLNe7h2-;n2ejO-=MZhSQB?Kb;UH!y{K>b9@MJ7fqJeE zCoQlaYAq~AZkhF{3cs|LpgMM`DdS&&UNGHv=sD@VJ zB1Mymd@M~q>i&FteLLzsmr>6L@+S*ZP`hh}mx30_8l+L?5URr4$htF8>>=3^`4pIZ zRF7Uk-f8w=6}*AE@6Z1->3t3GVa&o@d>PfS67<7hhDlTHtxTa6g-EQ1IampwMt>ZO znwkly=Qg8y^gV{4KR5M!I0j>FdmfJ!IZr_ieS1{JS*Yi-k+tJBc@#8P6EWID&oGno zEf2bj>lf52j!1DE7-daH^*9qXWy4S(DhJh|4X7S|gw=7MJ^u>TfD0I={r@9{s$5X_ z*b$~0w!<{kE|`uHSb$nITTzSc7;2SQXzfl}71YqDU?}!OP0rPb$>b-fW z@4yID#m}KSFs&`)uN#ZGpea~}YQP3m1By@;?nce!VN^w@QO{jO_4q1Q$DmYqh-;(H zTchshpgKANwU$PsrfNbeD&Ogm7E>{Ha7-9!yxNSb>;3AOk#Q5B9x zy?8cO!%f%__o06G1L{4&>F&0T^V&iRvYt#9>cN?)mafH`xCu292T?sgg&Mi9QB(9S zs^QmB9s1oG)Xr^aD6)}E1N<`%K#ipL429Yhu3`fWZtpIp=BVA!9W@n`Q9YW4YES{H zC)@1x6Bxz$MQntg4(|Knu_@;{n2po$2|SK`=)9&`hFeiD)QhK~)E+@ z61C{gqF!(b)#E#;hK6@>&+B7(&Qmb}J7ExZMLpLOwU&mW8ult`v99aF_^YCAT+lw< zk6Hs~Q4P6``he8Ta$l5)8p?Fkh~%QS-6&K8UPAS7A*umOFcAx|0vi$wp!Ou|*4`GQXVIx$9eJ~gYqed_v z)nG5GBg<8Yrcj7#*-_N0FR|XmTAbJD=C1aZsFCS~rE_Yp&%s!(uSbp8F|3az$mib# zc6Udt9cl`4QESLMl7fbQ9%^paqFS~a_2B1N2d|)hQ1MZ>g2oub`9r7<^hXWpWTefe z5S!v%)NV@1ai=H=`9zpj$osu!3I(mk#i+%z0w2Ux*a|;GjX+2bcPJZU2OI5J51+N?V^AHLfa>sa^l1OT&dEQ?5uz5S6Nmioaf=I|kbjXldovH&g=QET zNuDHH2ei5L(5LnlTONQ~3oXfGM4eXsro2Zb_fXFnG4s7WpNfAa{yd{z?i+(kZjok8!C|5;!(%vBEg+M~w`3jBv4^}t zc96@Y?C3?|v^{wkHRsxjWyebtO6;TTMP9N#q?ejeJUUj3?OYv9Ra+zDlR4q$tLn0d4!bCe1U>$*@$WnVQu9DwLzD_v2V_eNftY^!ixSbp% z8%P?_@g_M({!Nle+3~e4XdC{WTp)GG%fyccet|uSj-f7Q4z5-I-={E|93yK;At@sF zAMu>5ClknBdt<*rh&g4Jy~2y5AL z6iy*!zr9GgnZ5V_h`jIOODok z!Q?pEOui)T$WP=R@gvWYEYgNNLza=cB%6fkRoy8JBszkrd=&>R#2wDQCYO9gO*1`?U$bbZd9xkPqLj)`mE>3_Be{ofUGkSfzQR_;9^Z>?7Ww=7 zr@rUs3vaj0<2&2_U61o-#(Afx<5XurW|Fff^X+myM~)vhZb*Jn=hQ%_Q+B$uKYO?{ wz1v>r@$T1reIAYTIJ0x&oKJGLI5T?0JKK8n_SNdSG|+dU&rXlCvG3IX031A|TL1t6 diff --git a/loko/interventions/locale/nl/LC_MESSAGES/djangojs.po b/loko/interventions/locale/nl/LC_MESSAGES/djangojs.po index 7f11361..5f4ebae 100644 --- a/loko/interventions/locale/nl/LC_MESSAGES/djangojs.po +++ b/loko/interventions/locale/nl/LC_MESSAGES/djangojs.po @@ -1206,6 +1206,97 @@ msgstr "Fout bij het opslaan" msgid "Erreur lors de la mise à jour" msgstr "Fout bij het bijwerken" +msgid "Favoris" +msgstr "Favorieten" + +msgid "Aucun favori enregistré" +msgstr "Geen opgeslagen favorieten" + +msgid "Mettre à jour avec les filtres actuels" +msgstr "Bijwerken met huidige filters" + +msgid "Sélectionner un favori" +msgstr "Selecteer een favoriet" + +msgid "Aucun filtre sélectionné (toutes les interventions)." +msgstr "Geen filter geselecteerd (alle interventies)." + +msgid "Thématique(s)" +msgstr "Thema('s)" + +msgid "Statut(s)" +msgstr "Status(sen)" + +msgid "Priorité" +msgstr "Prioriteit" + +msgid "Type maintenance" +msgstr "Onderhoudstype" + +msgid "Catégories" +msgstr "Categorieën" + +msgid "sélectionnée(s)" +msgstr "geselecteerd" + +msgid "Date début" +msgstr "Startdatum" + +msgid "Date fin" +msgstr "Einddatum" + +msgid "Non traitées (en retard)" +msgstr "Niet behandeld (achterstallig)" + +msgid "Suivies uniquement" +msgstr "Alleen gevolgde" + +msgid "Marché bloqué : Oui" +msgstr "Overeenkomst geblokkeerd: Ja" + +msgid "Marché bloqué : Non" +msgstr "Overeenkomst geblokkeerd: Nee" + +msgid "Localisations" +msgstr "Locaties" + +msgid "Filtres divers appliqués." +msgstr "Diverse filters toegepast." + +msgid "Filtre favori enregistré avec succès." +msgstr "Favoriet filter succesvol opgeslagen." + +msgid "Erreur lors de la sauvegarde du favori." +msgstr "Fout bij het opslaan van het favoriete filter." + +msgid "Erreur de communication avec le serveur." +msgstr "Communicatiefout met server." + +#, javascript-format +msgid "Voulez-vous vraiment supprimer le favori '%s' ?" +msgstr "Weet u zeker dat u favoriet '%s' wilt verwijderen?" + +msgid "Filtre favori supprimé." +msgstr "Favoriet filter verwijderd." + +msgid "Erreur lors de la suppression du favori." +msgstr "Fout bij het verwijderen van het favoriete filter." + +#, javascript-format +msgid "Mettre à jour le favori '%s' avec les filtres actuellement actifs ?" +msgstr "Favoriet '%s' bijwerken met momenteel actieve filters?" + +#, javascript-format +msgid "Favori '%s' mis à jour." +msgstr "Favoriet '%s' bijgewerkt." + +msgid "Erreur lors de la mise à jour du favori." +msgstr "Fout bij het bijwerken van het favoriete filter." + +#, javascript-format +msgid "Filtre '%s' appliqué." +msgstr "Filter '%s' toegepast." + #~ msgid "Veuillez entrer un entier de maximum 6 chiffres" #~ msgstr "Voer een geheel getal van maximaal 6 cijfers in" diff --git a/loko/interventions/static/interventions/interventions_index.js b/loko/interventions/static/interventions/interventions_index.js index d9656e4..f814750 100644 --- a/loko/interventions/static/interventions/interventions_index.js +++ b/loko/interventions/static/interventions/interventions_index.js @@ -314,6 +314,10 @@ document.getElementById('apply-filters').addEventListener('click', async functio if (filterModal) { filterModal.hide(); } + + if (typeof checkActiveFavoriteMatch === 'function') { + checkActiveFavoriteMatch(); + } }); @@ -361,6 +365,10 @@ document.getElementById('reset-filters').addEventListener('click', async functio // Update filter badge after URL change updateFilterBadge(); + if (typeof checkActiveFavoriteMatch === 'function') { + checkActiveFavoriteMatch(); + } + // Clear search input too $('#interventions-search-input').val(''); $('#interventions-search-clear').css('visibility', 'hidden'); @@ -2414,7 +2422,7 @@ function countActiveFilters() { 'provider', 'contract', 'assigned_team', 'assigned_member', 'assigned_controller', 'intervention_manager', 'inspector', 'pause_reason', 'begin_date_min', 'begin_date_max', 'end_date_min', 'end_date_max', 'locations', - 'overdue', 'to_be_planned_soon' + 'overdue', 'to_be_planned_soon', 'followed_only', 'is_blocked_due_to_contract' ]; filterParams.forEach(param => { @@ -2459,7 +2467,7 @@ function savePreferencesFromUrl() { 'provider', 'contract', 'assigned_team', 'assigned_member', 'assigned_controller', 'intervention_manager', 'inspector', 'pause_reason', 'begin_date_min', 'begin_date_max', 'end_date_min', 'end_date_max', 'locations', - 'overdue', 'to_be_planned_soon' + 'overdue', 'to_be_planned_soon', 'followed_only', 'is_blocked_due_to_contract' ]; filterParams.forEach(param => { @@ -2513,7 +2521,7 @@ async function savePreferencesFromForm(urlParams) { 'provider', 'contract', 'assigned_team', 'assigned_member', 'assigned_controller', 'intervention_manager', 'inspector', 'pause_reason', 'begin_date_min', 'begin_date_max', 'end_date_min', 'end_date_max', 'locations', - 'overdue', 'to_be_planned_soon' + 'overdue', 'to_be_planned_soon', 'followed_only', 'is_blocked_due_to_contract' ]; filterParams.forEach(param => { @@ -2566,6 +2574,7 @@ document.addEventListener('DOMContentLoaded', function() { updateFilterBadge(); initDateFilterPresets(); initRolePersonFilter(); + initFavoriteFilters(); // Save preferences when table sort changes (user action only) const $table = $('#interventions-table'); @@ -2579,6 +2588,7 @@ document.addEventListener('DOMContentLoaded', function() { // Update badge after page fully loads (including after filter redirect) window.addEventListener('load', function() { updateFilterBadge(); + checkActiveFavoriteMatch(); // Restore search input from URL if present const _urlParams = new URLSearchParams(window.location.search); @@ -3109,3 +3119,547 @@ function initDateFilterPresets() { updateDateFilterTimelinePreview(); } + +// ==================== Favorite Filters Management ==================== + +function initFavoriteFilters() { + renderFavoriteFiltersUI(); + checkActiveFavoriteMatch(); + + // Open save modal buttons + const btnOpenSave = document.getElementById('btn-open-save-favorite-modal'); + if (btnOpenSave) { + btnOpenSave.addEventListener('click', function(e) { + e.preventDefault(); + openSaveFavoriteModal(); + }); + } + + const btnModalSave = document.getElementById('modal-save-favorite-btn'); + if (btnModalSave) { + btnModalSave.addEventListener('click', function(e) { + e.preventDefault(); + openSaveFavoriteModal(); + }); + } + + // Modal favorite select change + const modalSelect = document.getElementById('modal-favorite-filter-select'); + if (modalSelect) { + modalSelect.addEventListener('change', function() { + if (this.value) { + applyFavoriteFilter(this.value); + } + }); + } + + // Confirm save button + const btnConfirmSave = document.getElementById('btn-confirm-save-favorite'); + if (btnConfirmSave) { + btnConfirmSave.addEventListener('click', function() { + confirmSaveFavorite(); + }); + } + + // Submit on Enter in save favorite modal + const saveNameInput = document.getElementById('save-favorite-name'); + if (saveNameInput) { + saveNameInput.addEventListener('keydown', function(e) { + if (e.key === 'Enter') { + e.preventDefault(); + confirmSaveFavorite(); + } + }); + } +} + +function renderFavoriteFiltersUI() { + const countBadge = document.getElementById('favorite-filters-count'); + const itemsContainer = document.getElementById('favorite-filters-items'); + const modalSelect = document.getElementById('modal-favorite-filter-select'); + + if (countBadge) { + countBadge.textContent = (typeof userFavoriteFilters !== 'undefined' && Array.isArray(userFavoriteFilters)) ? userFavoriteFilters.length : 0; + } + + if (itemsContainer) { + if (!userFavoriteFilters || !userFavoriteFilters.length) { + itemsContainer.innerHTML = ` +

  • + ${gettext('Aucun favori enregistré')} +
  • + `; + } else { + let html = ''; + userFavoriteFilters.forEach(fav => { + html += ` + + `; + }); + itemsContainer.innerHTML = html; + } + } + + if (modalSelect) { + const currentVal = modalSelect.value; + let selectHtml = ``; + if (typeof userFavoriteFilters !== 'undefined' && Array.isArray(userFavoriteFilters)) { + userFavoriteFilters.forEach(fav => { + selectHtml += ``; + }); + } + modalSelect.innerHTML = selectHtml; + modalSelect.value = currentVal; + } +} + +function getCurrentFilterValues() { + const form = document.getElementById('filter-form'); + const filters = {}; + if (!form) return filters; + const formData = new FormData(form); + + const multiFields = [ + 'thematic', 'status', 'priority', 'maintain_type', 'category', 'type', + 'provider', 'contract', 'assigned_team', 'assigned_member', 'assigned_control_team', + 'pause_reason' + ]; + + multiFields.forEach(field => { + const values = formData.getAll(field).filter(v => v.trim() !== ''); + if (values.length > 0) { + filters[field] = values; + } + }); + + const singleFields = [ + 'assigned_controller', 'intervention_manager', 'inspector', + 'begin_date_min', 'begin_date_max', 'end_date_min', 'end_date_max', + 'overdue', 'followed_only', 'to_be_planned_soon', 'is_blocked_due_to_contract' + ]; + + singleFields.forEach(field => { + const val = formData.get(field); + if (val && val.trim() !== '') { + filters[field] = val.trim(); + } + }); + + // Locations + if (typeof selectedLocations !== 'undefined' && selectedLocations.length > 0) { + filters['locations'] = selectedLocations.map(x => ({ ct: x.ct, obj: x.obj })); + } + + return filters; +} + +function areFilterObjectsEqual(f1, f2) { + if (!f1 || !f2) return false; + const keys1 = Object.keys(f1).filter(k => f1[k] !== undefined && f1[k] !== null && f1[k] !== '' && (!Array.isArray(f1[k]) || f1[k].length > 0)).sort(); + const keys2 = Object.keys(f2).filter(k => f2[k] !== undefined && f2[k] !== null && f2[k] !== '' && (!Array.isArray(f2[k]) || f2[k].length > 0)).sort(); + + if (keys1.length !== keys2.length) return false; + for (let i = 0; i < keys1.length; i++) { + const k = keys1[i]; + if (k !== keys2[i]) return false; + let v1 = f1[k]; + let v2 = f2[k]; + if (Array.isArray(v1) || Array.isArray(v2)) { + const arr1 = (Array.isArray(v1) ? v1 : [v1]).map(String).sort(); + const arr2 = (Array.isArray(v2) ? v2 : [v2]).map(String).sort(); + if (arr1.length !== arr2.length) return false; + for (let j = 0; j < arr1.length; j++) { + if (arr1[j] !== arr2[j]) return false; + } + } else if (k === 'locations') { + if (JSON.stringify(v1) !== JSON.stringify(v2)) return false; + } else { + if (String(v1) !== String(v2)) return false; + } + } + return true; +} + +function checkActiveFavoriteMatch() { + const currentFilters = getCurrentFilterValues(); + let matchedFav = null; + + if (typeof userFavoriteFilters !== 'undefined' && Array.isArray(userFavoriteFilters)) { + for (const fav of userFavoriteFilters) { + if (areFilterObjectsEqual(fav.filters, currentFilters)) { + matchedFav = fav; + break; + } + } + } + + const activeLabel = document.getElementById('active-favorite-label'); + const modalSelect = document.getElementById('modal-favorite-filter-select'); + + // Reset all star icons and active classes + document.querySelectorAll('.dropdown-item-favorite').forEach(el => el.classList.remove('active')); + document.querySelectorAll('.favorite-star-icon').forEach(icon => { + icon.className = 'bi bi-star favorite-star-icon text-muted'; + }); + + if (matchedFav) { + if (activeLabel) { + activeLabel.textContent = matchedFav.name; + } + const activeItem = document.getElementById(`fav-item-${matchedFav.id}`); + if (activeItem) { + activeItem.classList.add('active'); + } + const activeStar = document.getElementById(`fav-star-${matchedFav.id}`); + if (activeStar) { + activeStar.className = 'bi bi-star-fill favorite-star-icon text-warning'; + } + if (modalSelect) { + modalSelect.value = matchedFav.id; + } + } else { + if (activeLabel) { + activeLabel.textContent = gettext('Favoris'); + } + if (modalSelect) { + modalSelect.value = ''; + } + } +} + +function generateFilterSummary(filters) { + if (!filters || Object.keys(filters).length === 0) { + return `${gettext('Aucun filtre sélectionné (toutes les interventions).')}`; + } + const badges = []; + + if (filters.thematic && filters.thematic.length) { + const names = filters.thematic.map(code => { + const lbl = document.querySelector(`label[for="thematic_${code}"]`); + return lbl ? lbl.textContent.trim() : code; + }); + badges.push(`${gettext('Thématique(s)')} : ${names.join(', ')}`); + } + + if (filters.status && filters.status.length) { + const names = filters.status.map(s => { + const lbl = document.querySelector(`label[for="status_${s}"]`); + return lbl ? lbl.textContent.trim() : s; + }); + badges.push(`${gettext('Statut(s)')} : ${names.join(', ')}`); + } + + if (filters.priority && filters.priority.length) { + badges.push(`${gettext('Priorité')} : ${filters.priority.join(', ')}`); + } + + if (filters.maintain_type && filters.maintain_type.length) { + badges.push(`${gettext('Type maintenance')} : ${filters.maintain_type.join(', ')}`); + } + + if (filters.category && filters.category.length) { + badges.push(`${gettext('Catégories')} : ${filters.category.length} ${gettext('sélectionnée(s)')}`); + } + + if (filters.begin_date_min || filters.begin_date_max) { + badges.push(`${gettext('Date début')} : [${filters.begin_date_min || '—'} → ${filters.begin_date_max || '—'}]`); + } + if (filters.end_date_min || filters.end_date_max) { + badges.push(`${gettext('Date fin')} : [${filters.end_date_min || '—'} → ${filters.end_date_max || '—'}]`); + } + + if (filters.overdue === '1') { + badges.push(`${gettext('Non traitées (en retard)')}`); + } + if (filters.followed_only === '1') { + badges.push(`${gettext('Suivies uniquement')}`); + } + if (filters.is_blocked_due_to_contract === '1') { + badges.push(`${gettext('Marché bloqué : Oui')}`); + } else if (filters.is_blocked_due_to_contract === '0') { + badges.push(`${gettext('Marché bloqué : Non')}`); + } + + if (filters.locations && filters.locations.length) { + badges.push(`${gettext('Localisations')} : ${filters.locations.length}`); + } + + if (badges.length === 0) { + return `${gettext('Filtres divers appliqués.')}`; + } + + return badges.map(b => `
    ${b}
    `).join(''); +} + +function openSaveFavoriteModal(existingId = null) { + const currentFilters = getCurrentFilterValues(); + const modalEl = document.getElementById('saveFavoriteModal'); + if (!modalEl) return; + + const idInput = document.getElementById('save-favorite-id'); + const nameInput = document.getElementById('save-favorite-name'); + const summaryEl = document.getElementById('save-favorite-summary'); + + if (existingId) { + const existing = userFavoriteFilters.find(f => f.id === existingId); + if (existing) { + idInput.value = existing.id; + nameInput.value = existing.name; + } + } else { + idInput.value = ''; + nameInput.value = ''; + } + + if (summaryEl) { + summaryEl.innerHTML = generateFilterSummary(currentFilters); + } + + nameInput.classList.remove('is-invalid'); + const modal = bootstrap.Modal.getOrCreateInstance(modalEl); + modal.show(); + + setTimeout(() => { + nameInput.focus(); + }, 400); +} + +async function confirmSaveFavorite() { + const nameInput = document.getElementById('save-favorite-name'); + const idInput = document.getElementById('save-favorite-id'); + const name = nameInput.value.trim(); + if (!name) { + nameInput.classList.add('is-invalid'); + return; + } + nameInput.classList.remove('is-invalid'); + + const favoriteId = idInput.value || null; + const filters = getCurrentFilterValues(); + + try { + const response = await fetch(saveFavoriteUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + }, + body: JSON.stringify({ + id: favoriteId, + name: name, + filters: filters + }) + }); + + const data = await response.json(); + if (data.success) { + userFavoriteFilters = data.favorites; + renderFavoriteFiltersUI(); + checkActiveFavoriteMatch(); + + const modalEl = document.getElementById('saveFavoriteModal'); + const modal = bootstrap.Modal.getInstance(modalEl); + if (modal) modal.hide(); + + showToast(gettext('Filtre favori enregistré avec succès.'), 'success'); + } else { + alert(data.error || gettext('Erreur lors de la sauvegarde du favori.')); + } + } catch (err) { + alert(gettext('Erreur de communication avec le serveur.')); + } +} + +async function deleteFavoriteFilter(favoriteId, event) { + if (event) event.stopPropagation(); + const fav = userFavoriteFilters.find(f => f.id === favoriteId); + if (!fav) return; + + const confirmMsg = gettext("Voulez-vous vraiment supprimer le favori '%s' ?").replace('%s', fav.name); + if (!confirm(confirmMsg)) return; + + try { + const response = await fetch(deleteFavoriteUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + }, + body: JSON.stringify({ id: favoriteId }) + }); + + const data = await response.json(); + if (data.success) { + userFavoriteFilters = data.favorites; + renderFavoriteFiltersUI(); + checkActiveFavoriteMatch(); + showToast(gettext('Filtre favori supprimé.'), 'info'); + } else { + alert(data.error || gettext('Erreur lors de la suppression du favori.')); + } + } catch (err) { + alert(gettext('Erreur de communication avec le serveur.')); + } +} + +async function updateFavoriteWithCurrentFilters(favoriteId, event) { + if (event) event.stopPropagation(); + const fav = userFavoriteFilters.find(f => f.id === favoriteId); + if (!fav) return; + + const confirmMsg = gettext("Mettre à jour le favori '%s' avec les filtres actuellement actifs ?").replace('%s', fav.name); + if (!confirm(confirmMsg)) return; + + const currentFilters = getCurrentFilterValues(); + + try { + const response = await fetch(saveFavoriteUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + }, + body: JSON.stringify({ + id: favoriteId, + name: fav.name, + filters: currentFilters + }) + }); + + const data = await response.json(); + if (data.success) { + userFavoriteFilters = data.favorites; + renderFavoriteFiltersUI(); + checkActiveFavoriteMatch(); + showToast(gettext("Favori '%s' mis à jour.").replace('%s', fav.name), 'success'); + } else { + alert(data.error || gettext('Erreur lors de la mise à jour du favori.')); + } + } catch (err) { + alert(gettext('Erreur de communication avec le serveur.')); + } +} + +async function applyFavoriteFilter(favoriteId) { + if (!favoriteId) return; + const fav = userFavoriteFilters.find(f => f.id === favoriteId); + if (!fav) return; + + const form = document.getElementById('filter-form'); + if (!form) return; + + // 1. Reset all fields first + form.reset(); + form.querySelectorAll('input[type="checkbox"]').forEach(checkbox => { + checkbox.checked = false; + }); + + document.getElementById('begin_date_min').value = ''; + document.getElementById('begin_date_max').value = ''; + document.getElementById('end_date_min').value = ''; + document.getElementById('end_date_max').value = ''; + + const blockedSelect = document.getElementById('is_blocked_due_to_contract'); + if (blockedSelect) blockedSelect.value = ''; + + selectedLocations = []; + + // 2. Restore values from fav.filters + const filters = fav.filters || {}; + for (const [key, value] of Object.entries(filters)) { + if (key === 'locations') { + try { + let locs = value; + if (typeof locs === 'string') { + locs = JSON.parse(locs); + } + if (Array.isArray(locs)) { + selectedLocations = locs; + } + } catch (e) { + selectedLocations = []; + } + } else if (['begin_date_min', 'begin_date_max', 'end_date_min', 'end_date_max'].includes(key)) { + const input = document.getElementById(key); + if (input) input.value = value; + } else if (key === 'is_blocked_due_to_contract') { + if (blockedSelect) blockedSelect.value = value; + } else { + // Checkboxes + const valList = Array.isArray(value) ? value.map(String) : [String(value)]; + form.querySelectorAll(`input[type="checkbox"][name="${key}"]`).forEach(cb => { + cb.checked = valList.includes(String(cb.value)); + }); + } + } + + renderLocationChips(); + togglePauseReasonFilter(); + filterCategoriesByThematics(); + filterProvidersAndContracts(); + updateDateFilterTimelinePreview(); + + // 3. Build URL params & save preferences + const formData = new FormData(form); + const params = new URLSearchParams(); + for (const [k, v] of formData.entries()) { + if (v.trim() !== '') params.append(k, v); + } + if (selectedLocations.length) { + const payload = selectedLocations.map(x => ({ ct: x.ct, obj: x.obj })); + params.set('locations', JSON.stringify(payload)); + } else { + params.delete('locations'); + } + + // Save as current active preferences + await savePreferencesFromForm(params); + + // Preserve search input if present + const _activeQ = $('#interventions-search-input').val().trim(); + const _activeMode = document.querySelector('input[name="search-mode"]:checked')?.value || 'and'; + if (_activeQ) { + params.set('q', _activeQ); + params.set('search_mode', _activeMode); + } + + // Update URL & filter badge + const newUrl = `${window.location.pathname}?${params.toString()}`; + window.history.pushState({}, '', newUrl); + updateFilterBadge(); + + // Reload table and map data + handleGeojsonMapLoading(false, interventionsgeojsonloader, 'interventions'); + interventionsgeojsonloader.loadGeojson(interventionsgeojsonUrl + '?' + params); + + // Update active label and stars + checkActiveFavoriteMatch(); + + // Close modal if open + const filterModalEl = document.getElementById('filterModal'); + if (filterModalEl) { + const filterModal = bootstrap.Modal.getInstance(filterModalEl); + if (filterModal) filterModal.hide(); + } + + showToast(gettext("Filtre '%s' appliqué.").replace('%s', fav.name), 'info'); +} + +// Make functions globally available for inline onclicks +window.applyFavoriteFilter = applyFavoriteFilter; +window.deleteFavoriteFilter = deleteFavoriteFilter; +window.updateFavoriteWithCurrentFilters = updateFavoriteWithCurrentFilters; +window.openSaveFavoriteModal = openSaveFavoriteModal; diff --git a/loko/interventions/templates/interventions/interventions_index.html b/loko/interventions/templates/interventions/interventions_index.html index 8ba11e9..812d3dc 100644 --- a/loko/interventions/templates/interventions/interventions_index.html +++ b/loko/interventions/templates/interventions/interventions_index.html @@ -45,6 +45,29 @@ margin-top: 2px; } + .dropdown-item-favorite { + transition: background-color 0.15s ease; + border-radius: 4px; + margin: 2px 4px; + } + .dropdown-item-favorite:hover { + background-color: #f1f5f9; + } + .dropdown-item-favorite.active { + background-color: #e7f1ff; + } + .dropdown-item-favorite.active .fav-name { + color: #0c5cc9; + font-weight: 600 !important; + } + .favorite-actions button { + opacity: 0.6; + transition: opacity 0.15s; + } + .dropdown-item-favorite:hover .favorite-actions button { + opacity: 1; + } + .popup-scrollable { max-height: 200px; overflow-y: auto; @@ -555,6 +578,20 @@ + + +
    @@ -1225,18 +1298,40 @@