Revision 91eca048 snf-astakos-app/astakos/im/management/commands/user-show.py

b/snf-astakos-app/astakos/im/management/commands/user-show.py
32 32
# or implied, of GRNET S.A.
33 33

  
34 34
from django.core.management.base import CommandError
35
from optparse import make_option
35 36

  
36 37
from astakos.im.models import AstakosUser, get_latest_terms
37
from astakos.im.quotas import astakos_user_quotas
38
from astakos.im.quotas import list_user_quotas
38 39

  
39 40
from synnefo.lib.ordereddict import OrderedDict
40 41
from synnefo.webproject.management.commands import SynnefoCommand
41 42
from synnefo.webproject.management import utils
42 43

  
43
from ._common import format
44
from ._common import format, show_quotas
44 45

  
45 46
import uuid
46 47

  
......
49 50
    args = "<user ID or email or uuid>"
50 51
    help = "Show user info"
51 52

  
53
    option_list = SynnefoCommand.option_list + (
54
        make_option('--quotas',
55
                    action='store_true',
56
                    dest='list_quotas',
57
                    default=False,
58
                    help="Also list user quotas"),
59
    )
60

  
52 61
    def handle(self, *args, **options):
53 62
        if len(args) != 1:
54 63
            raise CommandError("Please provide a user ID or email")
......
69 78
            raise CommandError(msg)
70 79

  
71 80
        for user in users:
72
            quotas = astakos_user_quotas(user)
73

  
74 81
            settings_dict = {}
75 82
            settings = user.settings()
76 83
            for setting in settings:
......
107 114
            if settings_dict:
108 115
                kv['settings'] = settings_dict
109 116

  
110
            kv['resources'] = quotas
111

  
112 117
            if get_latest_terms():
113 118
                has_signed_terms = user.signed_terms
114 119
                kv['has_signed_terms'] = has_signed_terms
......
117 122

  
118 123
            utils.pprint_table(self.stdout, [kv.values()], kv.keys(),
119 124
                               options["output_format"], vertical=True)
125

  
126
            if options["list_quotas"]:
127
                self.stdout.write("\n")
128
                _, quotas, initial, _ = list_user_quotas([user])
129
                print_data, labels = show_quotas(quotas, initial)
130
                utils.pprint_table(self.stdout, print_data, labels,
131
                                   options["output_format"])

Also available in: Unified diff