11import logging
2+ from framework import sentry
23from framework .celery_tasks import app as celery_app
34from django .core .management import call_command
5+ from django .utils import timezone
46from osf .models import Registration
7+ from scripts .approve_registrations import approve_past_pendings
58
69logger = logging .getLogger (__name__ )
710
811
912@celery_app .task (name = 'scripts.check_manual_restart_approval' )
1013def check_manual_restart_approval (registration_id ):
1114 try :
12- try :
13- registration = Registration .objects .get (_id = registration_id )
14- except Registration .DoesNotExist :
15+ registration = Registration .load (registration_id )
16+ if not registration :
1517 logger .error (f"Registration { registration_id } not found" )
1618 return f"Registration { registration_id } not found"
1719
1820 if registration .is_public or registration .is_registration_approved :
1921 return f"Registration { registration_id } already approved/public"
2022
23+ approval = registration .registration_approval
24+ if not approval :
25+ logger .info (f"Registration { registration_id } has no registration approval object" )
26+ return f"Registration { registration_id } has no registration approval object"
27+
28+ if approval .is_rejected :
29+ logger .info (f"Registration { registration_id } approval was rejected" )
30+ return f"Registration { registration_id } approval was rejected"
31+
2132 if registration .archiving :
2233 logger .info (f"Registration { registration_id } still archiving, retrying in 10 minutes" )
2334 check_manual_restart_approval .apply_async (
@@ -26,20 +37,18 @@ def check_manual_restart_approval(registration_id):
2637 )
2738 return f"Registration { registration_id } still archiving, scheduled retry"
2839
29- logger .info (f"Processing manual restart approval for registration { registration_id } " )
40+ if timezone .now () < approval .auto_approve_at :
41+ logger .info (f"Registration { registration_id } not ready for auto-approval yet" )
42+ return f"Registration { registration_id } not ready for auto-approval yet"
3043
31- call_command (
32- 'process_manual_restart_approvals' ,
33- registration_id = registration_id ,
34- dry_run = False ,
35- hours_back = 24 ,
36- verbosity = 1
37- )
44+ logger .info (f"Processing manual restart approval for registration { registration_id } " )
45+ approve_past_pendings ([approval ], dry_run = False )
3846
3947 return f"Processed manual restart approval check for registration { registration_id } "
4048
4149 except Exception as e :
4250 logger .error (f"Error processing manual restart approval for { registration_id } : { e } " )
51+ sentry .log_exception (e )
4352 raise
4453
4554
0 commit comments