Task Panel za SharePoint

Task Panel – za kaj se pravzaprav sploh gre?
No, da malce razložim – v SharePointu že obstaja definicija Liste, prirejena za Taske oz. po slovensko Opravila. Kako se jo ustvari najbrž ni potrebno razlagati, saj to prav zagotovo piše v vsaki knjigi o SharePointu.

V osnovi je definiranih več lasnosti posameznega Task-a, a na zgornji sliki jih je videti samo nekaj glavnih, kot so Title (Naziv), Assigned To (Zadolženi), Status (Status), Priority (Prioriteta), Due Date (Datum končanja), % Complete (% končanja) in Predecessors (Predhodniki).
V mojem primeru jih je potrebnih še manj, zato sem od zgoraj naštetih odstranil še Priority in % Complete, prav tako pa sem spremenil, da je namesto več predhodnikov (Predecessors), možen samo en (Predecessor).

Na zgornji sliki imamo primer vpisanih taskov/opravil. Človek si ob taki obliki prikaza opravil težko predstavlja, kakšen je dejansko njihov vrstni red izvajanja. Dosti boljšo predstavo bi dobili že z enostavnim grafom vozlišč in povezav med njimi.
V našem primeru je vozlišče nek task/opravilo, povezava med dvema vozliščema pa tako predstavlja soodvisnost opravil (npr. povezava med vozliščem A in vozliščem B pove, da je opravilo B odvisno od opravila A oz. da je za dokončanje opravila B, potrebno najprej dokončati opravilo A).
Ker je za nas dovolj, da imamo pri nekem seznamu opravil samo eno začetno opravilo (torej opravilo, ki je brez predhodnikov), da ima neko nezačetno opravilo lahko samo enega predhodnika, ciklov ni, dobimo še celo poenostavljen graf, ki mu natančneje pravimo drevo.

Sicer v SharePointu že obstaja prikaz soodvisnosti opravil s pomočjo Ganttovega diagrama, vendar bi mi radi imeli enostavnejši in preglednejši prikaz, saj nas o posameznemu opravilu niti ne zanima toliko podatkov.
Zakaj ne bi te potem prikazali kar v obliki drevesa, ki bi se z ažuriranjem seznama opravil avtomatsko posodabljal (drevo bi se večalo ali manjšalo, odvisno od tega, ali bi opravila dodajali ali brisali).
Spisal sem Web Part za SharePoint, ki tako drevo tudi izriše in ga poimenoval Task Panel.

Tu zgoraj je moč opaziti seznam iz prejšnje slike, pod njim pa zgoraj omenjeni Web Part, ki ta seznam izrisuje v obliki drevesa.
Vse skupaj deluje tako, da Web Part ob osveževanju strani bere zgornji seznam, kjer najprej poišče začetno vozlišče ter ga označi za obiskanega.
Nato poišče vsa vozlišča, ki imajo za predhodnika to začetno vozlišče, ki je že bilo obiskano, in jih označi za obiskana. Za vsako od teh novih vozlišč nato poišče naslednja vozlišča, ki imajo za predhodnika prav njih itd. Uporablja torej BFS postopek preiskovanja seznama opravil in tako zgradi sredinsko poravnano drevo, prav sredinska poravnava pa mu omogoči še jasnejšo/enostavnejšo predstavitev.

Zadnji problem, ki se nato še pojavi je, kako tako drevo tudi izrisati.
Jaz sem to rešil s pomočjo System.Drawing knjižnice, ki ustvari GIF sliko, na kateri izriše graf. Višina slike je enaka številu zaporednih stopenj opravil, širina slike pa maksimalnemu številu opravil na neki stopnji. Barva vsakega vozlišča v grafu pomeni status opravila, ki ga vozlišče predstavlja.

Lep pozdrav!
Gašper Rupnik

{End.}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Powered by WordPress.com.

Up ↑

%d bloggers like this: