Revision 2c960473 snf-astakos-app/astakos/im/functions.py
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 | 34 |
import logging |
35 |
from datetime import datetime |
|
36 |
from dateutil.relativedelta import relativedelta |
|
35 | 37 |
|
36 | 38 |
from django.utils.translation import ugettext as _ |
37 | 39 |
from django.core.mail import send_mail, get_connection |
... | ... | |
690 | 692 |
return allowed |
691 | 693 |
|
692 | 694 |
|
695 |
def make_base_project(username): |
|
696 |
chain = new_chain() |
|
697 |
proj = create_project( |
|
698 |
id=chain.chain, |
|
699 |
last_application=None, |
|
700 |
owner=None, |
|
701 |
realname="tmp", |
|
702 |
homepage="", |
|
703 |
description=("base project for user " + username), |
|
704 |
end_date=(datetime.now() + relativedelta(years=100)), |
|
705 |
member_join_policy=CLOSED_POLICY, |
|
706 |
member_leave_policy=CLOSED_POLICY, |
|
707 |
limit_on_members_number=1, |
|
708 |
private=True, |
|
709 |
is_base=True) |
|
710 |
proj.realname = "base:" + proj.uuid |
|
711 |
proj.save() |
|
712 |
# No quota are set; they will be filled in upon user acceptance |
|
713 |
return proj |
|
714 |
|
|
715 |
|
|
716 |
def enable_base_project(user): |
|
717 |
project = user.base_project |
|
718 |
_fill_from_skeleton(project) |
|
719 |
project.activate() |
|
720 |
new_membership(project, user, enroll=True) |
|
721 |
quotas.qh_sync_project(project) |
|
722 |
|
|
723 |
|
|
693 | 724 |
def submit_application(owner=None, |
694 | 725 |
name=None, |
695 | 726 |
project_id=None, |
... | ... | |
934 | 965 |
quotas.qh_sync_locked_users(members) |
935 | 966 |
logger.info("%s has been approved." % (application.log_display)) |
936 | 967 |
project_notif.application_notify(application, "approve") |
968 |
return project |
|
937 | 969 |
|
938 | 970 |
|
939 | 971 |
def _fill_from_skeleton(project): |
Also available in: Unified diff