mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	Django 1.8: declare positional arguments in management commands
(imported from commit d9efca1376de92c8187d25f546c79fece8d2d8c6)
This commit is contained in:
		@@ -17,6 +17,10 @@ python manage.py client_activity
 | 
			
		||||
python manage.py client_activity zulip.com
 | 
			
		||||
python manage.py client_activity jesstess@zulip.com"""
 | 
			
		||||
 | 
			
		||||
    def add_arguments(self, parser):
 | 
			
		||||
        parser.add_argument('arg', metavar='<arg>', type=str, nargs='?', default=None,
 | 
			
		||||
                            help="realm or user to estimate client activity for")
 | 
			
		||||
 | 
			
		||||
    def compute_activity(self, user_activity_objects):
 | 
			
		||||
        # Report data from the past week.
 | 
			
		||||
        #
 | 
			
		||||
@@ -49,21 +53,22 @@ python manage.py client_activity jesstess@zulip.com"""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def handle(self, *args, **options):
 | 
			
		||||
        if len(args) == 0:
 | 
			
		||||
        if options['arg'] is None:
 | 
			
		||||
            # Report global activity.
 | 
			
		||||
            self.compute_activity(UserActivity.objects.all())
 | 
			
		||||
        elif len(args) == 1:
 | 
			
		||||
        else:
 | 
			
		||||
            arg = options['arg']
 | 
			
		||||
            try:
 | 
			
		||||
                # Report activity for a user.
 | 
			
		||||
                user_profile = get_user_profile_by_email(args[0])
 | 
			
		||||
                user_profile = get_user_profile_by_email(arg)
 | 
			
		||||
                self.compute_activity(UserActivity.objects.filter(
 | 
			
		||||
                        user_profile=user_profile))
 | 
			
		||||
            except UserProfile.DoesNotExist:
 | 
			
		||||
                try:
 | 
			
		||||
                    # Report activity for a realm.
 | 
			
		||||
                    realm = get_realm(args[0])
 | 
			
		||||
                    realm = get_realm(arg)
 | 
			
		||||
                    self.compute_activity(UserActivity.objects.filter(
 | 
			
		||||
                            user_profile__realm=realm))
 | 
			
		||||
                except Realm.DoesNotExist:
 | 
			
		||||
                    print "Unknown user or domain %s" % (args[0],)
 | 
			
		||||
                    print "Unknown user or domain %s" % (arg,)
 | 
			
		||||
                    exit(1)
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,10 @@ human_messages = Message.objects.filter(sending_client__name__in=HUMAN_CLIENT_LI
 | 
			
		||||
class Command(BaseCommand):
 | 
			
		||||
    help = "Generate statistics on realm activity."
 | 
			
		||||
 | 
			
		||||
    def add_arguments(self, parser):
 | 
			
		||||
        parser.add_argument('realms', metavar='<realm>', type=str, nargs='*',
 | 
			
		||||
                            help="realm to generate statistics for")
 | 
			
		||||
 | 
			
		||||
    def active_users(self, realm):
 | 
			
		||||
        # Has been active (on the website, for now) in the last 7 days.
 | 
			
		||||
        activity_cutoff = datetime.datetime.now(tz=pytz.utc) - datetime.timedelta(days=7)
 | 
			
		||||
@@ -64,9 +68,9 @@ class Command(BaseCommand):
 | 
			
		||||
        print "%.2f%% of" % (fraction * 100,), text
 | 
			
		||||
 | 
			
		||||
    def handle(self, *args, **options):
 | 
			
		||||
        if args:
 | 
			
		||||
        if options['realms']:
 | 
			
		||||
            try:
 | 
			
		||||
                realms = [Realm.objects.get(domain=domain) for domain in args]
 | 
			
		||||
                realms = [Realm.objects.get(domain=domain) for domain in options['realms']]
 | 
			
		||||
            except Realm.DoesNotExist, e:
 | 
			
		||||
                print e
 | 
			
		||||
                exit(1)
 | 
			
		||||
 
 | 
			
		||||
@@ -7,10 +7,14 @@ from zerver.models import Realm, Stream, Message, Subscription, Recipient
 | 
			
		||||
class Command(BaseCommand):
 | 
			
		||||
    help = "Generate statistics on the streams for a realm."
 | 
			
		||||
 | 
			
		||||
    def add_arguments(self, parser):
 | 
			
		||||
        parser.add_argument('realms', metavar='<realm>', type=str, nargs='*',
 | 
			
		||||
                            help="realm to generate statistics for")
 | 
			
		||||
 | 
			
		||||
    def handle(self, *args, **options):
 | 
			
		||||
        if args:
 | 
			
		||||
        if options['realms']:
 | 
			
		||||
            try:
 | 
			
		||||
                realms = [Realm.objects.get(domain=domain) for domain in args]
 | 
			
		||||
                realms = [Realm.objects.get(domain=domain) for domain in options['realms']]
 | 
			
		||||
            except Realm.DoesNotExist, e:
 | 
			
		||||
                print e
 | 
			
		||||
                exit(1)
 | 
			
		||||
 
 | 
			
		||||
@@ -9,15 +9,19 @@ from zerver.models import UserProfile, Realm, Stream, Message
 | 
			
		||||
class Command(BaseCommand):
 | 
			
		||||
    help = "Generate statistics on user activity."
 | 
			
		||||
 | 
			
		||||
    def add_arguments(self, parser):
 | 
			
		||||
        parser.add_argument('realms', metavar='<realm>', type=str, nargs='*',
 | 
			
		||||
                            help="realm to generate statistics for")
 | 
			
		||||
 | 
			
		||||
    def messages_sent_by(self, user, week):
 | 
			
		||||
        start = datetime.datetime.now(tz=pytz.utc) - datetime.timedelta(days=(week + 1)*7)
 | 
			
		||||
        end = datetime.datetime.now(tz=pytz.utc) - datetime.timedelta(days=week*7)
 | 
			
		||||
        return Message.objects.filter(sender=user, pub_date__gt=start, pub_date__lte=end).count()
 | 
			
		||||
 | 
			
		||||
    def handle(self, *args, **options):
 | 
			
		||||
        if args:
 | 
			
		||||
        if options['realms']:
 | 
			
		||||
            try:
 | 
			
		||||
                realms = [Realm.objects.get(domain=domain) for domain in args]
 | 
			
		||||
                realms = [Realm.objects.get(domain=domain) for domain in options['realms']]
 | 
			
		||||
            except Realm.DoesNotExist, e:
 | 
			
		||||
                print e
 | 
			
		||||
                exit(1)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user