[Symfony][Admin Generator] Strony elementów, rozwinięta hierarchia |
[Symfony][Admin Generator] Strony elementów, rozwinięta hierarchia |
4.11.2010, 14:45:59
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.05.2009 Ostrzeżenie: (0%) |
Witam
Mam problem z trochę niestandardową rozbudową panelu admina w Symfony. Baza w skrócie wygląda tak: Oferta: - id - nazwa Turnus: - id - id_oferty - termin Dojazd: - id - id_turnusu W SF bez problemu można zrobić strony do edycji każdego z tych elementów oddzielnie, jednak próbuję zrobić to trochę inaczej. Na stronie z (np.) lista ofert dodać w generator.yml -> list -> object_actions funkcje 'Turnusy' i teraz czy jest jakiś gotowy mechanizm który uprości wyświetlenie listy turnusów tylko dla danej oferty i później schodząc w dól dla Turnusu listę dojazdów i powrotów czy raczej będzie trzeba z palca wszystko pisać? |
|
|
4.11.2010, 14:57:30
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
tutaj lub 40 slajd tutaj
|
|
|
5.11.2010, 12:30:50
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.05.2009 Ostrzeżenie: (0%) |
W sumie nie myślałem żeby zrobić to przez filtry, ale faktycznie działa bardzo ładnie, a wystarczy dodać kilka linijek kodu:). Przy tym rozwiązaniu jest jednak problem przy dodawaniu nowych terminów. W momencie tworzenia nowego turnusu nie mogę automatycznie ustawić oferty do której ma należeć turnus na aktualnie ustawioną w filtrach, a przy nawet 100 ofertach nie ma opcji żeby wybierać z listy.
Kombinowałem trochę z rozwiązaniem tego na poziomie klasy formularza ale nie podoba mi się ta opcja. Kolejna opcja jest nadpisanie domyślnej metody _new i to chyba najlepsza opcja. Która z tych opcji jest najbardziej warta uwagi? |
|
|
5.11.2010, 14:21:32
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Zależy gdzie chcesz dodawać.
1. Stwórz dodatkową rutę sfDoctrineRoute, zwracającą obiekt Oferta, kierującą do moduły Turnus i akcji np newFromOferta 2. W liście ofert dodaj object_action np. "Dodaj turnus" 3. Nadpisz generowanie linka do tej akcji w OfertaGeneratorHelper, tak żeby wykorzystać rute z pkt. 1 4. Stwórz dodatkową akcję newFromOferta tak żeby przyjmowała obiekt z routy.
Cytat W momencie tworzenia nowego turnusu nie mogę automatycznie ustawić oferty do której ma należeć turnus na aktualnie ustawioną w filtrach Teoretycznie możesz, wartości filtra trzymane są w sesji i możesz się do nich dobrać poprzez sf_usera. W samej akcji jest to jeszcze prostsze, bo masz metodę proxy TurnusActions::getFilters(). Mimo wszystko - to brzydki hack! Admin Generator ma swoje granice. edit: Poprawiłem kod akcji. Ten post edytował LBO 5.11.2010, 14:25:09 |
|
|
5.11.2010, 16:06:09
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 21.05.2009 Ostrzeżenie: (0%) |
Ale w tym przypadku dodawanie nowego turnusu odbywa się z listy ofert, a nie jak powinno być z listy turnusów. Route nie przechowa mi obiektu przez 2 requesty chyba, że jakoś jawnie przepisze o ile się da?
Jak bardzo złą praktyka było by ustawienie atrybutu z id oferty podczas przechodzenia do listy turnusów z object_actions, i później podczas tworzenia nowego turnusu pobrać ten atrybut i ustawić jako ofertę? |
|
|
5.11.2010, 16:51:23
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Zrób jak uważasz za słuszne, ja tylko zwracam uwagę, że jak byś napisał to sam - od podstaw - to już byś miał gotowe.
AG ma to do siebie, że dosyć często trzeba go hackować. P.S. To jest brzydki hack, ae najważniejsze, że można napisać go "bezpiecznie". |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 20:23 |