Imprezy

Z Wiki - coigdzie.pl
Wersja z dnia 09:32, 29 mar 2019 autorstwa Paulina (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Imprezy służą do zbierania informacji o wydarzeniach, których nie da się przypisać do pozostałych baz. Ponadto do imprez dodawane są przez automaty wydarzenia, które następnie zapisywane są przez redaktorów we właściwych feed'ach.

Atrybuty imprez

Polami obowiązkowymi w imprezie są:

  • Nazwa (rozpoczyna się wielką literą, nie kończy kropką, nie jest w całości pisana wielkimi literami ani brana w cudzysłów);
  • Data i czas startu (gdy godzina startu nie jest znana, pozostawiamy 00:00);
  • Data i czas końca (gdy godzina końca nie jest znana, pozostawiamy 23:59);
  • Kategoria;
  • Lokalizacja.

Dodatkowo impreza może posiadać atrybuty:

  • Opis (nie powinien przekraczać 1500 znaków);
  • Link imprezy (powinien kierować bezpośrednio do podstrony z uzupełnianym wydarzeniem na stronie www organizatora/FB);
  • Wstęp (może przyjmować wartości: '-1' - cena nieznana, '0' - wstęp wolny lub dowolną wartości naturalną odpowiadającą najniższej cenie biletu normalnego);
  • Tagi;
  • Organizator;
  • Źródło;
  • Link do obrazka (obrazki mogą mieć co najmniej 288 px szerokości albo 384 px wysokości; mogą to być plakaty imprez, logotypy organizatorów, unikamy natomiast dodawania zdjęć);
  • Linki do systemów biletowych (uzupełniane automatycznie, ale pola są edytowalne, można w nich wprowadzać ręczne zmiany w admince).

Import imprez

Importer zadań czyta pliki XML zapisane w katalogu 'input' i po udanym imporcie przenosi je do katalogu 'output', a w przypadku niepowodzenia importu zapisuje je w katalogu 'errors'. Głównym elementem importowanego pliku jest <happenings> i musi zawierać atrybut "username" zawierający nazwę użytkownika. Element <happenings> zawiera listę elementów <happening> zawierających dane o imprezie. Po sparsowaniu tego pliku otrzymujemy listę imprez.

Po wczytaniu pliku xml importu pobieramy listę wszystkich przyszłych wydarzeń dodanych przez danego użytkownika. Każda wczytywana impreza przechodzi przez następujące etapy:

  • sprawdzamy, czy posiada ustaloną kategorię i jeśli nie to ją obliczamy;
  • sprawdzamy, czy impreza jest w kategorii kultura/film. Jeśli tak to uznajemy, że jest to pokaz filmowy i takiej imprezy nie importujemy;
  • sprawdzamy, czy impreza się nie zakończyła;
  • sprawdzamy, czy impreza od tego dostawcy już jest w bazie, jeśli impreza jest w bazie, jest usunięta i nie czeka do moderacji, to ją pomijamy;
  • sprawdzamy, czy impreza jest zgeokodowana (tj. czy ma przypisaną lokalizację), jeśli nie, to próbujemy ją geokodować, jeśli geokodowanie się nie powiedzie, to ją pomijamy;
  • sprawdzamy, czy impreza jest w kategorii kultura/teatr, jeśli tak to próbujemy rozdystrybuować bilety, a samej imprezy dalej nie importujemy;
  • sprawdzamy, czy impreza nadaje się to opublikowania, czy też musi być moderowana przez redaktorów;
  • jeśli imprezy o takim happeningVendorId nie ma w bazie, to ją zapisujemy;
  • jeśli impreza o takim happeningVendorId jest w bazie i jest w moderacji lub jeśli impreza w bazie nie jest do moderacji i nie jest usunięta, a nowa impreza nie musi być moderowana, to aktualizujemy imprezę z bazy.

Aktualizacja imprezy

Aktualizacji podlegają pola:

  • nazwa;
  • czas startu;
  • czas końca;
  • opis;
  • kategoria;
  • opis lokalizacji;
  • cena;
  • informacja o odwołaniu;
  • licznik uczestników;
  • priorytet;
  • jeśli opis lokalizacji uległ zmianie, to aktualizujemy lokalizację;
  • jeśli impreza w bazie nie miała ustawionych tagów, to aktualizujemy tagi;
  • jeśli impreza w bazie nie miała organizatora, to aktualizujemy organizatora;
  • jeśli się zmienił, to aktualizujemy link do obrazka.