Revision 15ca2bea snf-astakos-app/astakos/im/functions.py

b/snf-astakos-app/astakos/im/functions.py
67 67
from astakos.im.models import (
68 68
    AstakosUser, ProjectMembership, ProjectApplication, Project,
69 69
    trigger_sync)
70
from astakos.im.models import submit_application as models_submit_application
70 71

  
71 72
import astakos.im.messages as astakos_messages
72 73

  
......
646 647
    return membership
647 648

  
648 649
def submit_application(**kw):
649
    precursor_id = kw.pop('precursor_application', None)
650

  
651
    precursor_id = kw.get('precursor_application', None)
650 652
    if precursor_id is not None:
651
        app = ProjectApplication.objects.get(id=precursor_id)
652
        app.id = None
653
        app.precursor_application_id = precursor_id
654
    else:
655
        app = ProjectApplication()
653
        sfu = ProjectApplication.objects.select_for_update()
654
        precursor = sfu.get(id=precursor_id)
655
        kw['precursor_application'] = precursor
656 656

  
657
    app.state = app.PENDING
658
    app.issue_date = datetime.now()
659

  
660
    resource_policies = kw.pop('resource_policies', None)
661
    for k, v in kw.iteritems():
662
        setattr(app, k, v)
663
    app.save()
664
    app.resource_policies = resource_policies
657
    application = models_submit_application(**kw)
665 658

  
666 659
    try:
667 660
        notification = build_notification(
......
673 666
        notification.send()
674 667
    except NotificationError, e:
675 668
        logger.error(e)
676
    return app.id
669
    return application.id
677 670

  
678 671
def update_application(app_id, **kw):
679 672
    app = ProjectApplication.objects.get(id=app_id)

Also available in: Unified diff