User activities (PL)

Koncepcja

Aktywności użytkownika - wykorzystywane są do przechowywania i zbiorczego prezentowania działań użytkownika w Filmasterze, w wersji 1.0 dostępne rodzaje aktywności to:

  • wpis blogowy
  • krótka recenzja
  • komentarz
  • link do zewnętrznej strony
  • rozpoczęcie obserwowania innego użytkownika
  • zameldowanie (check-in) na seans

Dla wersji 1.0 aktywności wykorzystywane są na planecie Filmastera oraz na publicznych profilach użytkowników.

Status i typ aktywności

Typ aktywności stanowiony jest przez przypisane wartości typu integer, odpowiednio:
1 - wpis blogowy
2 - krótka recenzja
3 - komentarz
5 - link
6 - rozpoczęcie obserwacji
7 - check-in

Statusy aktywności to:
1 - aktywność opublikowana, wyświetlana
2 - szkic wykorzystywane tylko przez wpisy blogowe
3 - aktywność usunięta, nie wyświetlana

Tworzenie i modyfikacja aktywności

Aktywności tworzone są poprzez wywołanie metody save_activity() w metodzie save danego obiektu (komentarza, krótkiej recenzji itp.). Metoda sprawdza czy istnieje aktywność dla danego obiektu - jeśli istnieje to aktualizowane są jej pola, jeśli nie istnieje to tworzona jest nowa aktywność. Wyjątkiem jest tworzenie aktywności dla wpisu blogowego, ze względu na działanie relacji wiele-do-wielu w orm django która wymaga zapisu notki do bazy przed zapisaniem relacji, jako ostatnia tworzona jest aktywność tak aby zapisać w niej dane powiązanego filmu.

Model

Model aktywności zdefiniowany jest w film20.useractivity.models.UserActivity, zawiera następujące pola:

  • activity_type - typ aktywności, integer
  • status - status aktywności, integer
  • permalink - permalink obiektu powiązanego z aktywnością (pole tekstowe)
  • user - użytkownik, twórca aktwyności (klucz obcy)
  • username - nazwa użytkownika (pole tekstowe)
  • object - relacja do obiektu (klucz obcy)
  • watching_object - obserwowany obiekt
  • post - wpis blogowy powiązany z aktywnością (klucz obcy)
  • short_review - krótka recenzja powiązana z aktywnością (klucz obcy)
  • comment - komentarz powiązany z aktywnością (klucz obcy)
  • link - link powiązany z aktywnością (klucz obcy)
  • film - relacja do powiązanego filmu (klucz obcy)
  • checkin - check-in do kina (klucz obcy)
  • title - tytuł aktywności
  • content - treść aktywności
  • film_title - tytuł powiązanego filmu (zlokalizowany)
  • film_permalink - permalink do filmu
  • url - url z obiektu typu link
  • url_kind - typ aktywności linkowej
  • video_thumb - url do miniaturki wideo na youtube.com
  • spoilers - spoilery, wykorzystywane przez wpisy blogowe
  • is_first_post - pierwszy komentarz w wątku na forum
  • number_of_comments - liczba komentarzy dla obiektu powiązanego z aktywnością (np komentarze pod wpisem blogowym)
  • channel_name - nazwa kanału (kina) do którego zameldował się twórca aktywności
  • channel - relacja do kanału (kina)
  • checkin_date - data i godzina seansu na który zameldował się użytkownik
  • rating - relacja do oceny (klucz obcy)
  • modified_at - data modyfikacji aktywności
  • created_at - data utworzenia aktywności
  • LANG - wersja językowa aktywności (PL lub EN)
  • is_sent - czy notyfikacja dla aktywności została wysłana

Dostępne metody dla obiektu UserActivity:

  • get_title - zwraca tytuł aktywności
  • get_kind - zwraca nazwę rodzaju aktywności
  • get_url_kind - zwraca nazwą rodzaju linku - dla aktywności typu link
  • get_absolute_url - zwraca url dla obiektu powiązanego z aktywnością

Dostępne managery dla zapytań:

  • fliter - standardowy manager filter z dodanym warunkiem LANG=LANGUAGE_CODE
  • all_public - zwraca wszystkie opublikowane aktywności
  • followers(user) - zwraca wszystkie publiczne aktywności osób obserwowanych przez danego usera
  • all_notes - zwraca wszystkie publiczne notki blogowe
  • all_reviews - zwraca wszystkie publiczne krótkie recenzje
  • all_links - zwraca wszystkie publiczne linki
  • all_for_user(user) - zwraca wszystkie publiczne aktywności dla podanego usera
  • notes_for_user(user) - zwraca wszystkie publiczne wpisy blogowe dla podanego usera
  • reviews_for_user(user) - zwraca wszystkie krótkie recenzje dla podanego usera
  • comments_for_user(user) - zwraca wszystkie publiczne komentarze dla podanego usera
  • links_for_user(user) - zwraca wszystkie linki dla podanego usera

Helpery

Wykorzystywany jest obecnie jedynie metoda get_activities() z helpera film20.useractivity.useractivity_helper. Zwraca on wyfiltrowaną w zależoności od podanych parametrów listę aktywności. Metoda pobiera argumenty:

get_activities(self, request, all_activities, reviews, most_interesting_reviews, shorts, comments,
links, all_users, followed, similar_taste, favorites, follows=False, checkins=False, username=None, exclude_query = None)

TODO: przenieść metodą do managerów w następnej wersji.

Szablony

Główny szablon wyświetlający planetę - templates/planeta.html w nim w zależności od rodzaju aktywności dołączane są szablony poszczególnych aktywności znajdujące się w katalogu templates/planet/ te same szablony ładowane są przez szablon templates/widget/recent_user_activity.html w celu wyświetlenia aktywności na publicznym profilu użytkownika.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.