Example #1
0
 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]
Example #2
0
 def tryGetFullName(self, veranstaltung):
     return tryGetFullName(veranstaltung)
Example #3
0
    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}