Ejemplo n.º 1
0
def viewgroups(request):
    """

    Pregled grupa za semestar
    :param request:
    :return:
    """

    trenSeme = get_current_semester()
    mesec = datetime.datetime.now().month
    godina = datetime.datetime.now().year
    if trenSeme == 'parni':
        semestar = Semestar.objects.get(skolska_godina_kraj=godina,
                                        vrsta=trenSeme)
    else:
        if mesec <= 2:
            semestar = Semestar.objects.get(skolska_godina_pocetak=godina - 1,
                                            vrsta=trenSeme)
        else:
            semestar = Semestar.objects.get(skolska_godina_pocetak=godina,
                                            vrsta=trenSeme)
    qs = IzbornaGrupa.objects.filter(za_semestar=semestar)
    nalog = Nalog.objects.get(username=request.session['username'])
    context = {
        'izbornegrupe': qs,
        'semestar': semestar,
        'username': request.session['username'],
        'uloga': nalog.uloga
    }
    return render(request, 'studserviceapp/prikazigrupe.html', context)
Ejemplo n.º 2
0
def prikazStudentaZaUploadSlike(request, username):
    nalog = Nalog.objects.get(username=username)

    if (nalog.uloga == 'student'):
        student = Student.objects.get(nalog__username=username)

        ime = student.ime
        prezime = student.prezime
        brindeksa = student.broj_indeksa
        godupisa = student.godina_upisa
        smjer = student.smer

        trenutniSemestar = get_current_semester()
        if trenutniSemestar == 'neparni':
            if datetime.datetime.now().month <= 2:
                grupa = student.grupa.get(
                    semestar__skolska_godina_pocetak=datetime.datetime.now(
                    ).year - 1,
                    semestar__vrsta='neparni')
            else:
                grupa = student.grupa.get(
                    semestar__skolska_godina_pocetak=datetime.datetime.now(
                    ).year,
                    semestar__vrsta='neparni')
        else:
            grupa = student.grupa.get(
                semestar__skolska_godina_kraj=datetime.datetime.now().year,
                semestar__vrsta='parni')

        context = {
            'ime': ime,
            'prezime': prezime,
            'brindeksa': brindeksa,
            'godupisa': godupisa,
            'smjer': smjer,
            'grupa': grupa.oznaka_grupe,
            'username': username
        }

        return render(request, 'studserviceapp/uploadSlike.html', context)
Ejemplo n.º 3
0
def sendmail(request):
    sender = request.POST['mejl']
    subject = request.POST['subject']
    msgPlain = request.POST['tekst']
    attachment = request.FILES.get('attachment', False)
    cilj = request.POST['cilj']
    if len(cilj) == 2:
        studenti = []
        studentiSet = Student.objects.filter(smer=cilj).values()

        for studentQS in studentiSet:
            studenti.append(Student.objects.get(id=studentQS['id']))

        for student in studenti:
            if attachment is False:
                create_and_send_message(sender,
                                        student.nalog.username + "@raf.rs",
                                        subject, msgPlain)
            else:
                create_and_send_message(sender,
                                        student.nalog.username + "@raf.rs",
                                        subject, msgPlain, attachment)

        return HttpResponse("Mail uspesno poslat!")
    if cilj == 'Svi':
        studenti = Student.objects.all()
        for student in studenti:
            if attachment is False:
                create_and_send_message(sender,
                                        student.nalog.username + "@raf.rs",
                                        subject, msgPlain)
            else:
                create_and_send_message(sender,
                                        student.nalog.username + "@raf.rs",
                                        subject, msgPlain, attachment)

        return HttpResponse("Mail uspesno poslat!")
    if cilj[0] in '0123456789':
        trenutniSemestar = get_current_semester()

        if trenutniSemestar == 'neparni':
            if datetime.datetime.now().month <= 2:
                studentiSet = Student.objects.filter(
                    grupa__oznaka_grupe=cilj,
                    grupa__semestar__vrsta=trenutniSemestar,
                    grupa__semestar__skolska_godina_pocetak=datetime.datetime.
                    now().year - 1).values()
            else:
                studentiSet = Student.objects.filter(
                    grupa__oznaka_grupe=cilj,
                    grupa__semestar__vrsta=trenutniSemestar,
                    grupa__semestar__skolska_godina_pocetak=datetime.datetime.
                    now().year).values()
        else:
            studentiSet = Student.objects.filter(
                grupa__oznaka_grupe=cilj,
                grupa__semestar__vrsta=trenutniSemestar,
                grupa__semestar__skolska_godina_pocetak=datetime.datetime.now(
                ).year).values()

        studenti = []
        for studentQS in studentiSet:
            student = Student.objects.get(id=studentQS['id'])
            studenti.append(student)
    else:
        nastavnikString = request.POST['ime_prezime'].split(' ')
        nastavnik = Nastavnik.objects.get(ime=nastavnikString[0],
                                          prezime=nastavnikString[1])

        predmet = Predmet.objects.get(naziv=request.POST['cilj'])

        trenutniSemestar = get_current_semester()

        if trenutniSemestar == 'neparni':
            if datetime.datetime.now().month <= 2:
                termini = Termin.objects.filter(
                    nastavnik=nastavnik,
                    raspored__semestar__vrsta=trenutniSemestar,
                    raspored__semestar__skolska_godina_pocetak=datetime.
                    datetime.now().year - 1,
                    predmet=predmet).values()
            else:
                termini = Termin.objects.filter(
                    nastavnik=nastavnik,
                    raspored__semestar__vrsta=trenutniSemestar,
                    raspored__semestar__skolska_godina_pocetak=datetime.
                    datetime.now().year,
                    predmet=predmet).values()
        else:
            termini = Termin.objects.filter(
                nastavnik=nastavnik,
                raspored__semestar__vrsta=trenutniSemestar,
                raspored__semestar__skolska_godina_pocetak=datetime.datetime.
                now().year,
                predmet=predmet).values()

        studenti = []
        for terminQS in termini:
            termin = Termin.objects.get(id=terminQS['id'])
            grupeTermina = termin.grupe.all()
            for grupa in grupeTermina:
                studentiSet = Student.objects.filter(grupa=grupa).values()
                for studentQS in studentiSet:
                    student = Student.objects.get(id=studentQS['id'])
                    studenti.append(student)
    for student in studenti:
        if attachment is False:
            create_and_send_message(sender, student.nalog.username + "@raf.rs",
                                    subject, msgPlain)
        else:
            create_and_send_message(sender, student.nalog.username + "@raf.rs",
                                    subject, msgPlain, attachment)

    return HttpResponse("Mail uspesno poslat!")
