def loadUsers(self,usertype_id=None,groupname=None,min_grade=None,max_grade=None):
		self.clear()
		self.initialSetup()
		self.users = {}
		if groupname:
			groupmembers = self.proxy.list_members(groupname)
		users = self.proxy.list_users(usertype_id)
		for u,v in users.items():
			
			if groupname and type(groupmembers)==list and not groupmembers.count(v['uid']):
				continue

			# Filter by classyear (aargang)
			if min_grade != None and max_grade != None:
				if v.has_key('firstSchoolYear'):
					classyear = stime.firstyear_to_classyear(int(v['firstSchoolYear']))
					if classyear < min_grade or classyear > max_grade:
						continue

			usertype_id = 2
			if v.has_key('usertype_id'):
				usertype_id = v['usertype_id']
			self._addUser(
				v['uidNumber'],v['uid'],
				v['cn'],usertype_id)
	def update_list(self,usertype=None):
		userlist = self.soapproxy.list_users(usertype)
		self.m_lv_userlist.clear()
		self.userlist = []
		
		for user in userlist.keys():
			name = QString.fromUtf8(userlist[user]['cn'])
			usertype = qApp.translate("UserTypes",userlist[user]['title'])

			# Filter by classyear (aargang)
			min_classyear = self.sbx_firstschoolyear_min.value()
			max_classyear = self.sbx_firstschoolyear_max.value()
			if self.classyear_filter_enabled and userlist[user].has_key('firstSchoolYear'):
				classyear = stime.firstyear_to_classyear(int(userlist[user]['firstSchoolYear']))
				if classyear < min_classyear or classyear > max_classyear:
					continue
					
			# filter by group
			if self.group_filter_enabled and not self.group_members.count(user):
				continue
			
			self.userlist+=[UserListViewItem(self.m_lv_userlist,name,usertype,user)]