Revision 437c0052
b/snf-astakos-app/astakos/im/endpoints/qh.py | ||
---|---|---|
46 | 46 |
from kamaki.clients.quotaholder import QuotaholderClient |
47 | 47 |
from kamaki.clients.quotaholder import QH_PRACTICALLY_INFINITE |
48 | 48 |
|
49 |
from synnefo.util.number import strbigdec |
|
50 |
|
|
49 | 51 |
ENTITY_KEY = '1' |
50 | 52 |
|
51 | 53 |
|
... | ... | |
154 | 156 |
QuotaLimits = namedtuple('QuotaLimits', ('holder', |
155 | 157 |
'resource', |
156 | 158 |
'capacity', |
157 |
'import_limit',
|
|
159 |
'import_limit', |
|
158 | 160 |
'export_limit')) |
159 | 161 |
|
160 |
QuotaValues = namedtuple('QuotaValues', ('quantity', |
|
161 |
'capacity', |
|
162 |
'import_limit', |
|
163 |
'export_limit')) |
|
162 |
class QuotaValues(namedtuple('QuotaValues', ('quantity', |
|
163 |
'capacity', |
|
164 |
'import_limit', |
|
165 |
'export_limit'))): |
|
166 |
__slots__ = () |
|
167 |
def __dir__(self): |
|
168 |
return ['quantity', 'capacity', 'import_limit', 'export_limit'] |
|
169 |
|
|
170 |
def __str__(self): |
|
171 |
return '\t'.join(['%s=%s' % (f, strbigdec(getattr(self, f))) for f in dir(self)]) |
|
164 | 172 |
|
165 | 173 |
def add_quota_values(q1, q2): |
166 | 174 |
return QuotaValues( |
b/snf-astakos-app/astakos/im/management/commands/_common.py | ||
---|---|---|
65 | 65 |
else: |
66 | 66 |
return 'in ' + timeuntil(d) |
67 | 67 |
|
68 |
def format_dict(d, level=1, ident=22): |
|
69 |
l = ['%s: %s\n' % (k.rjust(level*ident), format(v, level+1)) \ |
|
70 |
for k, v in sorted(d.iteritems())] |
|
71 |
l.insert(0, '\n') |
|
72 |
return ''.join(l) |
|
73 |
|
|
74 |
def format_set(s): |
|
75 |
return list(s) |
|
76 |
|
|
77 |
def format(obj, level=1, ident=22): |
|
78 |
if isinstance(obj, bool): |
|
79 |
return format_bool(obj) |
|
80 |
elif isinstance(obj, datetime): |
|
81 |
return format_date(obj) |
|
82 |
elif isinstance(obj, dict): |
|
83 |
return format_dict(obj, level, ident) |
|
84 |
elif isinstance(obj, set): |
|
85 |
return format_set(obj) |
|
86 |
else: |
|
87 |
return obj |
|
68 | 88 |
|
69 | 89 |
def get_astakosuser_content_type(): |
70 | 90 |
try: |
b/snf-astakos-app/astakos/im/management/commands/invitation-list.py | ||
---|---|---|
53 | 53 |
|
54 | 54 |
def handle_noargs(self, **options): |
55 | 55 |
invitations = Invitation.objects.all().order_by('id') |
56 |
|
|
56 |
|
|
57 | 57 |
labels = ('id', 'inviter', 'email', 'real name', 'code', 'consumed') |
58 | 58 |
columns = (3, 24, 24, 24, 20, 4, 8) |
59 | 59 |
|
b/snf-astakos-app/astakos/im/management/commands/user-show.py | ||
---|---|---|
34 | 34 |
from django.core.management.base import BaseCommand, CommandError |
35 | 35 |
|
36 | 36 |
from astakos.im.models import AstakosUser, get_latest_terms |
37 |
from astakos.im.util import model_to_dict |
|
37 | 38 |
|
38 |
from ._common import format_bool, format_date
|
|
39 |
from ._common import format |
|
39 | 40 |
|
40 | 41 |
|
41 | 42 |
class Command(BaseCommand): |
... | ... | |
62 | 63 |
'email': user.email, |
63 | 64 |
'first name': user.first_name, |
64 | 65 |
'last name': user.last_name, |
65 |
'active': format_bool(user.is_active),
|
|
66 |
'admin': format_bool(user.is_superuser),
|
|
67 |
'last login': format_date(user.last_login),
|
|
68 |
'date joined': format_date(user.date_joined),
|
|
69 |
'last update': format_date(user.updated),
|
|
66 |
'active': user.is_active,
|
|
67 |
'admin': user.is_superuser,
|
|
68 |
'last login': user.last_login,
|
|
69 |
'date joined': user.date_joined,
|
|
70 |
'last update': user.updated,
|
|
70 | 71 |
#'token': user.auth_token, |
71 |
'token expiration': format_date(user.auth_token_expires),
|
|
72 |
'token expiration': user.auth_token_expires,
|
|
72 | 73 |
'invitations': user.invitations, |
73 | 74 |
'invitation level': user.level, |
74 | 75 |
'providers': user.auth_providers_display, |
75 |
'verified': format_bool(user.is_verified),
|
|
76 |
'has_credits': format_bool(user.has_credits),
|
|
76 |
'verified': user.is_verified,
|
|
77 |
'has_credits': format(user.has_credits), |
|
77 | 78 |
'groups': [elem.name for elem in user.groups.all()], |
78 | 79 |
'permissions': [elem.codename for elem in user.user_permissions.all()], |
79 | 80 |
'group_permissions': user.get_group_permissions(), |
80 |
'email_verified': format_bool(user.email_verified),
|
|
81 |
'email_verified': user.email_verified,
|
|
81 | 82 |
'username': user.username, |
82 |
'activation_sent_date': format_date(user.activation_sent),
|
|
83 |
'resources': dict(user.all_quotas()),
|
|
83 |
'activation_sent_date': user.activation_sent,
|
|
84 |
'resources': user.all_quotas(),
|
|
84 | 85 |
'uuid': user.uuid |
85 | 86 |
} |
86 | 87 |
if get_latest_terms(): |
87 | 88 |
has_signed_terms = user.signed_terms |
88 |
kv['has_signed_terms'] = format_bool(has_signed_terms)
|
|
89 |
kv['has_signed_terms'] = has_signed_terms
|
|
89 | 90 |
if has_signed_terms: |
90 |
kv['date_signed_terms'] = format_date( |
|
91 |
user.date_signed_terms) |
|
91 |
kv['date_signed_terms'] = user.date_signed_terms |
|
92 | 92 |
|
93 |
for key, val in sorted(kv.items()): |
|
94 |
line = '%s: %s\n' % (key.rjust(22), val) |
|
95 |
self.stdout.write(line.encode('utf8')) |
|
93 |
self.stdout.write(format(kv)) |
|
96 | 94 |
self.stdout.write('\n') |
Also available in: Unified diff