Revision 1b52192e snf-astakos-app/astakos/im/functions.py
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
44 | 44 |
|
45 | 45 |
from synnefo.lib import join_urls |
46 | 46 |
from astakos.im.models import AstakosUser, Invitation, ProjectMembership, \ |
47 |
ProjectApplication, Project, new_chain, Resource |
|
47 |
ProjectApplication, Project, new_chain, Resource, ProjectLock
|
|
48 | 48 |
from astakos.im.quotas import qh_sync_user, get_pending_app_quota, \ |
49 | 49 |
register_pending_apps, qh_sync_project, qh_sync_locked_users, \ |
50 | 50 |
get_users_for_update, members_to_sync |
... | ... | |
299 | 299 |
return get_project_for_update(app.chain_id) |
300 | 300 |
|
301 | 301 |
|
302 |
def get_project_lock(): |
|
303 |
ProjectLock.objects.get_for_update(pk=1) |
|
304 |
|
|
305 |
|
|
302 | 306 |
def get_application(application_id): |
303 | 307 |
try: |
304 | 308 |
return ProjectApplication.objects.get(id=application_id) |
... | ... | |
822 | 826 |
|
823 | 827 |
|
824 | 828 |
def approve_application(app_id, request_user=None, reason=""): |
829 |
get_project_lock() |
|
825 | 830 |
project = get_project_of_application_for_update(app_id) |
826 | 831 |
application = get_application(app_id) |
827 | 832 |
|
... | ... | |
848 | 853 |
project.name = application.name |
849 | 854 |
project.save() |
850 | 855 |
if project.is_deactivated(): |
851 |
project.resume() |
|
856 |
project.resume(actor=request_user, reason="APPROVE")
|
|
852 | 857 |
qh_sync_locked_users(members) |
853 | 858 |
logger.info("%s has been approved." % (application.log_display)) |
854 | 859 |
application_approve_notify(application) |
Also available in: Unified diff