Пример #1
0
    def _zamanlari_cikar(self, writer, ogretim_elemani, tur, bolum):
        """Okutmanın bölüme ait zaman planına göre zaman seçenekleri çıkar

        Args:
            writer: XML çıktısını yazan obje
            okutman (Okutman): Zaman planları kontrol edilecek eğitim görevlisi
            tur (Ders.DerslikTurleri): Zamanların çıkarıldığı dersin ders etkinliği
            bolum (Unit): Uygun zamanları çıkartan bölüm
        """
        # TODO: Eğer öğretim elemanı birden fazla bölümde ders veriyorsa, diğer bölümlerde ders verdiği ders saatleri burada export edilmemeli
        plan = OgElemaniZamanPlani.objects.get(birim=bolum, okutman=ogretim_elemani)
        # Sadece uygun olan zaman cetvelleri
        cetveller = list(ZamanCetveli.objects.filter(birim=bolum, ogretim_elemani_zaman_plani=plan).exclude(durum=3))
        for cetvel in cetveller:
            dilim = cetvel.zaman_dilimi
            zaman = timedelta(hours=int(dilim.baslama_saat), minutes=int(dilim.baslama_dakika))
            bitis = timedelta(hours=int(dilim.bitis_saat), minutes=int(dilim.bitis_dakika))
            gun = self._GUNLER[cetvel.gun]
            sure = int(tur.ders_saati)
            ders_araligi = timedelta(minutes=int(dilim.ders_araligi))
            # Bitiş zamanı gelene kadar, zamanları ekle
            while zaman < bitis:
                # Pazar günü gece yarısını geçen zaman çıkarırsak solver hata veriyor
                if cetvel.gun == 7 and (zaman + timedelta(hours=sure)) >= timedelta(hours=24): break
                writer.text_element('time', attrs={'days': gun,
                                        'start': '%i' % timedelta2slot(zaman),
                                        'length': '%i' % saat2slot(sure),
                                        'breaktime': '%i' % dilim.ara_suresi,
                                        'pref': '%i' % cetvel.durum
                                        })
                zaman += ders_araligi
Пример #2
0
 def prepare_data(self, writer):
     bolum = Unit.objects.get(yoksis_no=self.manager.args.bolum)
     with writer.element('timetable', {
         'version': '2.4',
         'initiative': '%s' % self.uni,
         'term': '%i%s' % (_year(), self.term.ad),
         'created': '%s' % str(date.today()),
         'nrDays': '7',
         'slotsPerDay': '%i' % saat2slot(24)}):
         self.export_rooms(writer)
         self.export_classes(writer, bolum)
Пример #3
0
 def prepare_data(self, writer):
     bolum = Unit.objects.get(yoksis_no=self.manager.args.bolum)
     with writer.element(
             'timetable', {
                 'version': '2.4',
                 'initiative': '%s' % self.uni,
                 'term': '%i%s' % (_year(), self.term.ad),
                 'created': '%s' % str(date.today()),
                 'nrDays': '7',
                 'slotsPerDay': '%i' % saat2slot(24)
             }):
         self.export_rooms(writer)
         self.export_classes(writer, bolum)
Пример #4
0
    def _zamanlari_cikar(self, writer, ogretim_elemani, tur, bolum):
        """Okutmanın bölüme ait zaman planına göre zaman seçenekleri çıkar

        Args:
            writer: XML çıktısını yazan obje
            okutman (Okutman): Zaman planları kontrol edilecek eğitim görevlisi
            tur (Ders.DerslikTurleri): Zamanların çıkarıldığı dersin ders etkinliği
            bolum (Unit): Uygun zamanları çıkartan bölüm
        """
        # TODO: Eğer öğretim elemanı birden fazla bölümde ders veriyorsa, diğer bölümlerde ders verdiği ders saatleri burada export edilmemeli
        plan = OgElemaniZamanPlani.objects.get(birim=bolum,
                                               okutman=ogretim_elemani)
        # Sadece uygun olan zaman cetvelleri
        cetveller = list(
            ZamanCetveli.objects.filter(
                birim=bolum,
                ogretim_elemani_zaman_plani=plan).exclude(durum=3))
        for cetvel in cetveller:
            dilim = cetvel.zaman_dilimi
            zaman = timedelta(hours=int(dilim.baslama_saat),
                              minutes=int(dilim.baslama_dakika))
            bitis = timedelta(hours=int(dilim.bitis_saat),
                              minutes=int(dilim.bitis_dakika))
            gun = self._GUNLER[cetvel.gun]
            sure = int(tur.ders_saati)
            ders_araligi = timedelta(minutes=int(dilim.ders_araligi))
            # Bitiş zamanı gelene kadar, zamanları ekle
            while zaman < bitis:
                # Pazar günü gece yarısını geçen zaman çıkarırsak solver hata veriyor
                if cetvel.gun == 7 and (
                        zaman + timedelta(hours=sure)) >= timedelta(hours=24):
                    break
                writer.text_element('time',
                                    attrs={
                                        'days': gun,
                                        'start': '%i' % timedelta2slot(zaman),
                                        'length': '%i' % saat2slot(sure),
                                        'breaktime': '%i' % dilim.ara_suresi,
                                        'pref': '%i' % cetvel.durum
                                    })
                zaman += ders_araligi