Revision 69c822cc

b/snf-astakos-app/astakos/im/forms.py
32 32
# or implied, of GRNET S.A.
33 33
from urlparse import urljoin
34 34
from random import random
35
from datetime import datetime
35 36

  
36 37
from django import forms
37 38
from django.utils.translation import ugettext as _
......
808 809

  
809 810
    def save(self, commit=True):
810 811
        application = super(ProjectApplicationForm, self).save(commit=False)
811
        applicant = self.user
812
        comments = self.cleaned_data.pop('comments', None)
813
        return submit_application(
814
            application,
815
            self.resource_policies,
816
            applicant,
817
            comments,
818
            self.precursor_application
819
        )
812
        data = dict(self.fields)
813
        data['precursor_application'] = self.instance.id
814
        data['applicant'] = self.user
815
        data['owner'] = self.user
816
        data['comments'] = self.cleaned_data.pop('comments', None)
817
        data['resource_policies'] = self.resource_policies
818
        submit_application(**data)
819

  
820

  
820 821

  
821 822
class ProjectSortForm(forms.Form):
822 823
    sorting = forms.ChoiceField(
b/snf-astakos-app/astakos/im/functions.py
645 645
        trigger_sync()
646 646
    return membership
647 647

  
648
def submit_application(
649
        application, resource_policies, applicant, comments,
650
        precursor_application=None):
648
def submit_application(**kw):
649
    precursor_id = kw.pop('precursor_application', None)
650
    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()
651 656

  
652
    application.submit(
653
        resource_policies, applicant, comments, precursor_application)
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
654 665

  
655 666
    try:
656 667
        notification = build_notification(
......
662 673
        notification.send()
663 674
    except NotificationError, e:
664 675
        logger.error(e)
665
    return application
676
    return app.id
666 677

  
667 678
def update_application(app_id, **kw):
668 679
    app = ProjectApplication.objects.get(id=app_id)
b/snf-astakos-app/astakos/im/models.py
1164 1164
                                    db_index=True)
1165 1165

  
1166 1166
    state                   =   models.CharField(max_length=80,
1167
                                                default=UNKNOWN)
1167
                                                default=PENDING)
1168 1168

  
1169 1169
    owner                   =   models.ForeignKey(
1170 1170
                                    AstakosUser,
......
1190 1190
                                    blank=True,
1191 1191
                                    through='ProjectResourceGrant')
1192 1192
    comments                =   models.TextField(null=True, blank=True)
1193
    issue_date              =   models.DateTimeField()
1193
    issue_date              =   models.DateTimeField(default=datetime.now)
1194 1194

  
1195 1195

  
1196 1196
    objects                 =   ProjectApplicationManager()

Also available in: Unified diff