예제 #1
0
파일: views.py 프로젝트: marta90/Projekt
def zapisyAdministracyjne(request, pierwszyTRZPlanem, pierwszyAZLinkiem):
    print("dzialam")
    czyKursZapisany = None
    czyProwadzacyZapisany = None
    k = models.Kurs()  # obiekt bazy tabeli Kurs
    g = models.Grupa()  # obiekt bazy tabeli Grupa
    p = models.Prowadzacy()  # obiekt bazy tabeli Prowadzacy
    pl = models.Plan()  # obiekt bazy tabeli Plan - GrupyStudentow
    uz = views.uzSesja(request)

    # KURS
    kodGrupy = pierwszyAZLinkiem.findNextSibling('td')
    kodGrupyTxt = kodGrupy.string.strip()  # pobranie kodu grupy
    kodKursu = kodGrupy.findNextSibling('td')
    kodKursuTxt = kodKursu.string.strip()  # pobranie kodu kursu
    nazwa = kodKursu.findNextSibling('td')
    nazwaKursuTxt = nazwa.string.strip()  # pobranie nazwy kursu
    kodBlokuKursow = pierwszyTRZPlanem.findNextSibling('tr')
    prowadzacyIPkt = kodBlokuKursow.findNextSibling('tr')
    dzieciprowadzacyIPkt = prowadzacyIPkt.findChildren(
        'td', False)  # znalezienie wszystkich dzieci "td" od wiersza tr
    rodzajKursu = dzieciprowadzacyIPkt[1]
    rodzajKursuTxt = rodzajKursu.string.strip().encode(
        'utf-8')  # pobranie rodzaju kursu
    rodzajKursuTxtKrotki = {  # Switch
        'Wykład':
        'W',  # Jesli jest Wyklad to do rdzKursuTxtKrotki przypisane jest W
        'Zajęcia laboratoryjne': 'L',
        'Praktyka': 'P',
        'Seminarium': 'S',
        'Projekt': 'P',
        'Ćwiczenia': 'Ć'
    }[rodzajKursuTxt]  # Co sprawdzamy w Case
    if (dzieciprowadzacyIPkt[len(dzieciprowadzacyIPkt) - 1].string.strip() !=
            ''):  #Czasmi nie ma punktów ECTS
        punktyECTS = dzieciprowadzacyIPkt[len(dzieciprowadzacyIPkt) -
                                          1].string.strip()
        if punktyECTS.find(',') != -1:
            punktyECTS = punktyECTS[:punktyECTS.index(
                ','
            )]  # Czasami te punkty sa zapisane jako np. 3,00 więc pozbywamy się tej reszty :D
    else:
        punktyECTS = '0'  # W przypadku kiedy nie ma podane ECTS
    czyJestKurs = None
    try:
        czyJestKurs = models.Kurs.objects.get(kodKursu=kodKursuTxt)
    except ObjectDoesNotExist:
        print("Kurs doesn't exist.")

    if (czyJestKurs == None):
        k.nazwa = nazwaKursuTxt
        k.rodzaj = rodzajKursuTxtKrotki
        k.ects = punktyECTS
        k.kodKursu = kodKursuTxt
        czyKursZapisany = k.save()
    else:
        if (czyJestKurs.nazwa != nazwaKursuTxt):
            czyJestKurs.nazwa = nazwaKursuTxt
            czyJestKurs.save()
        if (czyJestKurs.rodzaj != rodzajKursuTxtKrotki):
            czyJestKurs.rodzaj = rodzajKursuTxtKrotki
            czyJestKurs.save()
        if (czyJestKurs.ects != punktyECTS):
            czyJestKurs.ects = punktyECTS
            czyJestKurs.save()

    # PROWADZACY
    prow = dzieciprowadzacyIPkt[0]
    imieNazwProw = prow.string.strip().split(
    )  # oddzielenie imienia od nazwiska
    tytulProw = ''  # Tytul prowadzacego
    dlLisProw = len(
        imieNazwProw)  # rozmiar listy z tytulemProw imieniem i nazwiskiem
    for i in range(0, dlLisProw - 3):  # Odczytanie tytulu
        tytulProw += imieNazwProw[i] + " "
    tytulProw += imieNazwProw[dlLisProw - 3]
    imieProw = imieNazwProw[dlLisProw - 2]  #Odczytanie imienia
    nazwiskoProw = imieNazwProw[dlLisProw - 1]  #Odczytanie nazwiska
    coProw = prow.findNextSibling('td')
    #zapis do bazy Prowadzacego
    #czyJestProw = models.Prowadzacy.objects.filter(imie = imieProw, nazwisko = nazwiskoProw, tytul = tytulProw)
    czyJestProw = None
    try:
        czyJestProw = models.Prowadzacy.objects.get(imie=imieProw,
                                                    nazwisko=nazwiskoProw,
                                                    tytul=tytulProw)
    except ObjectDoesNotExist:
        print("Prowadzacy doesn't exist.")

    if (czyJestProw == None):
        p.imie = imieProw
        p.nazwisko = nazwiskoProw
        p.tytul = tytulProw
        p.ktoWprowadzil = uz
        p.dataOstZmianyDanych = datetime.date.today()
        p.ktoZmienilDane = uz
        czyProwadzacyZapisany = p.save()

    # GODZINY I MIEJSCE
    prowadzacyGrupy = models.Prowadzacy.objects.get(imie=imieProw,
                                                    nazwisko=nazwiskoProw,
                                                    tytul=tytulProw)
    kursGrupy = models.Kurs.objects.get(kodKursu=kodKursuTxt)
    godziny = prowadzacyIPkt.findNextSibling('tr')
    dataMiejsce = godziny.next.findNextSibling('td').findChildren('td')

    for dm in dataMiejsce:
        g = models.Grupa()  # obiekt bazy tabeli Grupa
        pl = models.Plan()  # obiekt bazy tabeli Plan - GrupyStudentow
        miejsce = ""
        dzien = ""
        parz = ""
        godzR = None
        godzZ = None
        czyData = None
        czyKursZaoczny = False

        listaDM = dm.string.split(',', 1)  # oddzielenie daty od miejsca
        if listaDM[0].strip() != "bez terminu":
            miejsce = listaDM[1][1:]  # pobranie miejsca
            listaDG = listaDM[0].split()  # odzielenie dnia od godziny
            dzienIParz = listaDG[0].split('/',
                                          1)  # oddzielenie dnia od parzystosci
            if (len(dzienIParz) == 1):
                dzien = dzienIParz[0]
            else:
                dzien = dzienIParz[0]
                parz = dzienIParz[1]
            #print(dzien)
            czyData = re.search('^(\d{2,4})-(\d{2})-(\d{2})$',
                                dzien)  # Od daty zaczyna się dla zaocznych
            if (czyData == None):
                godz = listaDG[1].split('-', 1)  # oddzielenie godz rozp od zak
                godzR = godz[0]
                godzZ = godz[1]
                #zapis do bazy Grupy
                #czyJestGrupa = models.Grupa.objects.filter(kodGrupy = kodGrupyTxt, prowadzacy = prowadzacyGrupy, dzienTygodnia = dzien, parzystosc = parz,
                #                                           godzinaOd = godzR, godzinaDo = godzZ, miejsce=miejsce, kurs = kursGrupy)
                czyJestGrupa = None
                try:
                    czyJestGrupa = models.Grupa.objects.get(
                        kodGrupy=kodGrupyTxt, dzienTygodnia=dzien)
                except ObjectDoesNotExist:
                    print("Grupa doesn't exist.")

                if (czyJestGrupa == None):
                    g.kodGrupy = kodGrupyTxt
                    g.prowadzacy = prowadzacyGrupy
                    g.dzienTygodnia = dzien
                    g.parzystosc = parz
                    g.godzinaOd = godzR
                    g.godzinaDo = godzZ
                    g.miejsce = miejsce
                    g.kurs = kursGrupy
                    g.save(force_insert=True)
                else:  #Aktualizacja grupy
                    if (czyJestGrupa.prowadzacy != prowadzacyGrupy):
                        czyJestGrupa.prowadzacy = prowadzacyGrupy
                        czyJestGrupa.save()
                    if (czyJestGrupa.dzienTygodnia != dzien):
                        czyJestGrupa.dzienTygodnia = dzien
                        czyJestGrupa.save()
                    if (czyJestGrupa.parzystosc != parz):
                        czyJestGrupa.parzystosc = parz
                        czyJestGrupa.save()
                    if (czyJestGrupa.godzinaOd != godzR):
                        czyJestGrupa.godzinaOd = godzR
                        czyJestGrupa.save()
                    if (czyJestGrupa.godzinaDo != godzZ):
                        czyJestGrupa.godzinaDo = godzZ
                        czyJestGrupa.save()
                    if (czyJestGrupa.miejsce != miejsce):
                        czyJestGrupa.miejsce = miejsce
                        czyJestGrupa.save()
                    if (czyJestGrupa.kurs != kursGrupy):
                        czyJestGrupa.kurs = kursGrupy
                        czyJestGrupa.save()
            else:
                czyKursZaoczny = True
        else:
            czyJestGrupa = None
            try:
                czyJestGrupa = models.Grupa.objects.get(kodGrupy=kodGrupyTxt,
                                                        dzienTygodnia=dzien)
            except ObjectDoesNotExist:
                print("Grupa doesn't exist.")
            if (czyJestGrupa == None):
                g.kodGrupy = kodGrupyTxt
                g.prowadzacy = prowadzacyGrupy
                g.dzienTygodnia = dzien
                g.parzystosc = parz
                g.miejsce = miejsce
                g.kurs = kursGrupy
                g.save(force_insert=True)
            else:
                if (czyJestGrupa.prowadzacy != prowadzacyGrupy):
                    czyJestGrupa.prowadzacy = prowadzacyGrupy
                    czyJestGrupa.save()
                if (czyJestGrupa.dzienTygodnia != dzien):
                    czyJestGrupa.dzienTygodnia = dzien
                    czyJestGrupa.save()
                if (czyJestGrupa.parzystosc != parz):
                    czyJestGrupa.parzystosc = parz
                    czyJestGrupa.save()
                if (czyJestGrupa.miejsce != miejsce):
                    czyJestGrupa.miejsce = miejsce
                    czyJestGrupa.save()
                if (czyJestGrupa.kurs != kursGrupy):
                    czyJestGrupa.kurs = kursGrupy
                    czyJestGrupa.save()

        if not (czyKursZaoczny):
            print("ZAAAAPISZ")
            # ZAPISANIE TYCH GRUP DO STUDENTA
            #student = models.Student.objects.get(uzytkownik = uz)
            g = models.Grupa.objects.get(kodGrupy=kodGrupyTxt,
                                         dzienTygodnia=dzien)
            if not (models.Plan.objects.filter(uzytkownik=uz,
                                               grupa=g).exists()):
                pl.uzytkownik = uz
                pl.grupa = g
                pl.save()
        else:
            if (czyKursZapisany):
                czyKursZapisany.delete()
            if (czyProwadzacyZapisany):
                czyProwadzacyZapisany.delete()
