221 |
221 |
222 return key_fields |
222 return key_fields |
223 |
223 |
224 def getFromKeyName(self, key_name): |
224 def getFromKeyName(self, key_name): |
225 """"Returns entity for key_name or None if not found. |
225 """"Returns entity for key_name or None if not found. |
226 - |
226 |
227 - Args: |
227 Args: |
228 - key_name: key name of entity |
228 key_name: key name of entity |
229 """ |
229 """ |
230 |
230 |
231 return self._model.get_by_key_name(key_name) |
231 return self._model.get_by_key_name(key_name) |
232 |
232 |
233 def getFromKeyFields(self, fields): |
233 def getFromKeyFields(self, fields): |
234 """Returns the entity for the specified key names, or None if not found. |
234 """Returns the entity for the specified key names, or None if not found. |
235 |
235 |
236 Args: |
236 Args: |
237 **kwargs: the fields of the entity that uniquely identifies it |
237 fields: a dict containing the fields of the entity that |
238 """ |
238 uniquely identifies it |
239 |
239 """ |
240 if all(fields.values()): |
240 |
241 key_name = self.getKeyNameFromFields(fields) |
241 key_fields = self.getKeyFieldsFromFields(fields) |
|
242 |
|
243 if all(key_fields.values()): |
|
244 key_name = self.getKeyNameFromFields(key_fields) |
242 entity = self.getFromKeyName(key_name) |
245 entity = self.getFromKeyName(key_name) |
243 else: |
246 else: |
244 entity = None |
247 entity = None |
245 |
248 |
246 return entity |
249 return entity |
247 |
250 |
248 def getFromKeyFieldsOr404(self, fields): |
251 def getFromKeyFieldsOr404(self, fields): |
249 """Like getFromKeyFields but expects to find an entity. |
252 """Like getFromKeyFields but expects to find an entity. |
250 |
253 |
251 Raises: |
254 Raises: |
252 out_of_band.Error if no User entity is found |
255 out_of_band.Error if no entity is found |
253 """ |
256 """ |
254 |
257 |
255 entity = self.getFromKeyFields(fields) |
258 key_fields = self.getKeyFieldsFromFields(fields) |
|
259 |
|
260 entity = self.getFromKeyFields(key_fields) |
256 |
261 |
257 if entity: |
262 if entity: |
258 return entity |
263 return entity |
259 |
264 |
260 format_text = ugettext('"%(key)s" is "%(value)s"') |
265 format_text = ugettext('"%(key)s" is "%(value)s"') |
261 |
266 |
262 msg_pairs = [format_text % {'key': key, 'value': value} |
267 msg_pairs = [format_text % {'key': key, 'value': value} |
263 for key, value in fields.iteritems()] |
268 for key, value in key_fields.iteritems()] |
264 |
269 |
265 joined_pairs = ' and '.join(msg_pairs) |
270 joined_pairs = ' and '.join(msg_pairs) |
266 |
271 |
267 msg = ugettext( |
272 msg = ugettext( |
268 'There is no "%(name)s" where %(pairs)s.') % { |
273 'There is no "%(name)s" where %(pairs)s.') % { |