Dev:UseCases/Detail skupiny
Navigation: Dev:UseCases.
Contents |
Detail skupiny
Pokud jsou v systemu povoleny skupiny (atribut GlobalSettings.Group.hide_all_groups), zobrazi se navstevnikovi tento detail skupiny.
Navstevnikovi se zobrazi jmeno skupiny (atribut Group.name), jeji popis (atribut Group.description), vlastnik skupiny (atribut Group.owner) a kategorie, do ktere skupina patri (zjistena pomoci atributu Group.category).
Take sa zobrazi celkovy pocet prispevku v diskuzi skupiny a pokud smi navstevnici cist diskuzi skupiny (atribut Group.Rules.public_discussion), tak se navstevnikovi zobrazi i nekolik poslednich prispevku.
Pokud maji navstevnici pravo prohlizet si seznam clenu skupiny (atribut Group.Rules.hide_list_of_members), tak se navstevnikovi zobrazi prehled clenu a moderatoru skupiny (atributy UserInGroup.state).
Uzivateli, ktery je clenem skupiny, se take zobrazi jeho stav ve skupine (atribut UserInGroup.state) a pokud je uzivatel ve skupine zakazan, tak se mu zobrazi i duvod zakazani (atribut UserInGroup.reason).
Moznosti
Pokud maji navstevnici pravo cist diskuzi (atribut Group.Rules.public_discussion), muze si navstevnik zobrazit diskuzi skupiny, coz bude popsano v kapitole Diskusia skupiny.
Pokud uzivatel neni clenem skupiny, muze do ni vstoupit, coz bude popsano dale. Pokud uzivatel je clenem skupiny, muze mit moznost z ni vystoupit, coz bude popsano dale. Pokud je ale uzivatel ve skupine zakazan (atribut UserInGroup.state), vystoupit z ni nemuze.
Pokud jsou v systemu povoleny notifikace (atribut GlobalSettings.Notification.hide_all_notifications), muze mit uzivatel moznost vytvorit si notifikace k teto skupine nebo je zmenit ci zrusit, pokud uz ma nejake notifikace nastavene, jak bude popsano dale.
Clen skupiny si muze zobrazit prehled vsech clenu skupiny, coz bude popsano v kapitole Uzivatelia skupiny.
Vlastnik skupiny muze zmenit atributy skupiny, coz bude popsano dale.
Vlastnik skupiny muze skupinu smazat, coz bylo popsano v kapitole Prehlad skupin.
Vstup a vystup ze skupiny
Pokud uzivatel neni clenem skupiny, muze do skupiny vstoupit.
Pokud uzivatel je clenem skupiny, muze mit moznost z ni vystoupit.
Vstup do skupiny
Pokud jsou v systemu povoleny skupiny (atribut GlobalSettings.Group.hide_all_groups) a pokud uzivatel neni clenem vybrane skupiny, muze do vybrane skupiny vstoupit. Uzivatel take uz muze byt do skupiny pozvan (atribut UserInGroup.state).
V pripade, ze se uzivatel rozhodne vstoupit do skupiny, se zjisti, zda je vyzadovano potvrzovani novych clenu skupiny. Pokud uzivatel neni pozvan do skupiny a pokud je vyzadovano potvrzovani novych clenu skupiny (atribut Group.Rules.free_join), je nastaven stav uzivatele ve skupine na cekajici na potvrzeni (atribut UserInGroup.state). Jinak je nastaven stav uzivatele ve skupine na clen skupiny.
Pokud jsou v systemu povoleny notifikace (atribut GlobalSettings.Notification.hide_all_notifications) a pokud je stav noveho clena skupiny nastaven na cekajici na potvrzeni (atribut UserInGroup.state), zjisti se, zda maji nejaci moderatori skupiny vytvorenou notifikaci k teto skupine a to notifikaci typu novy clen cekajici na potvrzeni (atribut GroupNotification.type). Temto uzivatelum se prida email do seznamu neposlanych emailu.
Vyplni se atributy emailu, podrobny popis je uveden ve tride Mail:
- jako typ emailu (atribut Mail.type) se doplni notifikace o novem clenu cekajicimu na potvrzeni,
- do subjectu (atribut Mail.subject) se doplni identifikace skupiny,
- v textu emailu (atribut Mail.text) bude identifikace noveho clena skupiny (trida User).
Vystup ze skupiny
Uzivatel muze mit moznost vystoupit ze skupiny v pripade, ze uz nadale nechce byt clenem skupiny.
Pokud jsou v systemu povoleny skupiny (atribut GlobalSettings.Group.hide_all_groups) a pokud uzivatel neni ve skupine zakazan (atribut UserInGroup.state), muze uzivatel ze skupiny vystoupit. Pokud je ve skupine zakazan, vystoupit z ni nemuze.
Pri vystoupeni uzivatele ze skupiny se jeho prispevky do diskuze nesmazou, zustanou i nadale v diskuzi skupiny. Vystoupenim ze skupiny take uzivatel muze ztratit prava v albech, pokud je skupina k nejakym prirazena.
Pokud chce uzivatel vystoupit ze skupiny, je pozadan o potvrzeni. Pokud vystoupeni ze skupiny potvrdi, je uzivatel ze skupiny smazan (trida UserInGroup). Pokud akci nepotvrdi, zobrazi se mu detail skupiny, ktery byl popsan vyse.
Notifikace
Notifikace informuje uzivatele formou emailu o pridani noveho prispevku do diskuze skupiny nebo o nutnosti potvrzeni noveho prispevku nebo uzivatele.
Pokud jsou v systemu povoleny notifikace (atribut GlobalSettings.Notification.hide_all_notifications), zobrazi se uzivateli seznam vsech notifikaci, ktere si muze k teto skupine nastavit. V seznamu se mu zobrazi, ktere notifikace uz ma vytvorene a ktere ne. V seznamu si uzivatel vybere, ktere notifikace chce vytvorit pripadne zrusit.
Uzivatel ma moznost vytvareni/ruseni notifikaci zrusit. Pokud akci zrusi, zobrazi se mu znovu detail skupiny, ktery byl popsan vyse.
Mozne notifikace
Pokud je v systemu povolena diskuze u skupin (atribut GlobalSettings.Group.hide_discussion) a pokud ma uzivatel pravo cist diskuzi teto skupiny (atribut Group.Rules.public_discussion), muze si uzivatel vytvorit/zrusit notifikaci, ktera ho informuje o novych prispevcich v diskuzi skupiny.
Poznamka: Clen skupiny si take muze vytvorit notifikaci o novych prispevcich v diskuzi - pro pravo cist diskuzi se kotroluje take atribut Group.Rules.private_discussion.
Pokud je v systemu povolena diskuze u skupin (atribut GlobalSettings.Group.hide_discussion) a pokud je uzivatel moderatorem skupiny, muze si vytvorit/zrusit notifikaci, ktera ho informuje o novych prispevcich v diskuzi cekajicich na potvrzeni (atribut Group.Discussion.Item.state).
Pokud je uzivatel moderatorem skupiny a pokud je vyzadovano potvrzovani prispevku (atributy Group.Rules.public_discussion nebo Group.Rules.private_discussion), muze si vytvorit/zrusit notifikaci, ktera ho informuje o novych clenech skupiny cekajicich na potvrzeni (atribut UserInGroup.state).
Vytvoreni notifikace
Uzivatel muze vybrane notifikace vytvorit.
Pri vytvareni notifikaci je uzivatel informovan, ze tyto notifikace se budou posilat podle nastaveni vsech notifikaci. Uzivatel ma moznost toto nastaveni notifikaci zmenit, jak bylo popsano v kapitole Notifikacie uzivatela. Pokud nejake notifikace vytvori, zmeni se atribut GroupNotification.type. Take se nastavi cas posledniho pristupu k diskuzi (atribut GroupNotification.last_access_discussion) - podle vybranych notifikaci, na hodnotu never.
Zruseni notifikace
Uzivatel muze vybrane notifikace zrusit.
Zruseni notifikace bylo popsano v kapitole Notifikacie uzivatela. Pokud se notifikace zrusi, zmeni se atribut GroupNotification.type.
Zmena atributu
Vlastnik skupiny muze zmenit jeji atributy.
Pokud jsou v systemu povoleny skupiny (atribut GlobalSettings.Group.hide_all_groups), muze vlastnik zmenit nektere atributy z tridy Group a vsechny atributy z tridy Group.Rules.
Zmena atributu
Vlastnikovi se zobrazi editovatelny seznam atributu skupiny vyplneny aktualnim hodnotami atributu. Vlastnik zada povinne atributy - nazev skupiny (atribut Group.name), pripadne i nepovinne atributy - popis skupiny (atribut Group.description. Dale muze vlastnik zmenit nastaveni prav ve skupine (vsechny atributy z tridy Group.Rules). Tato nastaveni jsou podrobne popsana ve tride Group.Rules. U kazdeho atributu si vybere z jeho moznych hodnot.
Poznamka: Jine atributy skupiny (atributy Group.owner, Group.state a Group.[[Dev:Classes/Groups/Group#Atributy|]]) vlastnik zmenit nemuze.
Dale muze vlastnik zmenit kategorii, do ktere skupina patri (atribut Group.category), coz bude popsano dale.
Kontrola
Po potvrzeni zmeny se hodnoty zkontroluji, zda jsou stale vyplneny povinne atributy. Take se zkotroluje, zda je jmeno skupiny unikatni v celem systemu. Dale se podle nastaveni html-tagu (atribut GlobalSettings.allow_html_tags) zkontroluje popis skupiny a nepovolene html-tagy se odstrani. V jinych atributech nejsou povoleny zadne html-tagy. Take se zkontroluje, zda popis skupiny nepresahuje maximalni povolenou hodnotu (atribut GlobalSettings.Group.max_description_length).
Pokud je vse v poradku, hodnoty atributu se ulozi a zobrazovany seznam atributu se aktualizuje.
Pokud ne, je vlastnikovi vypsano varovne hlaseni (s rozmezim moznych hodnot apod.) a musi hodnotu daneho atributu opravit.
Zmena kategorie
Vlastnikovi se zobrazi seznam kategorii, jejichz stav je nastaven na potvrzen (atribut GroupCategory.state) a ktere smi obsahovat skupiny (atribut GroupCategory.no_groups), ale bez aktualni kategorie. V seznamu se zobrazi jejich cele cesty (zjistene pomoci atributu GroupCategory.parent) vcetne jmen kategorii (atribut GroupCategory.name). Vlastnik si vybere kategorii, do ktere chce skupinu presunout.
Poznamka: Spravce navic muze presunout skupinu i do skryte kategorie (atribut GroupCategory.state).
Pote je vlastnik pozadan o potvrzeni. Po potvrzeni je skupina presunuta do vybrane kategorie. Pritom se nastavi kategorie skupiny (atribut Group.category) na vybranou kategorii.
Nastaveni skupiny
Pokud je v systemu vyzadovano potvrzovani novych skupin (atribut GlobalSettings.Group.allow_user_groups) nebo pokud je v kategorii, do ktere byla akupina presunuta, vyzadovano potvrzovani novych skupin (atribut GroupCategory.free_contribution), je nastaven stav presunute skupiny na cekajici na potvrzeni (atribut Group.state). Jinak je nastaven stav skupiny na potvrzen.
Pokud ma uzivatel, ktery skupinu presouva, v systemu pravo potvrzovat nove skupiny (atribut User.AdminSettings.may_manage_groups), muze skupinu rovnou potvrdit. Stav skupiny je pote nastaven na potvrzen (atribut Group.state).