markonix
26.02.2017, 18:51:55
Jakbyście rozwiązali takie case.
Dane w systemie podzielone są na regularne interwały, powiedzmy rok szkolny albo sezon.
Użytkownik po wejściu do systemu ma wczytany domyślny rok z możliwością przełączania się do "archiwów" w dowolnym momencie.
Zmiana ta zapisywana jest w sesji i bieżący rok wczytywany jest "wysoko" w kodzie tak aby mieć dostęp do current / selected year.
No i fajnie działa, od strony użytkownika fajnie to wygląda bo może przeładować system i wczytać dane.
Jest tylko jeden problem - powiedzmy jak to w systemach mamy powiadomienia - taki dymek na górze i jako, że jeden użytkownik może mieć i kilka takich sezonów (nawet i jednocześnie).
Powiadomienia raczej dobrze by było aby dotyczyły wszystkich jego zasobów, a nie tylko current bo tam samo na FB chcesz mieć powiadomienia z Twojego profilu jak i profilów, które obsługujesz.
Po kliknięciu w powiadomienie z NIE current spowoduje błąd lub wczyta mu się błędny zasób po powiedzmy ma powiadomienie o komunikacie, ale gdy wejdzie w /messages to nie zobaczy te o którym mówi powiadomienie.
Propozycje jak to rozwiązać? Koncepcyjnie albo bardziej technicznie, powiedzmy w Laravel.
lukaskolista
27.02.2017, 08:36:40
Koncepcyjnie jest to bardzo dziwnie rozwiązane.
Cytat
Zmiana ta zapisywana jest w sesji i bieżący rok wczytywany jest "wysoko" w kodzie tak aby mieć dostęp do current / selected year.
Jest wczytywany, czyli co się dzieje? Bo bardzo ogólnie opisałeś problem.
markonix
27.02.2017, 15:42:15
Zapisywany jest w sesji tak aby w dowolnym kontrolerze móc powiedzmy zrobić coś w stylu:
Model::whereSeason($currentSeason->id)->get();
Jako, że większość danych właśnie jest przypisana do konkretnego roku.
To taka analogia jak pobieranie wg zalogowanego użytkownika.
Pyton_000
27.02.2017, 16:49:32
No to zrób przeciążanie np. na podstawie url. Jeśli wystąpi w url specyficzny rok to będzie on nad tym co jest w sesjii
markonix
27.02.2017, 20:27:20
W URL znajduje się ID zasobu, nie roku.
Musiałbym najpierw pobrać ID roku, sprawdzić czy jest zbieżny z currentYear i dopiero podjąć kroki i mówisz o nadpisaniu sesji czy nadpisaniu w tym konkretnym wywołaniu currentYear.
Najbardziej userfriendly wydaje mi się rozwiązanie takie:
1) User ma włączony 2017
2) Klika powiadomienie z 2016
3) Wyświetla się komunikat "Wybrany zasób pochodzi z roku 2016. Czy chcesz teraz przełączyć system?".
4) Przełącza sesje i wyświetla dane.
Fajnie by to rozwiązać globalnie i troszkę jest problematyczne gdyby ktoś miał drugą kartę otwartą np. na edycji roku.