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