6. Õppeaineregistri WWW-liides

Õppeaineregistri WWW-liides võimaldab aineregistrile juurdepääsu üle WWW. WWW kaudu on kättesaadav kehtiv info aineregistris olevate ainete kohta, st. kogu info, mis antud õppeaastal ainete kohta kehtib, on ka WWW kaudu kättesaadav. WWW-liides on sisuliselt kataloogi “TÜ loengud ja praktilised tööd…” koopia, kusjuures kataloogist erineb see selle poolest, et WWW-liidese kaudu saab aineregistris otsinguid sooritada. Seega on WWW-liidese kasutamine lihtsam, kui kataloogi kasutamine.

Antud peatükis vaadeldakse WWW-liidese ülesehitust ja töö põhimõtteid. Kuna WWW-liidese kasutusjuhend on WWW kaudu (http://oppe.admin.ut.ee/ained/tulemus/juhend.asp) kättesaadav, ei anta siin täpset WWW-liidese kasutusjuhendit. Eelnevates peatükkides anti ülevaade liideses kasutatavatest tehnoloogiatest ja seega vaadeldakse selles peatükis ainult liidese töö üldpõhimõtteid (va. mõned koodikirjeldused).

Kuna lisas 2 on toodud WWW-liidese tegemisel kasutatud SQL-päringud, siis siin neid ei esitata.

6.1 Failistruktuur

Õppeainergistri WWW-liides koosneb mitmest omavahel seotud failist. Süsteemis on kaks alamkataloogi: üks Tartu Ülikooli õppeaineregistri statuudi jaoks ja teine WWW-liidese skriptide jaoks. Selline ülesehitus (skriptide jaoks omaette kataloog) tulenes WWW-serveri halvast turvalisusest.

Õppeaineregistri WWW-liidese failistruktuur on toodud alljärgnevalt:

 

/ained/
index.htm
/ained/Statuut/
Ainelopp.doc Ainereg.doc Igaaasta.doc
index.htm Nimemuut.doc Yxkordne.doc
/ained/tulemus/
aine.asp ained.asp algus.asp
body.htm eelmkontr.inc footer.htm
global.asa header.lisamine jooksevaasta.inc
juhend.asp keeled.asp komplex.asp
komplex.tyhjax komplexkontroll.asp
komplexparing.asp
nimekiri.asp nimi.asp oppejoud.asp
oppekava.asp oppetool.asp toimumisfunc.inc
verinfo.asp

 

Kataloog Statuut sisaldab õppeaineregistri statuuti ja selle juurde käivaid dokumente. Kataloog tulemus sisaldab WWW-liidese ASP-skripte ja nende jaoks vajalikke (ASP-failides sisalduvaid) faile. Failides sisaldub:

  • global.asa – rakenduse spetsiaalfail, milles sisaldub sessiooni alustamist puudutav info.
  • juhend.asp – WWW-liidese kasutusjuhend.
  • verinfo.asp – WWW-liidese versiooniinfo (sisaldab WWW-liidese arenguga seotud etappide lühikirjeldusi).
  • algus.asp – otsingute pealeht. Sellelt lehelt liigutakse kõikidele teistele lehtedele.
  • oppetool.asp – konkreetse teaduskonna õppetoolide nimekirja väljastus.
  • nimekiri.asp – konkreetse õppetooli ainete nimekirja väljastus.
  • nimi.asp – aine nime järgi otsimise tulemuse väljastus (ainete nimekiri).
  • oppejoud.asp – õppejõu järgi otsimise tulemuse väljastus (ainete nimekiri).
  • oppekava.asp – õppekava järgi otsimise tulemuse väljastus (ainete nimekiri).
  • keeled.asp – õppekeele järgi otsimise tulemuse väljastus (ainete nimekiri).
  • komplex.asp – komplekspäringu (mitme otsingu korraga sooritamise võimalus) pealeht.
  • komplekskontroll.asp – komplekspäringu andmete kontrollimise leht.
  • kompleksparing.asp – komplekspäringu tulemusena saadud ainete nimekirja väljastus.
  • aine.asp – konkreetse aine info väljastus.
  • ained.asp – konkreetse õppetooli ainete info väljastus.
  • body.htm – lisafail, mis lisatakse kõikide ASP-skriptide algusse. Selles kirjeldatakse HTML-dokumendi välimus.
  • footer.htm – lisafail, mis lisatakse kõikide ASP-skriptide lõppu. Selles kirjeldatakse HTML-dokumentide lõpetus (tuletatakse meelde, kellele andmed kuuluvad).
  • header.lisamine – lisafail, mis lisatakse kõikide ASP-skriptide algusse. Sellega pannakse paika mõned HTTP-päised (info autori ja andmete omaniku kohta).
  • eelmkontr.inc – lisafail, mida kasutatakse mõnedes ASP-skriptides kontrollimaks, et kasutajad ei satuks lehtedele valedest kohtadest.
  • jooksevaasta.inc – lisafail, milles arvutatakse välja jooksev õppeaasta.
  • komplex.tyhjax – lisafail, mida kasutatakse komplekspäringu juures eelmiste kompleksotsingute tühistamiseks.
  • toimumisfunc.inc – lisafail, mida kasutatakse õppeaine info juures aine toimumiskava väljastamiseks.

Kasutaja liigub failide vahel järgnevalt:
Kasutaja käib
Lisaks on loomulikult versiooniinfo ja juhendi fail, kuhu saab WWW-liidese pealehelt (/ained/), juhendi faili saab ka otsingute pealehelt.

Kui kasutaja siseneb WWW-liidesesse (rakendusse), luuakse tema jaoks ASP-sessioon. Selle käigus kontrollitakse (spetsiaalfailis global.asa), millise ASP-skripti poole kasutaja pöördus. Kasutaja võib pöörduda otsingute pealehele, komplekspäringu pealehele, konkreetse aine infolehele või õppetooli ainete infolehele; kõikide teiste lehtede poole pöördumised suunatakse otsingute pealehele. Selline piirang on tingitud asjaolust, et kõik otsingud eeldavad kindlaid otsinguparameetreid ja korrektsed otsingud (ja parameetrid) on kirjeldatud just otsingute pealehtedel. Otsingute pealehelt valib kasutaja soovitud otsingu (vastavalt sellele, mida ta teada tahab) ja, täitnud vastava vormi, siirdub otsingu tulemuste juurde. Otsingu tulemustest valib kasutaja välja teda huvitava aine ja siirdub selle aine infolehele. Soovides sooritada mitu päringut korraga, siirdub kasutaja komplekspäringu pealehele.

6.2 Tavaotsingu ülesehitus

Tavaotsing tähendab, et kasutaja soovib otsida ainet ühe parameetri järgi. Selleks valib kasutaja otsingute pealehelt vastava osa ning talle otsitakse välja ained, mis vastavad tema poolt valitud/sisestatud parameetri(te)le. Näiteks kui kasutaja soovib leida ainet, mis asub ühes konkreetses õppetoolis, siis valib ta otsingute pealehelt teaduskonna, selle teaduskonna allüksuste loetelust õppetooli ja talle väljastatakse valitud õppetooli ained.

6.2.1 Otsingute pealeht

Otsingute pealeht koosneb mitmest alajaotusest (valikuvõimalusest):

  1. Õppetooli ainete otsing. Väljastatakse õppeaineregistris olevate teaduskondade loetelu (vastav SQL-päring on toodud lisas 2 numbri 1 all).
  2. Aine nime järgi ainete otsing.
  3. Aine koodi järgi aine otsing.
  4. Õppejõu järgi ainete otsing.
  5. Õppekava järgi ainete otsing. Väljastatakse õppeaineregistris olevate õppekavade ja astmete loetelu (SQL-päringud lisas 2, nr 2 ja 3).
  6. Õppekeele järgi ainete otsing. Väljastatakse õppeaineregistris olevate õppekeelte loetelu (SQL-päring lisas 2, nr 4).
  7. Võimalus siirduda komplekspäringusse.

Otsingute juures (va. õppetooli ainete otsing) on kasutajal võimalus määrata otsingutulemuste väljastuse vormi:

  • kui vaikimisi väljastatakse ained sorteerituna aine koodi järgi (teaduskondade kronoloogiline järjestus, edasi tähestikuline järjestus), siis kasutaja saab määrata, et ained väljastatakse tähestikulises järjekorras.
  • kui vaikimisi väljastatakse kõik ained, mis otsinguparameetri(te)le vastavad (ka need, mis ei toimu jooksval õppeaastal), siis kasutaja saab määrata, et väljastataks ainult jooksval õppeaastal toimuvad ained.

6.2.2 Otsingu tulemus

Otsingute tulemuste lehtedel kontrollitakse kõigepealt, kas kasutaja tuli sellele lehele õigest kohast (lehelt). Nimelt on lubatud otsingute tulemuste lehtedele sattuda ainult otsingute pealehelt, samalt lehelt, kus ollakse, ja konkreetse aine (õppetooli ainete) info juurest. Seda seepärast, et sellisel viisil on garanteeritud, et otsinguparameetrid on just sellised, nagu neid eeldatakse olevat.

Kui otsingute lehel kontrollimise käigus avastatakse midagi valesti olevat, siis enamusel juhtudel suunatakse kasutaja ilma hoiatust andmata otsingute pealehele.

Peale mõningast andmete kontrolli koostatakse (vastavalt kasutaja poolt määratud parameetritele) päringustring (võimalikud päringustringid on toodud lisas 2 nr 7 – 12), millega tehakse päring andmebaasis (leitakse otsinguparameetritele vastavad ained). Seejärel väljastatakse leitud ainete nimekiri tabelis (tabeli servad on nähtamatud, seega kasutaja seda ei märka). Tabeli esimese veerus on toodud ainete koodid ja teises aine nimetus koos lisainfoga aine lõpetatuse kohta. Aine nimelt läheb link aine info juurde. Ainete nimekirja väljastus toimub järgmise ASP-skripti koodilõigu abil (erinevates otsingutes võivad siin esineda väikesed muutused):

<table border=0>
<%
‘Ainete väljastus:
Do While Not ained.EOF

%><tr>
<td><%=ained(“teaduskond”)&ained(“instituut”)&”.”&ained(“oppetool”)
&”.”&ained(“nr”)%></td><%
if IsNull(ained(“nimi”)) then %><td>
<a href=aine.asp?
<%=ained(“teaduskond”)&ained(“instituut”)&”.”&ained(“oppetool”)
&”.”&ained(“nr”)%>>__</a><% else %><td><a href=aine.asp?<%=ained(“teaduskond”)&ained(“instituut”)&”.”&
ained(“oppetool”)&”.”&ained(“nr”)%>><%=ained(“nimi”)%></a> <% end if
‘Kui aine on lõpetatud, siis väljastatakse vastav teade
‘(lõpetatud või ühekordne):
if Not(IsNull(ained(“loppoppeaasta”))) then
if ained(“algoppeaasta”) = ained(“loppoppeaasta”) then
Response.Write ” (&uuml;hekordne aine ” & ained(“algoppeaasta”)&”/”
Response.Write ained(“algoppeaasta”) + 1 & ” &otilde;a.)”
else
Response.Write ” (l&otilde;petatud ” & ained(“loppoppeaasta”) & ” a.)”
end if
end if%></td>
</tr>
<%
ained.MoveNext Loop ‘tsükli lõpp
%></table>

Siin kasutatakse kirjeobjekti ained, millega tehti päring andmebaasis. Kirjeobjekt sisaldab ainete nimekirja väljastuseks vajalikke välju: teaduskond, instituut, opptool, nr, nimi, algoppeaasta, loppeoppeaasta.

Enamuses otsingutulemustes väljastatakse ainult ainete nimekiri. Erandiks on kaks otsingut:

  • Õppejõu nime järgi otsing, kus mitme õppejõu korral on tulemuses antud ained iga õppejõu kohta eraldi (grupeeritud õppejõudude järgi).
  • Õppekava järgi otsing, kus vastavalt vajadusele toimub grupeering kas õppekavade, astmete või ainete kohustuslikkuse järgi vastavas õppekavas/astmes.

Kõikidel otsingulehtedel kontrollitakse, kas kasutaja soovis näha aineid, mis toimuvad jooksval õppeaastal ja kui sellist valikut polnud, väljastatakse lehe algusse nupp, mis võimaldab toodud ainete nimekirjast välja filtreerida jooksval õppeaastal toimuvad ained.

Õppetooli ainete nimekirja juures väljastatakse link antud õppetooli kõikide ainete korraga vaatamiseks.

6.3 Komplekspäring

Komplekspäringuga on võimalik sooritada enamust tavaotsingu päringutest korraga. Lisaks on veel 2 lisavõimalust, mida tavaotsingus pole: otsida saab aine ingliskeelse nime järgi ja aine mahu järgi. Komplekspäring võimaldab omavahel kombineerida järgmisi otsinguvõimalusi: nime (nii eesti kui inglisekeelse), mahu, õppekeele, õppekava, astme ja õppejõu järgi otsing. Lisatingimusena saab määrata, et leitaks ainult jooksval õppeaastal toimuvad ained.

Komplekspäringu osa koosneb kolmest ASP-skriptist:

  1. Pealehel saab kasutaja määrata need andmed, mis teda huvitavad.
  2. Kontrolllehel kontrollitakse kasutaja poolt sisestatud andmeid. Õppekavade ja õppejõudude valikus kontrollitakse, et neid poleks valitud üle kümne, kuna vastav otsing võib osutuda liiga aeganõudvaks. Kontrollitakse ka sisestatud nimede pikkus, kuna lühemate kui 3 sümbolit pikkade nimeosade leidmine võib liiga aeganõudvaks osutuda. Kui mõni parameeter ei vasta kehtestatud nõuetele, väljastatakse teade, et seda parameetrit otsingus ei arvestata.

Kui kõik andmed on kontrollitud ja leitud, et on piisavalt andmeid otsingu sooritamiseks, koostatakse päringustring (üks võimalik päringustring on toodud lisas 2 numbri 17 all) ning pannakse see sessioonimuutujasse. Seejärel väljastatakse link otsingusse.

  1. Otsingu lehel tehakse päring andmebaasis ja väljastatakse leitud ainete nimekiri. Iga kord, kui sellele lehele satutakse, tehakse vastav päring uuesti.

Enne päringu koostamist kontrollitakse, et sellele lehele satutaks ainult komplekspäringu kontrolllehelt (kuna seal koostatakse päringustring). Kui see tingimus pole täidetud, suunatakse kasutaja komplekspäringu pealehele.

6.4 Õppeaine info

Õppeaine info juurde pääseb otsingute pealehelt, otsingu tulemuste lehelt ja otsepöördumisega. Otsepöördumisega ja otsingute lehelt aine info poole pöördudes antakse õppeaine kood URL-is küsimärgiga eraldatult. (nt. http://oppe.admin.ut.ee/ained/tulemus/aine.asp?MTAT.03.001). Otsingute pealehelt aine koodi sisestades pöördutakse õppeaine info poole parameetri aine abil. See toimub samuti URL-is küsimärgiga eraldatult (nt. http://oppe.admin.ut.ee/ained/tulemus/aine.asp?aine=MTAT.03.001) ja vastavalt on siis võimalik sellisel viisil ka otsepöördumine õppeaine info juurde.

Ka aine infolehel kontrollitakse kasutaja poolt sisestatud andmeid. Põhiliselt kontrollitakse küsitud aine koodi vastavust kehtestatud reeglitele: kood peab olema kujul teaduskonna kood, instituudi kood, ‘.’, õppetooli kood, ‘.’ ja aine number õppetoolis ehk aine koodi pikkus on 11 (seda ka tegelikkuses kontrollitakse). Kui kood ei vasta antud nõuetele, suunatakse kasutaja otsingute pealehele.

Aine info leidmine andmebaasist ja väljastus toimub järgmise algoritmi alusel:

  1. Peale andmete õnnestunud kontrolli leitakse aine üldinfo andmebaasist (päringustring on toodud lisas 2, nr 18). Selleks eraldatakse kasutaja poolt edastatud koodist teaduskonna, instituudi, õppetooli ja aine kood. Kui ainet ei leita andmebaasist, väljastatakse vastav veateade ja lõpetatakse töö. Kui aga aine leidus, väljastatakse dokumendi tiitlisse aine kood. Seejärel kontrollitakse aine lõpetatust ja kui aine on lõpetatud, väljastatakse vastav teade.
  2. Andmebaasist leitakse aine eesti ja ingliskeelne nimetus (päringustring on toodud lisas 2, nr 19). Nimed väljastatakse koos aine koodiga. Seejärel väljastatakse muu aine üldinfo (eksamid/arvestused ja maht).
  3. Andmebaasist leitakse ainet lugevad õppejõud (päringustring on toodud lisas 2, nr 20) ning väljastatakse need.
  4. Kui ainet ei loeta eesti keeles, väljastatakse vastavasisuline teade.
  5. Andmebaasist leitakse aine kuulajaskond: eraldi need, kus aine on kohustuslik ja valitav (päringustringid on toodud lisas 2, nr 21 ja 22). Kõigepealt väljastatakse õppekavad (ja astmed), kus aine on kohustuslik ja seejärel need, kus aine on valitav.
  6. Andmebaasist leitakse aine eeldusained: kohustuslikud ja soovituslikud eraldi (päringustringid on toodud lisas 2, nr 23 ja 24). Esmalt väljastatakse kohustuslikud ja seejärel soovituslikud eeldusained.
  7. Andmebaasist leitakse aine annotatsioon (päringustring on toodud lisas 2, nr 25) ja väljastatakse see.
  8. Kui aine toimub jooksval õppeaastal, väljastatakse lõppu aine toimumiskava jooksval õppeaastal (päringustring on toodud lisas 2, nr 26).

Kui mõni element puudub, siis selle kohta ei väljastata midagi, vaid võetakse kohe järgmine.

Õppeaine infoleht sisaldab mitmeid linke:

  1. Ainet lugevate õppejõudude juures on võimalik vaadata nende õppejõudude poolt loetavaid aineid.
  2. Kuulajaskonna väljastuse juures on võimalik vaadata konkreetse õppekava, õppekava ja astme (kui õppekavaga koos on määratud ka aste) ning konkreetse astme (kui ainel pole määratud konkreetset õppekava, millesse ta kuulub, aga on määratud aste) kõiki aineid.
  3. Eeldusainete juures on võimalik iga eeldusaine infolehte eraldi vaadata.

Ühe konkreetse õppetooli kõikide ainete infolehel tehakse kõigepealt peaaegu sama kontroll, mis ühe aine korral (erinevuseks on, et siin on kasutaja poolt edastatud koodi pikkuseks 7, kuna ära jääb õppeaine kood). Seejärel leitakse õppetooli kõikide ainete üldinfod (päringustring on toodud lisas 2, nr 27). Kui ained puuduvad, väljastatakse (kohati eksitav) teade, et küsitud koodiga õppetooli ei leidu. Kui ained leiduvad, tehakse tsükkel üle kõikide leitud ainete ja rakendatakse igal tsükli sammul ülaltoodud algoritmi. Algoritmi esimesel sammul ei otsita ainet enam andmebaasist ning samuti ei väljastata dokumendi tiitlisse aine koodi. Algoritmi teise sammu juures väljastatakse koos aine koodiga ka link selle õppeaine infolehele (võimaldamaks üksikut ainet eraldi vaadata).

Õppetooli ainete väljastusel on eelduseks võetud asjaolu, et ainetele antakse koode kasvavas järjekorras, aga kuna vahest erineb tegelikkus sellest nõudest, siis võib esineda korrapäratust ainete väljastusel. Sorteerimist pole selles päringus rakendatud, kuna see aeglustaks niigi aeglast (sõltuvalt ainete hulgast õppetoolis) andmete väljastust.