Revision c7c0ec58 snf-astakos-app/astakos/im/management/commands/user-update.py

b/snf-astakos-app/astakos/im/management/commands/user-update.py
34 34
from optparse import make_option
35 35
from datetime import datetime
36 36

  
37
from django.utils.translation import ugettext as _
37 38
from django.core.management.base import BaseCommand, CommandError
38 39
from django.contrib.auth.models import Group
39 40
from django.core.exceptions import ValidationError
40 41

  
41 42
from astakos.im.models import AstakosUser
42
from astakos.im.functions import activate, deactivate
43
from astakos.im.functions import (activate, deactivate,
44
                                  set_pending_application_limit,
45
                                  unset_pending_application_limit)
43 46
from ._common import remove_user_permission, add_user_permission
44 47

  
45 48

  
......
102 105
        make_option('--delete-permission',
103 106
                    dest='delete-permission',
104 107
                    help="Delete user permission"),
108
        make_option('--set-max-pending',
109
                    dest='pending',
110
                    metavar='INT',
111
                    help=("Set limit on user's maximum pending "
112
                          "project applications")),
113
        make_option('--unset-max-pending',
114
                    dest='unset_pending',
115
                    action='store_true',
116
                    default=False,
117
                    help=("Restore default limit of user's maximum pending "
118
                          "project applications")),
105 119
    )
106 120

  
107 121
    def handle(self, *args, **options):
......
109 123
            raise CommandError("Please provide a user ID")
110 124

  
111 125
        if args[0].isdigit():
112
            user = AstakosUser.objects.get(id=int(args[0]))
126
            user_id = int(args[0])
127
            user = AstakosUser.objects.get(id=user_id)
113 128
        else:
114 129
            raise CommandError("Invalid ID")
115 130

  
......
202 217

  
203 218
        if password:
204 219
            self.stdout.write('User\'s new password: %s\n' % password)
220

  
221
        pending = options.get('pending')
222
        if pending:
223
            try:
224
                pending = int(pending)
225
            except ValueError as e:
226
                m = _("Expected integer argument")
227
                raise CommandError(m)
228
            else:
229
                set_pending_application_limit(user_id, pending)
230

  
231
        unset_pending = options.get('unset_pending')
232
        if unset_pending:
233
            unset_pending_application_limit(user_id)

Also available in: Unified diff