Пример #1
0
	def parseAbsentClasses(self):
		# first find the absent classes
		for les in self._fileContent['result']['classAbsences']:
			if les['startDate'] != les['endDate']:
				self._errorDialog.addDebug(
					'Don\'t support different starting and ending date - skipping!',
					pprint.pformat(les)
				)
			elif les['startTime'] != '0000' or les['endTime'] != '0000':
				self._errorDialog.addDebug(
					'Don\'t support start/end time for absent classes - skipping!',
					pprint.pformat(les)
				)
			else:
				entryDate = '%s.%s.%s' % (
					les['startDate'][6:],
					les['startDate'][4:6],
					les['startDate'][:4]
				)

				newEntry = ChangeEntry([entryDate], 2, None)
				newEntry._hours = [0]
				newEntry._startTime = '00:00:00'
				newEntry._endTime = '23:59:59'
				course = self._classList.findClassById(les['classRef'])
				if course is None:
					self.dlg.addData(pprint.pformat(les))
					self.dlg.addError('Course unknown for absent course - skipping!')
					continue

				newEntry._course = [course]
				self._absentClasses.append(newEntry)
Пример #2
0
	def parse(self):
		planParsedSuccessful = True
		try:
			for row in reader:
			try:
				date, hours, teacher, subject, className, info, room, note = row
			except ValueError:
				# might be a empty line :)
				continue

			try:
				day, month, year = date.split('.')
			except ValueError:
				# uhh it might be the first line: skip!
				continue
			entryDate = '%s.%s.%s' % (day, month, year)

			try:
				hours = hours.strip().split('-');
				hours[0] = int(hours[0].replace('.', '').strip())
				if len(hours) > 1:
					hours[1] = int(hours[1].replace('.', '').strip())
				else:
					hours.append(hours[0])
			except Exception as e:
				print('Got error: %s' % (e,))
				continue

			newEntry = ChangeEntry([entryDate], 3, None)
			hours = list(range(hours[0], hours[1] + 1))
			newEntry._hours = hours
			newEntry._teacher = teacher
			newEntry._subject = subject
			newEntry._course = className.strip()
			newEntry._info = info
			newEntry._note = note
			self._plan.append(newEntry)

		except Exception as e:
			self._errorDialog.addError('Could not parse the plan. Unexpected error occured: %s.' % (str(e),))
			planParsedSuccessful = False
			raise
		finally:
			self.planParsed.emit(planParsedSuccessful)