def data_tuples(self): #TODO version statt infostring als version zurueckliefern return [(semestergruppe, gruppenkuerzel, fach, dozent, ort, jahr, woche, wochentag, anfang, ende, infoString, infoString, tryGetFullName(fach)) for (semestergruppe, gruppenkuerzel, fach, dozent, ort, jahr, woche, wochentag, anfang, ende, infoString) in self.__hawCal.eventTupelList]
def tryGetFullName(self, veranstaltung): return tryGetFullName(veranstaltung)
def data_dict(self): # data_dict structure with example values # # data_dict = { # # DataImport: { # # department: 'EuI' # infostring: 'WiSe 2014 Vers. 1.00 vom 3.10.2014', # version_text_datei: '1.00', # # comment: 'imported automatically by script', # semester: 'WiSe 2014', # ical_header: 'BEGIN:VCALENDAR...' # ical_ending: '...END:VCALENDAR'' # }, # # Veranstaltungen: [ # { # semestergruppen: ['B-EE2','B-EE3',...] (for EuI) or [] (for Inf) # gruppenkuerzel: 'BTI2', # veranstaltungskuerzel: 'BTI2-GS', # veranstaltungsname: 'Grundlagen Systemprogrammierung', # # Events: [ # { # #veranstaltung: Fremdschluessel, # #data_import: Fremdschluessel, # # dozent: 'Friedrich Esser', # ort: 'Rm. 12.83', # wochen: '41, 42, ...', # wochentag: 'Di' # anfang: ('10','00'), # ende: ('13',15'), # icalevent: 'BEGIN:VEVENT...', # }, # ... # ], # }, # ... # ], # # } # create data_import first_event = self.__hawCal.eventTupelList[0] (semestergruppe, gruppenkuerzel, fach, dozent, ort, jahr, woche, wochentag, anfang, ende, infoString, version, semester) = first_event semester = semester2lexicographically_ordered_verbose_string(semester) data_import = { 'infostring': infoString, 'version_text_datei': version, 'semester': semester, 'ical_header': HEADER, 'ical_ending': ENDING, } # create veranstaltungen faecher = set([(gruppenkuerzel, fach) for a,gruppenkuerzel,fach,d,e,f,g,h,i,j,k,l,m in self.__hawCal.eventTupelList]) veranstaltungen_dicts = {} for (gruppenkuerzel, fach) in faecher: veranstaltungen_dicts[fach] = { 'semestergruppen': [], 'gruppenkuerzel': gruppenkuerzel, 'veranstaltungskuerzel': fach, 'veranstaltungsname': tryGetFullName(fach), 'Events': [] } for event in self.__hawCal.eventTupelList: (semestergruppe, gruppenkuerzel, fach, dozent, ort, jahr, woche, wochentag, anfang, ende, infoString, version, semester) = event veranstaltung = veranstaltungen_dicts[fach] if semestergruppe != '' and semestergruppe not in veranstaltung['semestergruppen']: veranstaltung['semestergruppen'].append(semestergruppe) veranstaltung['Events'].append( { 'dozent': dozent, 'ort': normalized_ort(ort), 'jahr': normalized_year(jahr), 'wochen': woche, 'wochentag': wochentagabk2weekdayno(wochentag), 'anfang': anfang[0] + ':' + anfang[1], 'ende': ende[0] + ':' + ende[1], 'icalevent': IcalEvent((fach,dozent,ort,jahr,woche,wochentag,anfang,ende,infoString)).icalStr(), } ) veranstaltungen = veranstaltungen_dicts.values() return {'DataImport': data_import, 'Veranstaltungen': veranstaltungen}