diff --git a/weblate/billing/models.py b/weblate/billing/models.py index 4bc9f5df5692..604100073cf3 100644 --- a/weblate/billing/models.py +++ b/weblate/billing/models.py @@ -193,7 +193,7 @@ class Billing(models.Model): # with payment processor payment = models.JSONField(editable=False, default=dict, encoder=DjangoJSONEncoder) - objects = BillingManager.from_queryset(BillingQuerySet)() + objects: BillingQuerySet = BillingManager.from_queryset(BillingQuerySet)() class Meta: verbose_name = "Customer billing" diff --git a/weblate/wladmin/models.py b/weblate/wladmin/models.py index f7c04389e86e..b076c98f3581 100644 --- a/weblate/wladmin/models.py +++ b/weblate/wladmin/models.py @@ -328,12 +328,12 @@ class SupportStatusDict(TypedDict): def get_support_status(request: AuthenticatedHttpRequest) -> SupportStatusDict: if hasattr(request, "weblate_support_status"): - support_status = request.weblate_support_status + support_status: SupportStatusDict = request.weblate_support_status else: support_status = cache.get(SUPPORT_STATUS_CACHE_KEY) if support_status is None: support_status_instance = SupportStatus.objects.get_current() - support_status: SupportStatusDict = { + support_status = { "has_support": support_status_instance.name != "community", "in_limits": support_status_instance.in_limits, } diff --git a/weblate/wladmin/sites.py b/weblate/wladmin/sites.py index 9f993c711bea..225a7cc332c8 100644 --- a/weblate/wladmin/sites.py +++ b/weblate/wladmin/sites.py @@ -12,7 +12,7 @@ from django.utils.translation import gettext, gettext_lazy if TYPE_CHECKING: - from weblate.auth.models import AuthenticatedHttpRequest + from django.http import HttpRequest class WeblateAdminSite(AdminSite): @@ -38,7 +38,7 @@ def site_url(self): return settings.URL_PREFIX return "/" - def each_context(self, request: AuthenticatedHttpRequest): + def each_context(self, request: HttpRequest): from weblate.wladmin.models import ConfigurationError result = super().each_context(request) diff --git a/weblate/wladmin/views.py b/weblate/wladmin/views.py index a4597b0695d0..aa0056dc92be 100644 --- a/weblate/wladmin/views.py +++ b/weblate/wladmin/views.py @@ -50,6 +50,7 @@ from weblate.utils.version import GIT_LINK, GIT_REVISION from weblate.utils.views import show_form_errors from weblate.vcs.ssh import ( + KeyType, add_host_key, can_generate_key, generate_ssh_key, @@ -322,9 +323,8 @@ def performance(request: AuthenticatedHttpRequest) -> HttpResponse: @management_access def ssh_key(request: AuthenticatedHttpRequest) -> HttpResponse: - filename, data = get_key_data_raw( - key_type=request.GET.get("type", "rsa"), kind="private" - ) + key_type = cast(KeyType, request.GET.get("type", "rsa")) + filename, data = get_key_data_raw(key_type=key_type, kind="private") if data is None: raise Http404 @@ -345,7 +345,8 @@ def ssh(request: AuthenticatedHttpRequest) -> HttpResponse: # Generate key if it does not exist yet if can_generate and action == "generate": - generate_ssh_key(request, key_type=request.POST.get("type", "rsa")) + key_type = cast(KeyType, request.POST.get("type", "rsa")) + generate_ssh_key(request, key_type=key_type) return redirect("manage-ssh") # Read key data if it exists @@ -429,14 +430,14 @@ def users_check(request: AuthenticatedHttpRequest) -> HttpResponse: # Legacy links for care.weblate.org integration if "email" in data and "q" not in data: data = data.copy() - data["q"] = data["email"] + data.setlist("q", data.getlist("email")) form = AdminUserSearchForm(data) user_list = None if form.is_valid(): - user_list = User.objects.search( - form.cleaned_data.get("q", ""), parser=form.fields["q"].parser - )[:2] + parser = getattr(form.fields["q"], "parser", "unit") + query = form.cleaned_data.get("q", "") + user_list = User.objects.search(query, parser=parser)[:2] if user_list.count() != 1: return redirect_param( "manage-users", "?q={}".format(quote(form.cleaned_data["q"]))