Ejemplo n.º 4
0
def maillist(request, username):
    nalog = Nalog.objects.get(username=username)

    if nalog.uloga == 'sekretar' or nalog.uloga == 'administrator':
        admin = True

        predmeti = Predmet.objects.all()

        grupe = []
        trenutniSemestar = get_current_semester()

        if trenutniSemestar == 'neparni':
            if datetime.datetime.now().month <= 2:
                grupeSet = Grupa.objects.filter(
                    semestar__vrsta=trenutniSemestar,
                    semestar__skolska_godina_pocetak=datetime.datetime.now(
                    ).year - 1).values()
            else:
                grupeSet = Grupa.objects.filter(
                    semestar__vrsta=trenutniSemestar,
                    semestar__skolska_godina_pocetak=datetime.datetime.now(
                    ).year).values()
        else:
            grupeSet = Grupa.objects.filter(
                semestar__vrsta=trenutniSemestar,
                semestar__skolska_godina_pocetak=datetime.datetime.now(
                ).year).values()

        for grupaQS in grupeSet:
            grupa = Grupa.objects.get(id=grupaQS['id'])
            grupe.append(grupa)

        finalnalista = ['Svi', 'RN', 'RM', 'RD', 'IT']
        finalnalista.extend(predmeti)
        finalnalista.extend(grupe)

        context = {
            'admin': admin,
            'mail': username + "@raf.rs",
            'lista': finalnalista,
            'username': username,
            'uloga': nalog.uloga
        }

        return render(request, 'studserviceapp/slanjeMejla.html', context)

    else:
        admin = False

        nastavnik = Nastavnik.objects.get(nalog=nalog)
        predmeti = nastavnik.predmet.all()

        trenutniSemestar = get_current_semester()
        if trenutniSemestar == 'neparni':
            if datetime.datetime.now().month <= 2:
                termini = Termin.objects.filter(
                    nastavnik=nastavnik,
                    raspored__semestar__vrsta=trenutniSemestar,
                    raspored__semestar__skolska_godina_pocetak=datetime.
                    datetime.now().year - 1).values()
            else:
                termini = Termin.objects.filter(
                    nastavnik=nastavnik,
                    raspored__semestar__vrsta=trenutniSemestar,
                    raspored__semestar__skolska_godina_pocetak=datetime.
                    datetime.now().year).values()
        else:
            termini = Termin.objects.filter(
                nastavnik=nastavnik,
                raspored__semestar__vrsta=trenutniSemestar,
                raspored__semestar__skolska_godina_pocetak=datetime.datetime.
                now().year).values()

        listagrupa = []
        for terminQS in termini:
            termin = Termin.objects.get(id=terminQS['id'])
            listagrupa.extend(termin.grupe.all())

        finalnalista = []
        finalnalista.extend(predmeti)
        finalnalista.extend(listagrupa)

        context = {
            'admin': admin,
            'imeprezime': nastavnik.ime + " " + nastavnik.prezime,
            'mail': username + "@raf.rs",
            'lista': finalnalista,
            'username': username,
            'uloga': nalog.uloga
        }

        return render(request, 'studserviceapp/slanjeMejla.html', context)

    return render(request)
