Compare commits

...

2 Commits

+22 -19
View File
@@ -164,15 +164,23 @@ def _display_username(user_value):
return ''
raw_value = str(user_value).strip()
user_doc = us.get_user_by_id(raw_value)
if not user_doc:
user_doc = us.get_user_by_student_card(raw_value)
if not user_doc:
user_doc = us.get_user_by_student_card_record_id(raw_value)
if user_doc:
return str(user_doc.get('Username') or user_doc.get('username') or raw_value)
decrypted_value = decrypt_text(raw_value)
lookup_values = [raw_value]
if decrypted_value and decrypted_value not in lookup_values:
lookup_values.append(str(decrypted_value).strip())
return decrypt_text(raw_value)
for lookup_value in lookup_values:
user_doc = us.get_user_by_id(lookup_value)
if not user_doc:
user_doc = us.get_user_by_student_card(lookup_value)
if not user_doc:
user_doc = us.get_user_by_student_card_record_id(lookup_value)
if not user_doc:
user_doc = us.get_user(lookup_value)
if user_doc:
return str(user_doc.get('Username') or user_doc.get('username') or lookup_value)
return str(decrypted_value or raw_value)
def _resolve_library_card_id(user_value):
@@ -186,7 +194,11 @@ def _resolve_library_card_id(user_value):
return str(user_doc.get('StudentCardId') or raw_value).strip().upper()
decrypted_value = decrypt_text(raw_value)
user_doc = us.get_user_by_student_card(decrypted_value)
user_doc = us.get_user_by_id(decrypted_value)
if not user_doc:
user_doc = us.get_user_by_student_card(decrypted_value)
if not user_doc:
user_doc = us.get_user_by_student_card_record_id(decrypted_value)
if user_doc:
return str(user_doc.get('StudentCardId') or decrypted_value).strip().upper()
@@ -4491,7 +4503,6 @@ def api_item_detail(item_id):
db = client[MONGODB_DB]
ausleihungen_col = db['ausleihungen']
items_col = db['items']
student_cards_col = db['student_cards']
# Determine parent/group id (if this is a child, use its ParentItemId)
parent_id = str(item.get('ParentItemId') or str(item.get('_id')))
@@ -4532,15 +4543,7 @@ def api_item_detail(item_id):
def get_borrower_name(user_raw):
if not user_raw:
return ''
try:
user_doc = student_cards_col.find_one({'_id': ObjectId(user_raw)})
if user_doc:
if user_doc.get('SchülerName'):
return decrypt_text(str(user_doc.get('SchülerName', '')))
return str(user_doc.get('AusweisId', ''))
except Exception:
pass
return str(user_raw)
return _display_username(user_raw)
# Prefer the most recent active borrower across the group
borrower_value = ''