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)
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)
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!")
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)
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)
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)
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)