@@ -78,6 +78,7 @@ def get_ordering(self, request, queryset):
7878 order_fields = super ().get_ordering (request , queryset )
7979 if len (order_fields ) > 1 and "-pk" in order_fields :
8080 order_fields .remove ("-pk" )
81+
8182 return order_fields
8283
8384
@@ -108,6 +109,7 @@ def has_delete_permission(self, request, obj=None):
108109 """
109110 if hasattr (self , "has_direct_delete_permission" ):
110111 perm = f"admin:{ self .model ._meta .app_label } _{ self .model ._meta .model_name } "
112+
111113 if request .resolver_match .view_name .startswith (perm ):
112114 if callable (self .has_direct_delete_permission ):
113115 return self .has_direct_delete_permission (request , obj )
@@ -367,16 +369,19 @@ class MemberOrganizationInline(admin.TabularInline):
367369 def has_add_permission (self , request , obj ):
368370 if obj is None :
369371 return True
372+
370373 return obj .type in (User .Type .PERSON , User .Type .ORGANIZATION )
371374
372375 def has_direct_delete_permission (self , request , obj ):
373376 if obj is None :
374377 return True
378+
375379 return obj .type in (User .Type .PERSON , User .Type .ORGANIZATION )
376380
377381 def has_change_permission (self , request , obj ):
378382 if obj is None :
379383 return True
384+
380385 return obj .type in (User .Type .PERSON , User .Type .ORGANIZATION )
381386
382387
@@ -387,16 +392,19 @@ class MemberTeamInline(admin.TabularInline):
387392 def has_add_permission (self , request , obj ):
388393 if obj is None :
389394 return True
395+
390396 return obj .type in (User .Type .PERSON , User .Type .ORGANIZATION )
391397
392398 def has_direct_delete_permission (self , request , obj ):
393399 if obj is None :
394400 return True
401+
395402 return obj .type in (User .Type .PERSON , User .Type .ORGANIZATION )
396403
397404 def has_change_permission (self , request , obj ):
398405 if obj is None :
399406 return True
407+
400408 return obj .type in (User .Type .PERSON , User .Type .ORGANIZATION )
401409
402410
@@ -434,16 +442,19 @@ class UserProjectCollaboratorInline(admin.TabularInline):
434442 def has_add_permission (self , request , obj ):
435443 if obj is None :
436444 return True
445+
437446 return obj .type == User .Type .PERSON
438447
439448 def has_direct_delete_permission (self , request , obj ):
440449 if obj is None :
441450 return True
451+
442452 return obj .type == User .Type .PERSON
443453
444454 def has_change_permission (self , request , obj ):
445455 if obj is None :
446456 return True
457+
447458 return obj .type == User .Type .PERSON
448459
449460
@@ -540,6 +551,7 @@ def get_urls(self):
540551 name = "password_reset_url" ,
541552 ),
542553 ]
554+
543555 return urls
544556
545557 @method_decorator (never_cache )
@@ -565,6 +577,7 @@ def password_reset_url(self, request, user_id, form_url=""):
565577 "key" : token_generator .make_token (user ),
566578 },
567579 )
580+
568581 return TemplateResponse (
569582 request ,
570583 "admin/password_reset_url.html" ,
@@ -623,6 +636,7 @@ class Meta:
623636 def get_initial_for_field (self , field , field_name ):
624637 if self .instance .pk and field_name == "value" :
625638 return ""
639+
626640 return super ().get_initial_for_field (field , field_name )
627641
628642 def clean (self ):
@@ -632,9 +646,11 @@ def clean(self):
632646 type = self .instance .type
633647 else :
634648 type = cleaned_data .get ("type" )
649+
635650 if type == Secret .Type .PGSERVICE :
636651 # validate the pg_service.conf
637652 value = cleaned_data .get ("value" )
653+
638654 if value :
639655 try :
640656 pg_service_file .validate_pg_service_conf (value )
@@ -686,6 +702,7 @@ def save_model(self, request, obj, form, change):
686702 # only set created_by during the first save
687703 if not change :
688704 obj .created_by = request .user
705+
689706 super ().save_model (request , obj , form , change )
690707
691708 def get_changeform_initial_data (self , request ):
@@ -798,7 +815,10 @@ class ProjectAdmin(QFieldCloudModelAdmin):
798815 "data_last_packaged_at" ,
799816 "project_details__pre" ,
800817 )
801- inlines = (ProjectCollaboratorInline , ProjectSecretInline )
818+ inlines = (
819+ ProjectSecretInline ,
820+ ProjectCollaboratorInline ,
821+ )
802822 search_fields = (
803823 "id" ,
804824 "name__icontains" ,
@@ -962,8 +982,10 @@ def get_queryset(self, request):
962982
963983 def get_object (self , request , object_id , from_field = None ):
964984 obj = super ().get_object (request , object_id , from_field )
985+
965986 if obj and obj .type == Job .Type .DELTA_APPLY :
966987 obj = ApplyJob .objects .get (pk = obj .pk )
988+
967989 return obj
968990
969991 def get_inline_instances (self , request , obj = None ):
@@ -1297,8 +1319,8 @@ class OrganizationAdmin(QFieldCloudModelAdmin):
12971319 inlines = (
12981320 UserAccountInline ,
12991321 GeodbInline ,
1300- OrganizationMemberInline ,
13011322 ProjectInline ,
1323+ OrganizationMemberInline ,
13021324 TeamInline ,
13031325 )
13041326 fields = (
@@ -1339,8 +1361,10 @@ class OrganizationAdmin(QFieldCloudModelAdmin):
13391361 def active_users_links (self , instance ) -> str :
13401362 persons = instance .useraccount .current_subscription .active_users
13411363 userlinks = "<p> - </p>"
1364+
13421365 if persons :
13431366 userlinks = "<br>" .join (model_admin_url (p , p .username ) for p in persons )
1367+
13441368 help_text = """
13451369 <p style="font-size: 11px; color: var(--body-quiet-color)">
13461370 Active members have triggererd at least one job or uploaded at least one delta in the current billing period.
@@ -1428,6 +1452,7 @@ class TeamAdmin(QFieldCloudModelAdmin):
14281452 def save_model (self , request , obj , form , change ):
14291453 if not obj .username .startswith ("@" ):
14301454 obj .username = f"@{ obj .team_organization .username } /{ obj .username } "
1455+
14311456 obj .save ()
14321457
14331458 def get_form (
0 commit comments