Coverage for app/venv/lib/python3.14/site-packages/weblate/accounts/admin.py: 79%

37 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 07:15 +0000

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4from __future__ import annotations 

5 

6from typing import TYPE_CHECKING 

7 

8from django.contrib import admin 

9 

10from weblate.wladmin.models import WeblateModelAdmin 

11 

12from .models import AuditLog, Profile, VerifiedEmail 

13 

14if TYPE_CHECKING: 14 ↛ 15line 14 didn't jump to line 15 because the condition on line 14 was never true

15 from weblate.auth.models import AuthenticatedHttpRequest 

16 

17 

18@admin.register(AuditLog) 

19class AuditLogAdmin(WeblateModelAdmin): 

20 list_display = ("get_message", "user", "address", "user_agent", "timestamp") 

21 search_fields = ("user__username", "user__email", "address", "activity") 

22 date_hierarchy = "timestamp" 

23 ordering = ("-timestamp",) 

24 

25 def has_delete_permission( 

26 self, request: AuthenticatedHttpRequest, obj=None 

27 ) -> bool: 

28 return False 

29 

30 def has_add_permission(self, request: AuthenticatedHttpRequest, obj=None) -> bool: 

31 return False 

32 

33 def has_change_permission( 

34 self, request: AuthenticatedHttpRequest, obj=None 

35 ) -> bool: 

36 return False 

37 

38 

39@admin.register(Profile) 

40class ProfileAdmin(WeblateModelAdmin): 

41 list_display = ("user", "full_name", "language", "suggested", "translated") 

42 search_fields = ("user__username", "user__email", "user__full_name") 

43 list_filter = ("language",) 

44 filter_horizontal = ("languages", "secondary_languages", "watched") 

45 

46 def has_delete_permission( 

47 self, request: AuthenticatedHttpRequest, obj=None 

48 ) -> bool: 

49 return False 

50 

51 def has_add_permission(self, request: AuthenticatedHttpRequest, obj=None) -> bool: 

52 return False 

53 

54 

55@admin.register(VerifiedEmail) 

56class VerifiedEmailAdmin(WeblateModelAdmin): 

57 list_display = ("social", "provider", "email") 

58 search_fields = ("email", "social__user__username", "social__user__email") 

59 raw_id_fields = ("social",) 

60 ordering = ("email",) 

61 

62 def has_delete_permission( 

63 self, request: AuthenticatedHttpRequest, obj=None 

64 ) -> bool: 

65 return False