Revision 15ca2bea
b/snf-astakos-app/astakos/im/forms.py | ||
---|---|---|
806 | 806 |
|
807 | 807 |
return policies |
808 | 808 |
|
809 |
|
|
810 | 809 |
def save(self, commit=True): |
811 |
application = super(ProjectApplicationForm, self).save(commit=False) |
|
812 |
data = dict(self.fields) |
|
810 |
data = dict(self.cleaned_data) |
|
813 | 811 |
data['precursor_application'] = self.instance.id |
814 | 812 |
data['applicant'] = self.user |
815 | 813 |
data['owner'] = self.user |
816 |
data['comments'] = self.cleaned_data.pop('comments', None) |
|
817 | 814 |
data['resource_policies'] = self.resource_policies |
818 | 815 |
submit_application(**data) |
819 | 816 |
|
820 |
|
|
821 |
|
|
822 | 817 |
class ProjectSortForm(forms.Form): |
823 | 818 |
sorting = forms.ChoiceField( |
824 | 819 |
label='Sort by', |
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) |
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
1361 | 1361 |
self.state = self.APPROVED |
1362 | 1362 |
self.save() |
1363 | 1363 |
|
1364 |
def submit_application(**kw): |
|
1365 |
|
|
1366 |
resource_policies = kw.pop('resource_policies', None) |
|
1367 |
application = ProjectApplication(**kw) |
|
1368 |
|
|
1369 |
precursor = kw['precursor_application'] |
|
1370 |
|
|
1371 |
if precursor is not None: |
|
1372 |
precursor.state = ProjectApplication.REPLACED |
|
1373 |
precursor.save() |
|
1374 |
|
|
1375 |
application.save() |
|
1376 |
application.resource_policies = resource_policies |
|
1377 |
return application |
|
1364 | 1378 |
|
1365 | 1379 |
class ProjectResourceGrant(models.Model): |
1366 | 1380 |
|
Also available in: Unified diff