705 |
705 |
return auto_accepted
|
706 |
706 |
|
707 |
707 |
|
708 |
|
def submit_application(kw, request_user=None):
|
709 |
|
|
710 |
|
kw['applicant'] = request_user
|
711 |
|
resource_policies = kw.pop('resource_policies', None)
|
|
708 |
def submit_application(owner=None,
|
|
709 |
name=None,
|
|
710 |
precursor_id=None,
|
|
711 |
homepage=None,
|
|
712 |
description=None,
|
|
713 |
start_date=None,
|
|
714 |
end_date=None,
|
|
715 |
member_join_policy=None,
|
|
716 |
member_leave_policy=None,
|
|
717 |
limit_on_members_number=None,
|
|
718 |
comments=None,
|
|
719 |
resource_policies=None,
|
|
720 |
request_user=None):
|
712 |
721 |
|
713 |
722 |
precursor = None
|
714 |
|
precursor_id = kw.get('precursor_application', None)
|
715 |
723 |
if precursor_id is not None:
|
716 |
724 |
objs = ProjectApplication.objects
|
717 |
725 |
precursor = objs.get_for_update(id=precursor_id)
|
718 |
|
kw['precursor_application'] = precursor
|
719 |
726 |
|
720 |
727 |
if (request_user and
|
721 |
728 |
(not precursor.owner == request_user and
|
... | ... | |
724 |
731 |
m = _(astakos_messages.NOT_ALLOWED)
|
725 |
732 |
raise PermissionDenied(m)
|
726 |
733 |
|
727 |
|
owner = kw['owner']
|
728 |
734 |
force = request_user.is_project_admin()
|
729 |
735 |
ok, limit = qh_add_pending_app(owner, precursor, force)
|
730 |
736 |
if not ok:
|
731 |
737 |
m = _(astakos_messages.REACHED_PENDING_APPLICATION_LIMIT) % limit
|
732 |
738 |
raise PermissionDenied(m)
|
733 |
739 |
|
734 |
|
application = ProjectApplication(**kw)
|
|
740 |
application = ProjectApplication(
|
|
741 |
applicant=request_user,
|
|
742 |
owner=owner,
|
|
743 |
name=name,
|
|
744 |
precursor_application_id=precursor_id,
|
|
745 |
homepage=homepage,
|
|
746 |
description=description,
|
|
747 |
start_date=start_date,
|
|
748 |
end_date=end_date,
|
|
749 |
member_join_policy=member_join_policy,
|
|
750 |
member_leave_policy=member_leave_policy,
|
|
751 |
limit_on_members_number=limit_on_members_number,
|
|
752 |
comments=comments)
|
735 |
753 |
|
736 |
754 |
if precursor is None:
|
737 |
755 |
application.chain = new_chain()
|