예제 #2
0
파일: views.py 프로젝트: marta90/Projekt
def zapisyAdministracyjne(request, pierwszyTRZPlanem, pierwszyAZLinkiem):
        print("dzialam")
        czyKursZapisany = None
        czyProwadzacyZapisany = None
        k = models.Kurs()          # obiekt bazy tabeli Kurs
        g = models.Grupa()         # obiekt bazy tabeli Grupa
        p = models.Prowadzacy()    # obiekt bazy tabeli Prowadzacy
        pl = models.Plan()         # obiekt bazy tabeli Plan - GrupyStudentow
        uz = views.uzSesja(request)
        
        # KURS
        kodGrupy = pierwszyAZLinkiem.findNextSibling('td')
        kodGrupyTxt = kodGrupy.string.strip()    # pobranie kodu grupy
        kodKursu = kodGrupy.findNextSibling('td')
        kodKursuTxt = kodKursu.string.strip()    # pobranie kodu kursu
        nazwa = kodKursu.findNextSibling('td')
        nazwaKursuTxt = nazwa.string.strip()     # pobranie nazwy kursu
        kodBlokuKursow = pierwszyTRZPlanem.findNextSibling('tr')
        prowadzacyIPkt = kodBlokuKursow.findNextSibling('tr')
        dzieciprowadzacyIPkt = prowadzacyIPkt.findChildren('td', False)     # znalezienie wszystkich dzieci "td" od wiersza tr
        rodzajKursu = dzieciprowadzacyIPkt[1]
        rodzajKursuTxt = rodzajKursu.string.strip().encode('utf-8')      # pobranie rodzaju kursu
        rodzajKursuTxtKrotki = {    # Switch
            'Wykład': 'W',          # Jesli jest Wyklad to do rdzKursuTxtKrotki przypisane jest W
            'Zajęcia laboratoryjne': 'L',
            'Praktyka': 'P',
            'Seminarium': 'S',
            'Projekt': 'P',
            'Ćwiczenia': 'Ć'
        }[rodzajKursuTxt]           # Co sprawdzamy w Case
        if(dzieciprowadzacyIPkt[len(dzieciprowadzacyIPkt)-1].string.strip() != ''): #Czasmi nie ma punktów ECTS
            punktyECTS = dzieciprowadzacyIPkt[len(dzieciprowadzacyIPkt)-1].string.strip()
            if punktyECTS.find(',') != -1:
                punktyECTS = punktyECTS[:punktyECTS.index(',')]         # Czasami te punkty sa zapisane jako np. 3,00 więc pozbywamy się tej reszty :D
        else:
            punktyECTS = '0'    # W przypadku kiedy nie ma podane ECTS
        czyJestKurs = None
        try:
            czyJestKurs = models.Kurs.objects.get(kodKursu = kodKursuTxt)
        except ObjectDoesNotExist:
            print("Kurs doesn't exist.")
            
        if (czyJestKurs == None):
            k.nazwa = nazwaKursuTxt
            k.rodzaj = rodzajKursuTxtKrotki
            k.ects = punktyECTS
            k.kodKursu = kodKursuTxt
            czyKursZapisany = k.save()
        else:
            if (czyJestKurs.nazwa != nazwaKursuTxt):
                czyJestKurs.nazwa = nazwaKursuTxt
                czyJestKurs.save()
            if (czyJestKurs.rodzaj != rodzajKursuTxtKrotki):
                czyJestKurs.rodzaj = rodzajKursuTxtKrotki
                czyJestKurs.save()
            if (czyJestKurs.ects != punktyECTS):
                czyJestKurs.ects = punktyECTS
                czyJestKurs.save()
        
        # PROWADZACY
        prow  = dzieciprowadzacyIPkt[0]
        imieNazwProw = prow.string.strip().split() # oddzielenie imienia od nazwiska
        tytulProw = ''                              # Tytul prowadzacego
        dlLisProw = len(imieNazwProw)       # rozmiar listy z tytulemProw imieniem i nazwiskiem
        for i in range(0, dlLisProw-3):     # Odczytanie tytulu
            tytulProw += imieNazwProw[i] + " "
        tytulProw += imieNazwProw[dlLisProw-3]
        imieProw = imieNazwProw[dlLisProw-2]        #Odczytanie imienia
        nazwiskoProw = imieNazwProw[dlLisProw-1]    #Odczytanie nazwiska
        coProw = prow.findNextSibling('td')
        #zapis do bazy Prowadzacego
        #czyJestProw = models.Prowadzacy.objects.filter(imie = imieProw, nazwisko = nazwiskoProw, tytul = tytulProw)
        czyJestProw = None
        try:
            czyJestProw = models.Prowadzacy.objects.get(imie = imieProw, nazwisko = nazwiskoProw, tytul = tytulProw)
        except ObjectDoesNotExist:
            print("Prowadzacy doesn't exist.")
        
        if (czyJestProw == None):
            p.imie = imieProw
            p.nazwisko = nazwiskoProw
            p.tytul = tytulProw
            p.ktoWprowadzil = uz
            p.dataOstZmianyDanych =  datetime.date.today()
            p.ktoZmienilDane = uz
            czyProwadzacyZapisany = p.save()
        
        # GODZINY I MIEJSCE
        prowadzacyGrupy = models.Prowadzacy.objects.get(imie = imieProw, nazwisko = nazwiskoProw, tytul = tytulProw)
        kursGrupy = models.Kurs.objects.get(kodKursu = kodKursuTxt)
        godziny = prowadzacyIPkt.findNextSibling('tr')
        dataMiejsce = godziny.next.findNextSibling('td').findChildren('td')
        
        for dm in dataMiejsce:
            g = models.Grupa()         # obiekt bazy tabeli Grupa
            pl = models.Plan()         # obiekt bazy tabeli Plan - GrupyStudentow
            miejsce = ""
            dzien = ""
            parz = ""
            godzR = None
            godzZ = None
            czyData = None
            czyKursZaoczny = False
            
            listaDM = dm.string.split(',', 1)           # oddzielenie daty od miejsca
            if listaDM[0].strip() != "bez terminu":
                miejsce = listaDM[1][1:]                # pobranie miejsca
                listaDG = listaDM[0].split()            # odzielenie dnia od godziny
                dzienIParz = listaDG[0].split('/', 1)   # oddzielenie dnia od parzystosci
                if (len(dzienIParz) == 1):
                    dzien = dzienIParz[0]
                else:
                    dzien = dzienIParz[0]
                    parz = dzienIParz[1]
                #print(dzien)
                czyData = re.search('^(\d{2,4})-(\d{2})-(\d{2})$', dzien)   # Od daty zaczyna się dla zaocznych
                if (czyData == None):
                    godz = listaDG[1].split('-', 1) # oddzielenie godz rozp od zak
                    godzR = godz[0]           
                    godzZ = godz[1]
                    #zapis do bazy Grupy
                    #czyJestGrupa = models.Grupa.objects.filter(kodGrupy = kodGrupyTxt, prowadzacy = prowadzacyGrupy, dzienTygodnia = dzien, parzystosc = parz,
                    #                                           godzinaOd = godzR, godzinaDo = godzZ, miejsce=miejsce, kurs = kursGrupy)
                    czyJestGrupa = None
                    try:
                        czyJestGrupa = models.Grupa.objects.get(kodGrupy = kodGrupyTxt, dzienTygodnia = dzien)
                    except ObjectDoesNotExist:
                        print("Grupa doesn't exist.")
        
                    if( czyJestGrupa == None ):
                        g.kodGrupy = kodGrupyTxt
                        g.prowadzacy = prowadzacyGrupy
                        g.dzienTygodnia = dzien
                        g.parzystosc = parz
                        g.godzinaOd = godzR
                        g.godzinaDo = godzZ
                        g.miejsce = miejsce
                        g.kurs = kursGrupy
                        g.save(force_insert=True)
                    else:   #Aktualizacja grupy
                        if (czyJestGrupa.prowadzacy != prowadzacyGrupy):
                            czyJestGrupa.prowadzacy = prowadzacyGrupy
                            czyJestGrupa.save()
                        if (czyJestGrupa.dzienTygodnia != dzien):
                            czyJestGrupa.dzienTygodnia = dzien
                            czyJestGrupa.save()
                        if (czyJestGrupa.parzystosc != parz):
                            czyJestGrupa.parzystosc = parz
                            czyJestGrupa.save()
                        if (czyJestGrupa.godzinaOd != godzR):
                            czyJestGrupa.godzinaOd = godzR
                            czyJestGrupa.save()
                        if (czyJestGrupa.godzinaDo != godzZ):
                            czyJestGrupa.godzinaDo = godzZ
                            czyJestGrupa.save()
                        if (czyJestGrupa.miejsce != miejsce):
                            czyJestGrupa.miejsce = miejsce
                            czyJestGrupa.save()
                        if (czyJestGrupa.kurs != kursGrupy):
                            czyJestGrupa.kurs = kursGrupy
                            czyJestGrupa.save()
                else:
                    czyKursZaoczny = True
            else:
                czyJestGrupa = None
                try:
                    czyJestGrupa = models.Grupa.objects.get(kodGrupy = kodGrupyTxt, dzienTygodnia = dzien)
                except ObjectDoesNotExist:
                    print("Grupa doesn't exist.")
                if( czyJestGrupa == None ):
                    g.kodGrupy = kodGrupyTxt
                    g.prowadzacy = prowadzacyGrupy
                    g.dzienTygodnia = dzien
                    g.parzystosc = parz
                    g.miejsce = miejsce
                    g.kurs = kursGrupy
                    g.save(force_insert=True)
                else:
                    if (czyJestGrupa.prowadzacy != prowadzacyGrupy):
                        czyJestGrupa.prowadzacy = prowadzacyGrupy
                        czyJestGrupa.save()
                    if (czyJestGrupa.dzienTygodnia != dzien):
                        czyJestGrupa.dzienTygodnia = dzien
                        czyJestGrupa.save()
                    if (czyJestGrupa.parzystosc != parz):
                        czyJestGrupa.parzystosc = parz
                        czyJestGrupa.save()
                    if (czyJestGrupa.miejsce != miejsce):
                        czyJestGrupa.miejsce = miejsce
                        czyJestGrupa.save()
                    if (czyJestGrupa.kurs != kursGrupy):
                        czyJestGrupa.kurs = kursGrupy
                        czyJestGrupa.save()
        
            if not(czyKursZaoczny):
                print("ZAAAAPISZ")
                # ZAPISANIE TYCH GRUP DO STUDENTA
                #student = models.Student.objects.get(uzytkownik = uz)
                g = models.Grupa.objects.get(kodGrupy = kodGrupyTxt, dzienTygodnia = dzien)
                if not(models.Plan.objects.filter(uzytkownik = uz, grupa = g).exists()):
                    pl.uzytkownik = uz
                    pl.grupa = g
                    pl.save()
            else:
                if (czyKursZapisany):
                    czyKursZapisany.delete()
                if (czyProwadzacyZapisany):
                    czyProwadzacyZapisany.delete()
예제 #3
0
파일: views.py 프로젝트: marta90/Projekt
def usunZajecia(request):
    uz = views.uzSesja(request)
    try:
        models.Plan.objects.filter(uzytkownik=uz).delete()
    except:
        print("Nie ma zadnych zajec. Czyste konto.")
예제 #4
0
파일: views.py 프로젝트: marta90/Projekt
def usunZajecia(request):
    uz = views.uzSesja(request)
    try:
        models.Plan.objects.filter(uzytkownik = uz).delete()
    except:
        print("Nie ma zadnych zajec. Czyste konto.")