From 7b32f4ac3386988aa6f70bd6e8880b0dad997ca2 Mon Sep 17 00:00:00 2001 From: furkanUyar Date: Mon, 25 Jul 2016 18:13:16 +0300 Subject: [PATCH 1/5] =?UTF-8?q?S=C4=B1nav=20Program=C4=B1=20g=C3=B6r=C3=BC?= =?UTF-8?q?nt=C3=BCleme=20hem=20=C3=B6=C4=9Fretim=20g=C3=B6revlisi=20i?= =?UTF-8?q?=C3=A7in=20hem=20de=20=C3=B6=C4=9Frenci=20i=C3=A7in=20yaz=C4=B1?= =?UTF-8?q?ld=C4=B1.=20rref=20#5398?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ogrenci_sinav_programi_goruntule.bpmn | 56 +++++++++++ .../okutman_sinav_programi_goruntule.bpmn | 56 +++++++++++ ulakbus/models/ders_programi.py | 1 - ulakbus/models/ders_programi_data.py | 2 +- ulakbus/views/sinav_programi/__init__.py | 11 +++ .../ogrenci_sinav_programi_goruntule.py | 94 +++++++++++++++++++ .../okutman_sinav_programi_goruntule.py | 88 +++++++++++++++++ 7 files changed, 306 insertions(+), 2 deletions(-) create mode 100644 ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn create mode 100644 ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn create mode 100644 ulakbus/views/sinav_programi/__init__.py create mode 100644 ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py create mode 100644 ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py diff --git a/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn b/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn new file mode 100644 index 00000000..681fdb12 --- /dev/null +++ b/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn @@ -0,0 +1,56 @@ + + + + + + + + SequenceFlow_1q5ii4v + + + + SequenceFlow_162b7vs + + + + SequenceFlow_1q5ii4v + SequenceFlow_162b7vs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn b/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn new file mode 100644 index 00000000..b935085c --- /dev/null +++ b/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn @@ -0,0 +1,56 @@ + + + + + + + + SequenceFlow_18408cb + + + + + SequenceFlow_0bro10m + + + SequenceFlow_18408cb + SequenceFlow_0bro10m + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ulakbus/models/ders_programi.py b/ulakbus/models/ders_programi.py index 47be198c..32ada8ca 100644 --- a/ulakbus/models/ders_programi.py +++ b/ulakbus/models/ders_programi.py @@ -48,7 +48,6 @@ HAFTA = HAFTA_ICI_GUNLER + HAFTA_SONU_GUNLER - class ZamanDilimleri(Model): class Meta: diff --git a/ulakbus/models/ders_programi_data.py b/ulakbus/models/ders_programi_data.py index e2055376..26f368c8 100644 --- a/ulakbus/models/ders_programi_data.py +++ b/ulakbus/models/ders_programi_data.py @@ -57,4 +57,4 @@ class Meta: tarih = fields.DateTime('Sınav Tarihi', index=True) class SinavYerleri(ListNode): - room = Room('Sınav Yeri', index=True) + room = Room('Sınav Yeri', index=True) \ No newline at end of file diff --git a/ulakbus/views/sinav_programi/__init__.py b/ulakbus/views/sinav_programi/__init__.py new file mode 100644 index 00000000..c8a8869a --- /dev/null +++ b/ulakbus/views/sinav_programi/__init__.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +""" +""" + +# Copyright (C) 2015 ZetaOps Inc. +# +# This file is licensed under the GNU General Public License v3 +# (GPLv3). See LICENSE.txt for details. + +from .okutman_sinav_programi_goruntule import * +from .ogrenci_sinav_programi_goruntule import * \ No newline at end of file diff --git a/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py b/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py new file mode 100644 index 00000000..bd6c958e --- /dev/null +++ b/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2015 ZetaOps Inc. +# +# This file is licensed under the GNU General Public License v3 +# (GPLv3). See LICENSE.txt for details. +# + +from zengine.forms import JsonForm, fields +from zengine.views.crud import CrudView +from collections import OrderedDict +from ulakbus.models import Okutman, Personel, Sube, Donem, Ogrenci, OgrenciDersi +from ulakbus.models.ders_programi_data import SinavEtkinligi +from ulakbus.models.ders_programi import HAFTA +# from ulakbus.views.sinav_programi import okutman_sinav_programi_goruntuleme as SP +import calendar + +class Ogrenci_Sinav_Programi_Goruntule(CrudView): + + def sinav_programi_goruntule(self): + + # ogrenci = Ogrenci.objects.get(user = self.current.user) + ogrenci = Ogrenci.objects.get('Fj3ysQn3lMlgXcxhGILzsfAiGZ') + guncel_donem = Donem.objects.get(guncel = True) + ogrenci_dersleri = OgrenciDersi.objects.filter(ogrenci = ogrenci,donem = guncel_donem) + + subeler = [] + for ogrenci_ders in ogrenci_dersleri: + subeler.append(ogrenci_ders.sube) + + ogrenci_adi = ogrenci.ad + ' ' + ogrenci.soyad + + sinav_etkinlik = sinav_etkinlik_olustur(subeler) + object_list = ['Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi','Pazar'] + self.output['objects'] = [object_list] + + _form = JsonForm(current=self.current) + _form.title = "%s %s Sınav Programı" % (ogrenci_adi, guncel_donem.ad) + + hafta_dict = hafta_gun_olustur(HAFTA) + for i in range(max(map(len,sinav_etkinlik.values()))): + sinav_etkinlik_list = OrderedDict({}) + for hafta_gun in hafta_dict.keys(): + if hafta_gun in sinav_etkinlik: + try: + etkinlik = sinav_etkinlik[hafta_gun][i] + sinav_saat = "%02d" %etkinlik.tarih.time().hour +':' + "%02d" %etkinlik.tarih.time().minute + sinav_etkinlik_list[hafta_dict[hafta_gun]] = etkinlik.sube.ad+' / '+ etkinlik.tarih.strftime('%d:%m:%Y')+ ' / ' + sinav_saat + except: + sinav_etkinlik_list[hafta_dict[hafta_gun]] = '' + + else: + sinav_etkinlik_list[hafta_dict[hafta_gun]] = '' + + item = { + "type": "table-multiRow", + "fields": sinav_etkinlik_list, + "actions": False, + 'key': '' + } + + self.output['objects'].append(item) + + self.form_out(_form) + +def sinav_etkinlik_olustur(subeler): + + sinav_etkinlik = {} + for sube in subeler: + try: + etkinlik = SinavEtkinligi.objects.get(sube=sube) + tarih = etkinlik.tarih + gun = calendar.weekday(tarih.year, tarih.month, tarih.day) + 1 + + if gun in sinav_etkinlik: + sinav_etkinlik[gun].append(etkinlik) + else: + sinav_etkinlik[gun] = [etkinlik] + except: + pass + return sinav_etkinlik + +def hafta_gun_olustur(HAFTA): + + hafta_dict = {} + for i in range(len(HAFTA)): + hafta_dict[HAFTA[i][0]] = HAFTA[i][1] + + return hafta_dict + + + + + + diff --git a/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py b/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py new file mode 100644 index 00000000..e922989c --- /dev/null +++ b/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2015 ZetaOps Inc. +# +# This file is licensed under the GNU General Public License v3 +# (GPLv3). See LICENSE.txt for details. +# + +from zengine.forms import JsonForm, fields +from zengine.views.crud import CrudView +from collections import OrderedDict +from ulakbus.models import Okutman, Personel, Sube, Donem +from ulakbus.models.ders_programi_data import SinavEtkinligi +from ulakbus.models.ders_programi import HAFTA +import calendar + +class Okutman_Sinav_Programi_Goruntule(CrudView): + + def sinav_programi_goruntule(self): + + # personel = Personel.objects.get(user = self.current.user) + # okutman = Okutman.objects.get(personel = personel) + okutman = Okutman.objects.get('5RC4wiXxdolAHvw0o703Qzk1sw7') # it will change + guncel_donem = Donem.objects.get(guncel = True) #it will change + subeler = Sube.objects.filter(okutman=okutman, donem = guncel_donem) + okutman_adi = okutman.ad + ' ' + okutman.soyad + + sinav_etkinlik = sinav_etkinlik_olustur(subeler) + object_list = ['Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi','Pazar'] + self.output['objects'] = [object_list] + + _form = JsonForm(current=self.current) + _form.title = "%s %s Sınav Programı" % (okutman_adi, guncel_donem.ad) + + hafta_dict = hafta_gun_olustur(HAFTA) + for i in range(max(map(len,sinav_etkinlik.values()))): + sinav_etkinlik_list = OrderedDict({}) + for hafta_gun in hafta_dict.keys(): + if hafta_gun in sinav_etkinlik: + try: + etkinlik = sinav_etkinlik[hafta_gun][i] + sinav_saat = "%02d" %etkinlik.tarih.time().hour +':' + "%02d" %etkinlik.tarih.time().minute + sinav_etkinlik_list[hafta_dict[hafta_gun]] = etkinlik.sube.ad+' / '+ etkinlik.tarih.strftime('%d:%m:%Y')+ ' / ' + sinav_saat + except: + sinav_etkinlik_list[hafta_dict[hafta_gun]] = '' + + else: + sinav_etkinlik_list[hafta_dict[hafta_gun]] = '' + + item = { + "type": "table-multiRow", + "fields": sinav_etkinlik_list, + "actions": False, + 'key': '' + } + + self.output['objects'].append(item) + + self.form_out(_form) + +def sinav_etkinlik_olustur(subeler): + + sinav_etkinlik = {} + for sube in subeler: + try: + etkinlik = SinavEtkinligi.objects.get(sube=sube) + tarih = etkinlik.tarih + gun = calendar.weekday(tarih.year, tarih.month, tarih.day) + 1 + + if gun in sinav_etkinlik: + sinav_etkinlik[gun].append(etkinlik) + else: + sinav_etkinlik[gun] = [etkinlik] + except: + pass + return sinav_etkinlik + +def hafta_gun_olustur(HAFTA): + + hafta_dict = {} + for i in range(len(HAFTA)): + hafta_dict[HAFTA[i][0]] = HAFTA[i][1] + + return hafta_dict + + + + + From 654e48eb9bcaf151a7004f21d674efbc9ebad657 Mon Sep 17 00:00:00 2001 From: Furkan Uyar Date: Mon, 25 Jul 2016 22:37:16 +0300 Subject: [PATCH 2/5] Tekrarlanan methodlar kaldirildi. rref #5397 --- .../ogrenci_sinav_programi_goruntule.bpmn | 60 +++++++++--------- .../ogrenci_sinav_programi_goruntule.py | 62 +++++-------------- 2 files changed, 45 insertions(+), 77 deletions(-) diff --git a/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn b/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn index 681fdb12..e52e6700 100644 --- a/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn +++ b/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn @@ -1,56 +1,56 @@ - - - + + + - + - SequenceFlow_1q5ii4v + SequenceFlow_18408cb - - - SequenceFlow_162b7vs + + SequenceFlow_0bro10m - - SequenceFlow_1q5ii4v - SequenceFlow_162b7vs + SequenceFlow_18408cb + SequenceFlow_0bro10m + + - - - + + + - + - + - - - + + + + + + - + - - + + - + - - - + + + - + - - - diff --git a/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py b/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py index bd6c958e..203a27c7 100644 --- a/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py +++ b/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py @@ -8,20 +8,18 @@ from zengine.forms import JsonForm, fields from zengine.views.crud import CrudView from collections import OrderedDict -from ulakbus.models import Okutman, Personel, Sube, Donem, Ogrenci, OgrenciDersi -from ulakbus.models.ders_programi_data import SinavEtkinligi +from ulakbus.models import Donem, Ogrenci, OgrenciDersi from ulakbus.models.ders_programi import HAFTA -# from ulakbus.views.sinav_programi import okutman_sinav_programi_goruntuleme as SP -import calendar +from ulakbus.views.sinav_programi import okutman_sinav_programi_goruntule as SP -class Ogrenci_Sinav_Programi_Goruntule(CrudView): +class Ogrenci_Sinav_Programi_Goruntule(CrudView): def sinav_programi_goruntule(self): - # ogrenci = Ogrenci.objects.get(user = self.current.user) - ogrenci = Ogrenci.objects.get('Fj3ysQn3lMlgXcxhGILzsfAiGZ') - guncel_donem = Donem.objects.get(guncel = True) - ogrenci_dersleri = OgrenciDersi.objects.filter(ogrenci = ogrenci,donem = guncel_donem) + ogrenci = Ogrenci.objects.get(user=self.current.user) + # ogrenci = Ogrenci.objects.get('Fj3ysQn3lMlgXcxhGILzsfAiGZ') + guncel_donem = Donem.objects.get(guncel=True) + ogrenci_dersleri = OgrenciDersi.objects.filter(ogrenci=ogrenci, donem=guncel_donem) subeler = [] for ogrenci_ders in ogrenci_dersleri: @@ -29,22 +27,23 @@ def sinav_programi_goruntule(self): ogrenci_adi = ogrenci.ad + ' ' + ogrenci.soyad - sinav_etkinlik = sinav_etkinlik_olustur(subeler) - object_list = ['Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi','Pazar'] + sinav_etkinlik = SP.sinav_etkinlik_olustur(subeler) + object_list = ['Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi', 'Pazar'] self.output['objects'] = [object_list] _form = JsonForm(current=self.current) _form.title = "%s %s Sınav Programı" % (ogrenci_adi, guncel_donem.ad) - hafta_dict = hafta_gun_olustur(HAFTA) - for i in range(max(map(len,sinav_etkinlik.values()))): + hafta_dict = SP.hafta_gun_olustur(HAFTA) + for i in range(max(map(len, sinav_etkinlik.values()))): sinav_etkinlik_list = OrderedDict({}) for hafta_gun in hafta_dict.keys(): if hafta_gun in sinav_etkinlik: try: etkinlik = sinav_etkinlik[hafta_gun][i] - sinav_saat = "%02d" %etkinlik.tarih.time().hour +':' + "%02d" %etkinlik.tarih.time().minute - sinav_etkinlik_list[hafta_dict[hafta_gun]] = etkinlik.sube.ad+' / '+ etkinlik.tarih.strftime('%d:%m:%Y')+ ' / ' + sinav_saat + sinav_saat = "%02d" % etkinlik.tarih.time().hour + ':' + "%02d" % etkinlik.tarih.time().minute + sinav_etkinlik_list[hafta_dict[hafta_gun]] = etkinlik.sube.ad + ' / ' + etkinlik.tarih.strftime( + '%d:%m:%Y') + ' / ' + sinav_saat except: sinav_etkinlik_list[hafta_dict[hafta_gun]] = '' @@ -56,39 +55,8 @@ def sinav_programi_goruntule(self): "fields": sinav_etkinlik_list, "actions": False, 'key': '' - } + } self.output['objects'].append(item) self.form_out(_form) - -def sinav_etkinlik_olustur(subeler): - - sinav_etkinlik = {} - for sube in subeler: - try: - etkinlik = SinavEtkinligi.objects.get(sube=sube) - tarih = etkinlik.tarih - gun = calendar.weekday(tarih.year, tarih.month, tarih.day) + 1 - - if gun in sinav_etkinlik: - sinav_etkinlik[gun].append(etkinlik) - else: - sinav_etkinlik[gun] = [etkinlik] - except: - pass - return sinav_etkinlik - -def hafta_gun_olustur(HAFTA): - - hafta_dict = {} - for i in range(len(HAFTA)): - hafta_dict[HAFTA[i][0]] = HAFTA[i][1] - - return hafta_dict - - - - - - From 2b90366463d07bd45f05abcf0c358a31c3d7f4ba Mon Sep 17 00:00:00 2001 From: Furkan Uyar Date: Mon, 25 Jul 2016 22:39:08 +0300 Subject: [PATCH 3/5] =?UTF-8?q?ADD,=20User=20ve=20Role=20ayarlamalar=C4=B1?= =?UTF-8?q?=20yap=C4=B1ld=C4=B1.=20rref=20#5398?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../okutman_sinav_programi_goruntule.bpmn | 30 ++++++++--------- .../okutman_sinav_programi_goruntule.py | 32 ++++++++----------- 2 files changed, 29 insertions(+), 33 deletions(-) diff --git a/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn b/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn index b935085c..595d8014 100644 --- a/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn +++ b/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn @@ -1,5 +1,5 @@ - + @@ -7,8 +7,6 @@ SequenceFlow_18408cb - - SequenceFlow_0bro10m @@ -16,39 +14,41 @@ SequenceFlow_18408cb SequenceFlow_0bro10m + + - + - + - + - + - - + + - + - + - + - - + + - + diff --git a/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py b/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py index e922989c..e183099a 100644 --- a/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py +++ b/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py @@ -13,33 +13,34 @@ from ulakbus.models.ders_programi import HAFTA import calendar -class Okutman_Sinav_Programi_Goruntule(CrudView): +class Okutman_Sinav_Programi_Goruntule(CrudView): def sinav_programi_goruntule(self): - # personel = Personel.objects.get(user = self.current.user) - # okutman = Okutman.objects.get(personel = personel) - okutman = Okutman.objects.get('5RC4wiXxdolAHvw0o703Qzk1sw7') # it will change - guncel_donem = Donem.objects.get(guncel = True) #it will change - subeler = Sube.objects.filter(okutman=okutman, donem = guncel_donem) + personel = Personel.objects.get(user=self.current.user) + okutman = Okutman.objects.get(personel=personel) + # okutman = Okutman.objects.get('5RC4wiXxdolAHvw0o703Qzk1sw7') # it will change + guncel_donem = Donem.objects.get(guncel=True) # it will change + subeler = Sube.objects.filter(okutman=okutman, donem=guncel_donem) okutman_adi = okutman.ad + ' ' + okutman.soyad sinav_etkinlik = sinav_etkinlik_olustur(subeler) - object_list = ['Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi','Pazar'] + object_list = ['Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi', 'Pazar'] self.output['objects'] = [object_list] _form = JsonForm(current=self.current) _form.title = "%s %s Sınav Programı" % (okutman_adi, guncel_donem.ad) hafta_dict = hafta_gun_olustur(HAFTA) - for i in range(max(map(len,sinav_etkinlik.values()))): + for i in range(max(map(len, sinav_etkinlik.values()))): sinav_etkinlik_list = OrderedDict({}) for hafta_gun in hafta_dict.keys(): if hafta_gun in sinav_etkinlik: try: etkinlik = sinav_etkinlik[hafta_gun][i] - sinav_saat = "%02d" %etkinlik.tarih.time().hour +':' + "%02d" %etkinlik.tarih.time().minute - sinav_etkinlik_list[hafta_dict[hafta_gun]] = etkinlik.sube.ad+' / '+ etkinlik.tarih.strftime('%d:%m:%Y')+ ' / ' + sinav_saat + sinav_saat = "%02d" % etkinlik.tarih.time().hour + ':' + "%02d" % etkinlik.tarih.time().minute + sinav_etkinlik_list[hafta_dict[hafta_gun]] = etkinlik.sube.ad + ' / ' + etkinlik.tarih.strftime( + '%d:%m:%Y') + ' / ' + sinav_saat except: sinav_etkinlik_list[hafta_dict[hafta_gun]] = '' @@ -51,14 +52,14 @@ def sinav_programi_goruntule(self): "fields": sinav_etkinlik_list, "actions": False, 'key': '' - } + } self.output['objects'].append(item) self.form_out(_form) -def sinav_etkinlik_olustur(subeler): +def sinav_etkinlik_olustur(subeler): sinav_etkinlik = {} for sube in subeler: try: @@ -74,15 +75,10 @@ def sinav_etkinlik_olustur(subeler): pass return sinav_etkinlik -def hafta_gun_olustur(HAFTA): +def hafta_gun_olustur(HAFTA): hafta_dict = {} for i in range(len(HAFTA)): hafta_dict[HAFTA[i][0]] = HAFTA[i][1] return hafta_dict - - - - - From d7a3442fa41324f222d315a6dda78579a4c9b82e Mon Sep 17 00:00:00 2001 From: Furkan Uyar Date: Tue, 26 Jul 2016 23:52:20 +0300 Subject: [PATCH 4/5] =?UTF-8?q?ADD,=20Sol=20men=C3=BC=20i=C3=A7in=20ad=20d?= =?UTF-8?q?e=C4=9Fi=C5=9Ftirildi=20ve=20dok=C3=BCmantasyon=20yap=C4=B1ld?= =?UTF-8?q?=C4=B1.=20rref=20#5397?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ogrenci_sinav_programi_goruntule.bpmn | 4 +-- .../ogrenci_sinav_programi_goruntule.py | 31 ++++++++++++++----- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn b/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn index e52e6700..b24771fa 100644 --- a/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn +++ b/ulakbus/diagrams/ogrenci_sinav_programi_goruntule.bpmn @@ -1,9 +1,9 @@ - + - + SequenceFlow_18408cb diff --git a/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py b/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py index 203a27c7..91fbd763 100644 --- a/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py +++ b/ulakbus/views/sinav_programi/ogrenci_sinav_programi_goruntule.py @@ -5,10 +5,11 @@ # (GPLv3). See LICENSE.txt for details. # -from zengine.forms import JsonForm, fields +from zengine.forms import JsonForm from zengine.views.crud import CrudView from collections import OrderedDict -from ulakbus.models import Donem, Ogrenci, OgrenciDersi +from ulakbus.models import Donem, Ogrenci, OgrenciDersi, \ + Sube # eğer haftanın günü(1,2..) öğretim görevlisinin sınavı varsa from ulakbus.models.ders_programi import HAFTA from ulakbus.views.sinav_programi import okutman_sinav_programi_goruntule as SP @@ -16,33 +17,49 @@ class Ogrenci_Sinav_Programi_Goruntule(CrudView): def sinav_programi_goruntule(self): + """ + Öğrenci kendi şubelerine ait sinav + programını görüntüleyebilir. + + """ ogrenci = Ogrenci.objects.get(user=self.current.user) - # ogrenci = Ogrenci.objects.get('Fj3ysQn3lMlgXcxhGILzsfAiGZ') guncel_donem = Donem.objects.get(guncel=True) + # Güncel döneme ve giriş yapan, öğrenciye ait öğrenci_dersleri bulunur. ogrenci_dersleri = OgrenciDersi.objects.filter(ogrenci=ogrenci, donem=guncel_donem) subeler = [] + # Bulunan öğrenci derslerinin şubeleri bulunur ve listeye eklenir. for ogrenci_ders in ogrenci_dersleri: - subeler.append(ogrenci_ders.sube) + try: + sube = Sube.objects.get(ogrenci_ders.sube.key) + subeler.append(sube) + except: + pass ogrenci_adi = ogrenci.ad + ' ' + ogrenci.soyad + # öğrencinin şubelerine göre sınav etkinlikleri + # dictionary'e eklenir. sinav_etkinlik = SP.sinav_etkinlik_olustur(subeler) object_list = ['Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi', 'Pazar'] self.output['objects'] = [object_list] _form = JsonForm(current=self.current) - _form.title = "%s %s Sınav Programı" % (ogrenci_adi, guncel_donem.ad) + _form.title = "%s / %s Sınav Programı" % (ogrenci_adi, guncel_donem.ad) hafta_dict = SP.hafta_gun_olustur(HAFTA) + # Öğrencinin bir günde maksimum kaç tane sınavı olduğu bulunur + # ve bu bilgi kadar dönülür. for i in range(max(map(len, sinav_etkinlik.values()))): sinav_etkinlik_list = OrderedDict({}) + # eğer haftanın günü(1,2..) öğrencinin sınavı varsa for hafta_gun in hafta_dict.keys(): if hafta_gun in sinav_etkinlik: try: etkinlik = sinav_etkinlik[hafta_gun][i] - sinav_saat = "%02d" % etkinlik.tarih.time().hour + ':' + "%02d" % etkinlik.tarih.time().minute - sinav_etkinlik_list[hafta_dict[hafta_gun]] = etkinlik.sube.ad + ' / ' + etkinlik.tarih.strftime( + sinav_saat = "%02d:%02d" % (etkinlik.tarih.time().hour, etkinlik.tarih.time().minute) + sinav_etkinlik_list[hafta_dict[hafta_gun]] = str( + etkinlik.sube.ad) + ' / ' + etkinlik.tarih.strftime( '%d:%m:%Y') + ' / ' + sinav_saat except: sinav_etkinlik_list[hafta_dict[hafta_gun]] = '' From 2e0a35d73010a419e28649255d174c3f695e8481 Mon Sep 17 00:00:00 2001 From: Furkan Uyar Date: Tue, 26 Jul 2016 23:53:40 +0300 Subject: [PATCH 5/5] =?UTF-8?q?ADD,=20Sol=20men=C3=BC=20i=C3=A7in=20ad=20d?= =?UTF-8?q?e=C4=9Fi=C5=9Ftirildi=20ve=20dok=C3=BCmantasyon=20yap=C4=B1ld?= =?UTF-8?q?=C4=B1.=20rref=20#5398?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../okutman_sinav_programi_goruntule.bpmn | 4 +-- .../okutman_sinav_programi_goruntule.py | 32 ++++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn b/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn index 595d8014..1297413d 100644 --- a/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn +++ b/ulakbus/diagrams/okutman_sinav_programi_goruntule.bpmn @@ -1,9 +1,9 @@ - + - + SequenceFlow_18408cb diff --git a/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py b/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py index e183099a..0a79734c 100644 --- a/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py +++ b/ulakbus/views/sinav_programi/okutman_sinav_programi_goruntule.py @@ -16,29 +16,42 @@ class Okutman_Sinav_Programi_Goruntule(CrudView): def sinav_programi_goruntule(self): + """ + Öğretim Görevlisi kendi şubelerine ait sinav + programını görüntüleyebilir. + """ + # Giriş yapılan öğretim görevlisinin personel objesi getirilir. personel = Personel.objects.get(user=self.current.user) + # Okutman objesi bulunur. okutman = Okutman.objects.get(personel=personel) - # okutman = Okutman.objects.get('5RC4wiXxdolAHvw0o703Qzk1sw7') # it will change - guncel_donem = Donem.objects.get(guncel=True) # it will change + + guncel_donem = Donem.objects.get(guncel=True) + # Güncel döneme ve giriş yapan öğretim görevlisine ait şubeler bulunur. subeler = Sube.objects.filter(okutman=okutman, donem=guncel_donem) okutman_adi = okutman.ad + ' ' + okutman.soyad + # Öğretim görevlisinin haftanın günlerine göre sınavları bir dictionary'de + # tutulur. Dictionary'nin key'leri 1'den 7'ye kadardır. 1 Pazartesini 7'de + # Pazar'ı gösterir. sinav_etkinlik = sinav_etkinlik_olustur(subeler) object_list = ['Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi', 'Pazar'] self.output['objects'] = [object_list] _form = JsonForm(current=self.current) - _form.title = "%s %s Sınav Programı" % (okutman_adi, guncel_donem.ad) + _form.title = "%s / %s Sınav Programı" % (okutman_adi, guncel_donem.ad) hafta_dict = hafta_gun_olustur(HAFTA) + #Öğretim görevlisinin bir günde maksimum kaç tane sınavı olduğu bulunur + # ve bu bilgi kadar dönülür. for i in range(max(map(len, sinav_etkinlik.values()))): sinav_etkinlik_list = OrderedDict({}) + # eğer haftanın günü(1,2..) öğretim görevlisinin sınavı varsa for hafta_gun in hafta_dict.keys(): if hafta_gun in sinav_etkinlik: try: etkinlik = sinav_etkinlik[hafta_gun][i] - sinav_saat = "%02d" % etkinlik.tarih.time().hour + ':' + "%02d" % etkinlik.tarih.time().minute + sinav_saat = "%02d:%02d" % (etkinlik.tarih.time().hour, etkinlik.tarih.time().minute) sinav_etkinlik_list[hafta_dict[hafta_gun]] = etkinlik.sube.ad + ' / ' + etkinlik.tarih.strftime( '%d:%m:%Y') + ' / ' + sinav_saat except: @@ -61,21 +74,32 @@ def sinav_programi_goruntule(self): def sinav_etkinlik_olustur(subeler): sinav_etkinlik = {} + # sınav_etkinlik dictionarynin yapısı şu şekildedir: + # sinav_etkinlik = {1:[sinav object, sinav object],3:[sinav object]} for sube in subeler: try: etkinlik = SinavEtkinligi.objects.get(sube=sube) tarih = etkinlik.tarih gun = calendar.weekday(tarih.year, tarih.month, tarih.day) + 1 + # eğer varsa listeye ekler, yoksa list yaratılıp içerisine eklenir. if gun in sinav_etkinlik: sinav_etkinlik[gun].append(etkinlik) else: sinav_etkinlik[gun] = [etkinlik] except: pass + + # bir günde bulunan sınavlar zamanına göre küçükten büyüğe sıralanır. + for etkinlik in sinav_etkinlik.keys(): + sinav_etkinlik[etkinlik] = sorted(sinav_etkinlik[etkinlik],key = zamana_gore_sirala) + return sinav_etkinlik +def zamana_gore_sirala(sinav): + return sinav.tarih +# HAFTA bir tuple listesidir, method HAFTA'yı dictionary haline çevirir. def hafta_gun_olustur(HAFTA): hafta_dict = {} for i in range(len(HAFTA)):