Ejemplo n.º 5
0
def chooseagroupObrada(request):
    upisuje_semestar = 0
    prvi_put = False
    np = ""

    upisuje_semestar = request.POST['radioBtn']
    print(upisuje_semestar)

    if request.POST['pp'] == 'prviPut':
        prvi_put = True
    elif request.POST['pp'] == 'nijePrvi':
        prvi_put = False

    if request.POST['np'] == 'odjednom':
        np = 'odjednom'
    elif request.POST['np'] == 'narate':
        np = 'na rate'
    elif request.POST['np'] == 'stipendista':
        np = 'stipendista'

    if request.method == 'POST':
        izbGrupe = IzborGrupe(ostvarenoESPB=request.POST['brOpoena'],
                              upisujeESPB=request.POST['brUpoena'],
                              broj_polozenih_ispita=request.POST['brPispita'],
                              upisuje_semestar=upisuje_semestar,
                              prvi_put_upisuje_semestar=prvi_put,
                              nacin_placanja=np,
                              student=Student.objects.get(
                                  nalog__username=request.POST['username']),
                              izabrana_grupa=IzbornaGrupa.objects.get(
                                  oznaka_grupe=request.POST['grupeX']),
                              upisan=False)  # na pocetku staviti false

        student = Student.objects.get(nalog__username=request.POST['username'])

        trenutniSemestar = get_current_semester()
        try:
            if trenutniSemestar == 'neparni':
                if datetime.datetime.now().month <= 2:
                    grupa = student.grupa.get(
                        semestar__skolska_godina_pocetak=datetime.datetime.now(
                        ).year - 1,
                        semestar__vrsta='neparni')
                else:
                    grupa = student.grupa.get(
                        semestar__skolska_godina_pocetak=datetime.datetime.now(
                        ).year,
                        semestar__vrsta='neparni')
            else:
                grupa = student.grupa.get(
                    semestar__skolska_godina_kraj=datetime.datetime.now().year,
                    semestar__vrsta='parni')

            print(trenutniSemestar)
            context = {'username': request.session['username']}
            return render(request,
                          'studserviceapp/neuspjesnoDodatStudent.html',
                          context)
        except Grupa.DoesNotExist:

            izbGrupe.save()

            for p23 in request.POST.getlist('predmeti'):
                izbGrupe.nepolozeni_predmeti.add(p23)
            izbGrupe.save()

            izborna_grupa = IzbornaGrupa.objects.get(
                oznaka_grupe=request.POST['grupe'])

            if trenutniSemestar == 'neparni':
                if datetime.datetime.now().month <= 2:
                    semestar = Semestar.objects.get(
                        vrsta=trenutniSemestar,
                        skolska_godina_pocetak=datetime.datetime.now().year -
                        1)
                else:
                    semestar = Semestar.objects.get(
                        vrsta=trenutniSemestar,
                        skolska_godina_pocetak=datetime.datetime.now().year)
            else:
                semestar = Semestar.objects.get(
                    vrsta=trenutniSemestar,
                    skolska_godina_pocetak=datetime.datetime.now().year)

            try:
                grupa_nova = Grupa.objects.get(
                    oznaka_grupe=request.POST['grupe'],
                    smer=student.smer,
                    semestar=semestar)
            except Grupa.DoesNotExist:
                grupa_nova = Grupa(oznaka_grupe=request.POST['grupe'],
                                   smer=student.smer,
                                   semestar=semestar)
                grupa_nova.save()

            student.grupa.add(grupa_nova)
            student.save()

            broj_studenata = izborna_grupa.broj_studenata
            izborna_grupa.broj_studenata = broj_studenata + 1
            izborna_grupa.save()

            context = {'username': request.session['username']}
            return render(request, 'studserviceapp/uspjesnoDodatStudent.html',
                          context)
