View | Details | Raw Unified | Return to bug 42137 | Differences between
and this patch

Collapse All | Expand All

(-)a/ucs-school-import/modules/ucsschool/importer/models/import_user.py (-1 / +13 lines)
 Lines 694-699   class ImportUser(User): Link Here 
694
		:returns value read from CSV or calculated from scheme or None
694
		:returns value read from CSV or calculated from scheme or None
695
		:rtype str or None
695
		:rtype str or None
696
		"""
696
		"""
697
		self.logger.debug('### property_name=%r', property_name)
697
		try:
698
		try:
698
			return self.udm_properties[property_name]
699
			return self.udm_properties[property_name]
699
		except KeyError:
700
		except KeyError:
 Lines 703-712   class ImportUser(User): Link Here 
703
			self._lo, _po = get_admin_connection()
704
			self._lo, _po = get_admin_connection()
704
		ldap_attr = get_ldap_mapping_for_udm_property(property_name, self._meta.udm_module, self._lo)
705
		ldap_attr = get_ldap_mapping_for_udm_property(property_name, self._meta.udm_module, self._lo)
705
		if self._schema_write_check(property_name, property_name, ldap_attr):
706
		if self._schema_write_check(property_name, property_name, ldap_attr):
707
			self.logger.debug('### self._schema_write_check() -> yes')
706
			self.udm_properties[property_name] = self.format_from_scheme(
708
			self.udm_properties[property_name] = self.format_from_scheme(
707
				property_name,
709
				property_name,
708
				self.config["scheme"][property_name]
710
				self.config["scheme"][property_name]
709
			)
711
			)
712
			self.logger.debug('### from format_from_scheme(): self.udm_properties[property_name]=%r', self.udm_properties[property_name])
710
		return self.udm_properties.get(property_name)
713
		return self.udm_properties.get(property_name)
711
714
712
	def make_username(self):
715
	def make_username(self):
 Lines 923-936   class ImportUser(User): Link Here 
923
		:param kwargs: dict: additional data to use for formatting
926
		:param kwargs: dict: additional data to use for formatting
924
		:return: None
927
		:return: None
925
		"""
928
		"""
929
		self.logger.debug('## prop_to_format=%r scheme=%r kwargs=%r', prop_to_format, scheme, kwargs)
926
		no_brackets = scheme
930
		no_brackets = scheme
927
		props_used_in_scheme = [x[0] for x in self._prop_regex.findall(no_brackets) if x[0]]
931
		props_used_in_scheme = [x[0] for x in self._prop_regex.findall(no_brackets) if x[0]]
932
		self.logger.debug('## props_used_in_scheme=%r', props_used_in_scheme)
928
		for prop_used_in_scheme in props_used_in_scheme:
933
		for prop_used_in_scheme in props_used_in_scheme:
934
			self.logger.debug('## prop_used_in_scheme=%r', prop_used_in_scheme)
929
			if (hasattr(self, prop_used_in_scheme) and getattr(self, prop_used_in_scheme) or
935
			if (hasattr(self, prop_used_in_scheme) and getattr(self, prop_used_in_scheme) or
930
				self.udm_properties.get(prop_used_in_scheme) or
936
				self.udm_properties.get(prop_used_in_scheme) or
931
				prop_used_in_scheme in kwargs or
937
				prop_used_in_scheme in kwargs or
932
				prop_used_in_scheme == "username" and (self.name or self.udm_properties.get("username"))):
938
				prop_used_in_scheme == "username" and (self.name or self.udm_properties.get("username"))):
933
				# property exists and has value
939
				# property exists and has value
940
				self.logger.debug('##   property exists and has value')
934
				continue
941
				continue
935
			if (
942
			if (
936
				prop_used_in_scheme not in self._prop_providers and
943
				prop_used_in_scheme not in self._prop_providers and
 Lines 948-953   class ImportUser(User): Link Here 
948
				method_sig = FunctionSignature(self._prop_providers[prop_used_in_scheme], (), {})
955
				method_sig = FunctionSignature(self._prop_providers[prop_used_in_scheme], (), {})
949
			except KeyError:
956
			except KeyError:
950
				method_sig = FunctionSignature("make_udm_property", (prop_used_in_scheme,), {})
957
				method_sig = FunctionSignature("make_udm_property", (prop_used_in_scheme,), {})
958
			self.logger.debug('##   method_sig=%r', method_sig)
951
			if method_sig in self._used_methods[prop_to_format]:
959
			if method_sig in self._used_methods[prop_to_format]:
952
				# already ran make_<method_name>() for his formatting job
960
				# already ran make_<method_name>() for his formatting job
953
				self.logger.error(
961
				self.logger.error(
 Lines 962-969   class ImportUser(User): Link Here 
962
					entry_count=self.entry_count, import_user=self
970
					entry_count=self.entry_count, import_user=self
963
				)
971
				)
964
			self._used_methods[prop_to_format].append(method_sig)
972
			self._used_methods[prop_to_format].append(method_sig)
965
			getattr(self, method_sig.name)(*method_sig.args, **method_sig.kwargs)
973
			self.logger.debug('##   self._used_methods[%r].append(%r)', prop_to_format, method_sig)
974
			res = getattr(self, method_sig.name)(*method_sig.args, **method_sig.kwargs)
975
			self.logger.debug('##   getattr(self, %r)(%r, %r)=%r', method_sig.name, method_sig.args, method_sig.kwargs, res)
966
		self._used_methods.pop(prop_to_format, None)
976
		self._used_methods.pop(prop_to_format, None)
977
		self.logger.debug('## self._used_methods.pop(%r, None)', prop_to_format)
967
978
968
	def format_from_scheme(self, prop_name, scheme, **kwargs):
979
	def format_from_scheme(self, prop_name, scheme, **kwargs):
969
		"""
980
		"""
 Lines 982-987   class ImportUser(User): Link Here 
982
		:param kwargs: dict: additional data to use for formatting
993
		:param kwargs: dict: additional data to use for formatting
983
		:return: str: formatted string
994
		:return: str: formatted string
984
		"""
995
		"""
996
		self.logger.debug('## prop_name=%r scheme=%r kwargs=%r', prop_name, scheme, kwargs)
985
		self.solve_format_dependencies(prop_name, scheme, **kwargs)
997
		self.solve_format_dependencies(prop_name, scheme, **kwargs)
986
		if self.input_data:
998
		if self.input_data:
987
			all_fields = self.reader.get_data_mapping(self.input_data)
999
			all_fields = self.reader.get_data_mapping(self.input_data)

Return to bug 42137