PanelistTeam / panelist-potato

Project Panelist: Web and API backend
0 stars 0 forks source link

Testujcie, pytajcie, piszcie co nie działa #33

Closed Arcom96 closed 6 years ago

Arcom96 commented 6 years ago

Tutaj jest tylko część UI co robił @Kainsiel , bo nie jestem pewien, czy wszystko już na 100% działa Powinno działać: Dodawanie/edycja/usuwanie pytań Głosowanie Rejestracja użytkownika przez social media/swoje konto Dodawanie/usuwanie pokojów Podgląd wcześniejszych wersji pytania Omówienie widoków:

  1. ShowVersions:
    • Służy do przeglądania wszystkich wersji pytania
    • Pokazuje je w ShowVersions.html
    • Logika znajduje się w VersionsManager; do template przesyłana jest lista wersji danego pytania; porusza się po przechodzeniu z pytania na jego poprzednika
  2. Signup:
    • Służy do rejestrowania się "ręcznego"(bez social media)
    • Template nazywa się signup
    • Logika znajduje się w SignUpManager - o jej szczegóły trzeba pytać @Kainsiel
  3. search:
    • Służy do przeglądania/dodawania/usuwania pokoi
    • Pokazuje je w Search.html
    • Logika znajduje się głównie w SearchManager(dla usuwania w RemoveRManager); na początku w SearchManager sprawdzane jest, który z formularzy został wysłany (remove or add) i zachowuje się odpowiednio- jeśli dodany, to wypełniany jest obiekt room(wysyła się go do bazy danych), a później room1(return wymagał typu dict, dlatego go dodałem); w przypadku usuwania to najpierw usuwane są wszelkie powiązania między obiektami (głosy, pytania(oraz ich wersje), a następnie same obiekty i na końcu usuwany jest pokój. W pliku views.py w metodzie search w 1. linii znajduje się lista, do której dodawane są wszystkie pokoje i wysyłane do html;
  4. ShowQuestions -Służy do przeglądania/dodawania/oceniania/edytowania/usuwania pytań

    • Pokazuje je w Questions.html
    • Główna logika formularzy znajduje się w ChooseFormManager. W niej na podstawie hidden label z formularza decydowane jest, który formularz został wysłany i na podstawie tej informacji następuje przekierowanie do odpowiedniego Managera:

    EditManager pozwala na edycję pytań; Nowe pytanie przyjmuje wszystkie wartości starego pytania, oprócz treści i pola "previous_version"; wszystkie wcześniejsze wersje tego pytania mają zmienianą wartość pola "Current_version"

    DeleteManager działa analogicznie do RemoveRManager

    ShowQManager Dodaje do listy wszystkie pytania, które pole current_version mają równe null oraz zgadza się id pokoju; za każdym razem podliczana ( i przypisywana) jest suma oddanych na to pytanie głosów

    VoteManager dodaje nowe głosy i jeśli ktoś już głosował, to usuwany jest stary głos i dodawany jest nowy- to powinno trochę inaczej działać (zamiast dodaj-usun to powinno być update), ale z tym miałem drobne problemy i uznałem "na razie walić to" Metoda zwraca zaaktualizowane pytanie

    AddQManager zarządza dodawaniem nowych pytań; działa analogicznie do AddRoom

    Logiki js nie będę tutaj teraz omawiał, jeśli ktoś będzie chciał to jutro(09.06.18r) mogę to omówić.

baatochan commented 6 years ago

Niech nikt tego nie merguje dopuki nie doloze tu swojego brancha