View | Details | Raw Unified | Return to bug 32035
Collapse All | Expand All

(-)umc/python/computerroom/italc2.py (+19 lines)
 Lines 347-352    Link Here 
347
			notifier.timer_remove( self._timer )
347
			notifier.timer_remove( self._timer )
348
			self._timer = None
348
			self._timer = None
349
349
350
	@property
351
	def dict(self):
352
		item = { 'id' : self.name,
353
				 'name' : self.name,
354
				 'user' : self.user.current,
355
				 'teacher' : self.isTeacher,
356
				 'connection' : self.state.current,
357
				 'description' : self.description,
358
				 'ip' : self.ipAddress,
359
				 'mac' : self.macAddress,
360
				 'objectType': self.objectType }
361
		item.update(self.flagsDict)
362
		return item
363
364
	@property
365
	def hasChanged(self):
366
		states = (self.state, self.flags, self.user, self.teacher)
367
		return any(state.hasChanged for state in states)
368
350
	# UDM properties
369
	# UDM properties
351
	@property
370
	@property
352
	def name( self ):
371
	def name( self ):
(-)umc/python/computerroom/__init__.py (-34 / +5 lines)
 Lines 363-381    Link Here 
363
		if request.options.get('reload', False):
363
		if request.options.get('reload', False):
364
			self._italc.room = self._italc.room # believe me that makes sense :)
364
			self._italc.room = self._italc.room # believe me that makes sense :)
365
365
366
		result = []
366
		result = [computer.dict for computer in self._italc.values()]
367
		for computer in self._italc.values():
368
			item = { 'id' : computer.name,
369
					 'name' : computer.name,
370
					 'user' : computer.user.current,
371
					 'teacher' : computer.isTeacher,
372
					 'connection' : computer.state.current,
373
					 'description' : computer.description,
374
					 'ip' : computer.ipAddress,
375
					 'mac' : computer.macAddress,
376
					 'objectType': computer.objectType }
377
			item.update(computer.flagsDict)
378
			result.append(item)
379
367
380
		MODULE.info('computerroom.query: result: %s' % str(result))
368
		MODULE.info('computerroom.query: result: %s' % str(result))
381
		self.finished(request.id, result)
369
		self.finished(request.id, result)
 Lines 394-417    Link Here 
394
		if not self._italc.school or not self._italc.room:
382
		if not self._italc.school or not self._italc.room:
395
			raise UMC_CommandError('no room selected')
383
			raise UMC_CommandError('no room selected')
396
384
397
		computers = []
385
		computers = [computer.dict for computer in self._italc.values() if computer.hasChanged]
398
		for computer in self._italc.values():
399
			item = dict(id = computer.name)
400
			modified = False
401
			if computer.state.hasChanged:
402
				item['connection'] = str(computer.state.current)
403
				modified = True
404
			if computer.flags.hasChanged:
405
				item.update(computer.flagsDict)
406
				modified = True
407
			if computer.user.hasChanged:
408
				item['user'] = str(computer.user.current)
409
				modified = True
410
			if computer.teacher.hasChanged:
411
				item['teacher'] = computer.teacher.current
412
				modified = True
413
			if modified:
414
				computers.append(item)
415
		result = { 'computers' : computers }
386
		result = { 'computers' : computers }
416
387
417
		userDN = _getRoomOwner(self._italc.roomDN)
388
		userDN = _getRoomOwner(self._italc.roomDN)
 Lines 511-519    Link Here 
511
			self.finished(request.id, 'VNC is disabled')
482
			self.finished(request.id, 'VNC is disabled')
512
483
513
		try:
484
		try:
514
			template = open('/usr/share/ucs-school-umc-computerroom/ultravnc.vnc')
485
			with open('/usr/share/ucs-school-umc-computerroom/ultravnc.vnc') as fd:
515
			content = template.read()
486
				content = fd.read()
516
		except:
487
		except (IOError, OSError):
517
			raise UMC_CommandError('VNC template file does not exists')
488
			raise UMC_CommandError('VNC template file does not exists')
518
489
519
		port = ucr.get('ucsschool/umc/computerroom/vnc/port', '11100')
490
		port = ucr.get('ucsschool/umc/computerroom/vnc/port', '11100')

Return to bug 32035