Ejemplo n.º 6
0
def chooseagroup(request, username):
    """
    Provjera da li je nalog od studenta

    :param request:
    :param username:
    :return:
    """

    trenutnaGodina = datetime.datetime.now().year
    slGodina = trenutnaGodina + 1

    studenti = Student.objects.all()
    predmeti = Predmet.objects.all()

    trenutniSemestar = get_current_semester()

    nalog = Nalog.objects.get(username=username)
    if (nalog.uloga == 'student'):

        student = Student.objects.get(nalog__username=username)
        grupe = IzbornaGrupa.objects.filter(smer=student.smer,
                                            aktivna=True,
                                            broj_studenata__lt=F('kapacitet'))
        grupee = []
        for g in grupe:
            grupa = IzbornaGrupa.objects.get(id=g.id)
            grupee.append(grupa)

        if (len(grupee) < 1):
            context = {'username': username}
            return render(request, 'studserviceapp/neuspehizborgrupe.html',
                          context)

        if (trenutniSemestar == 'neparni'):
            sem = 1
        else:
            sem = 2

        if (sem == 1):
            r1 = 1
            r2 = 3
            r3 = 5
            r4 = 7
        else:
            r1 = 2
            r2 = 4
            r3 = 6
            r4 = 8

        context = {
            'username': username,
            's': student,
            'grupe': grupee,
            'predmeti': predmeti,
            'p': trenutnaGodina,
            'k': slGodina,
            'r1': r1,
            'r2': r2,
            'r3': r3,
            'r4': r4
        }
        return render(request, 'studserviceapp/izborgrupe.html', context)
Ejemplo n.º 7
0
def studentDetaljiObrada(request):
    if request.method == 'POST':
        ime = request.POST['ime']
        prezime = request.POST['prezime']
        smjer = request.POST['smjer']
        godUpisa = request.POST['godUpisa']
        brIndeksa = request.POST['brIndeksa']

        nalog = Nalog.objects.get(username=request.session['username'])

        if ime == "" or prezime == "" or smjer == "" or godUpisa == "" or brIndeksa == "":
            return HttpResponse(
                "Niste popunili sva polja, vratite se i popunite!")
        else:
            trenutniSemestar = get_current_semester()
            username = ime[0] + prezime + godUpisa[2:4]
            student = Student.objects.get(nalog__username=username)

            # provjera semestra nije neophodna iz dole navedenog razloga ali je tu da bi se
            # u da tom trenutku ispisala jedna izborna grupa zavisno od semstra u kojem se nalazimo
            if trenutniSemestar == 'neparni':
                if datetime.datetime.now().month <= 2:
                    grupa = student.grupa.get(
                        semestar__skolska_godina_pocetak=datetime.datetime.now(
                        ).year - 1,
                        semestar__vrsta='neparni')
                else:
                    grupa = student.grupa.get(
                        semestar__skolska_godina_pocetak=datetime.datetime.now(
                        ).year,
                        semestar__vrsta='neparni')
            else:
                grupa = student.grupa.get(
                    semestar__skolska_godina_kraj=datetime.datetime.now().year,
                    semestar__vrsta='parni')

            # staviti get ako ima samo jedan unos, za tu realizaciju bi trebalo da se pamti dodatno u modelu godina
            # kada je izvrsen izbor grupe kako bi svaki put taj izbor bio unikatan
            ige = IzborGrupe.objects.filter(
                student__nalog__username=username).order_by('-id').values()[:1]
            #ige = reversed(ige1)
            print("Evo me " + str(ige))

            izborGrupe = IzborGrupe.objects.get(id=ige[0]['id'])

            ostvarenoESPB = izborGrupe.ostvarenoESPB
            upisujeESPB = izborGrupe.upisujeESPB
            upisuje_semestar = izborGrupe.upisuje_semestar
            nacin_placanja = izborGrupe.nacin_placanja
            nepolozeni_predmeti = list(
                izborGrupe.nepolozeni_predmeti.all().values())

            if len(nepolozeni_predmeti) <= 0:
                nepolozeni_predmeti = False
            izabrana_grupa = grupa.oznaka_grupe

            context = {
                'username': request.session['username'],
                'uloga': nalog.uloga,
                'ost': ostvarenoESPB,
                'upisuje': upisujeESPB,
                'us': upisuje_semestar,
                'np': nacin_placanja,
                'nepolozeni': nepolozeni_predmeti,
                'izg': izabrana_grupa
            }

            return render(request, 'studserviceapp/DetaljiStudenta.html',
                          context)