#!/usr/bin/python

import sys
if len(sys.argv) != 2:
    exit("Koriscenje skrita: " + sys.argv[0] + " putanja_do_dir")

import os
if not os.path.isdir(sys.argv[1]):
    exit("Nepostojeci direktorijum")

dir = sys.argv[1]

try:
    f = open(dir + "/indeksi", "r")
except IOError:
    exit("Nepostojeci fajl")

imena = {}
while True:
    linija = f.readline()
    if linija == "":
        break
    indeks, ime = linija.strip().split(", ")
    imena[indeks] = ime

f.close()

reg_exp = r"^m[rlmvin]\d{5}$"
reg_exp1 = r"^(\d+)\.(py|java|c|html|pas)$"
import re

pattern = re.compile(reg_exp)
pattern1 = re.compile(reg_exp1)

max_zad = 0
mapa = {}
broj_uradjenih = {}

for podfolder in os.listdir(dir):
    if os.path.isdir(dir + "/" + podfolder) and pattern.match(podfolder):
        if imena.has_key(podfolder):
            for zadatak in os.listdir(dir + "/" + podfolder):
                m = pattern1.match(zadatak)
                if os.path.isfile(dir + "/" + podfolder + "/" + zadatak) and m is not None:
                    if int(m.group(1)) > max_zad:
                        max_zad = int(m.group(1))
                    mapa[(podfolder, int(m.group(1)))] = m.group(2)
                    if broj_uradjenih.has_key(int(m.group(1))):
                        broj_uradjenih[int(m.group(1))] += 1
                    else:
                        broj_uradjenih[int(m.group(1))] = 1
        else:
            print "Student", podfolder, "nije prijavio ispit"


try:
    f = open("seminarski_radovi.html", "w")
except IOError:
    exit("Nemoguce otvoriti fajl za pisanje")

f.write("<html><head><title>Sem radovi</title></head>")

f.write("<body><table border=1>")

f.write("<tr><th>Indeks</th><th>Ime i prezime</th>")
for i in range(1, max_zad + 1):
    f.write("<th>" + str(i) + "</th>")
f.write("</tr>")

for s in imena.keys():
    f.write("<tr>")
    f.write("<td>" + s + "</td>")
    f.write("<td>" + imena[s] + "</td>")
    for i in range(1, max_zad + 1):
        if mapa.has_key((s, i)):
            f.write("<td>" + mapa[(s, i)] + "</td>")
        else:
            f.write("<td> - </td>")
    f.write("</tr>")

f.write("<tr>")
f.write("<td>Procenat</td>")
f.write("<td></td>")
for i in range(1, max_zad + 1):
    if (broj_uradjenih.has_key(i)):
        f.write("<td>" + str(broj_uradjenih[i] * 100.0 / len(imena.keys())) + "</td>")
    else:
        f.write("<td>0</td>")
f.write("</tr>")
        
f.write("</table></body></html>")

f.close()
