mirror of https://github.com/zulip/zulip.git
Remove obsolete command to delete tutorial streams.
We don't have tutorial-bot anymore, so this is no longer needed. (imported from commit b8a1bc9c2379a451e8cc1ed43b15f373bb3f2b06)
This commit is contained in:
parent
c8d07cc64c
commit
6d8fc371fb
|
@ -1,53 +0,0 @@
|
||||||
from __future__ import absolute_import
|
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
from zerver.models import Subscription, Recipient, Message, Stream, \
|
|
||||||
get_user_profile_by_email
|
|
||||||
from django.db.models import Q
|
|
||||||
|
|
||||||
import datetime
|
|
||||||
import pytz
|
|
||||||
from optparse import make_option
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
help = """Delete all inactive tutorial stream subscriptions."""
|
|
||||||
|
|
||||||
option_list = BaseCommand.option_list + (
|
|
||||||
make_option('-f', '--for-real',
|
|
||||||
dest='for_real',
|
|
||||||
action='store_true',
|
|
||||||
default=False,
|
|
||||||
help="Actually deactive subscriptions. Default is a dry run."),
|
|
||||||
)
|
|
||||||
|
|
||||||
def has_sent_to(self, user_profile, recipient):
|
|
||||||
return Message.objects.filter(sender=user_profile, recipient=recipient).count() != 0
|
|
||||||
|
|
||||||
def handle(self, **options):
|
|
||||||
possible_tutorial_streams = Stream.objects.filter(Q(name__startswith='tutorial-'))
|
|
||||||
|
|
||||||
tutorial_bot = get_user_profile_by_email("tutorial-bot@zulip.com")
|
|
||||||
|
|
||||||
for stream in possible_tutorial_streams:
|
|
||||||
recipient = Recipient.objects.get(type=Recipient.STREAM, type_id=stream.id)
|
|
||||||
subscribers = Subscription.objects.filter(recipient=recipient, active=True)
|
|
||||||
if ((subscribers.count() == 1) and self.has_sent_to(tutorial_bot, recipient)):
|
|
||||||
# This is a tutorial stream.
|
|
||||||
most_recent_message = Message.objects.filter(
|
|
||||||
recipient=recipient).latest("pub_date")
|
|
||||||
# This cutoff must be more generous than the tutorial bot cutoff
|
|
||||||
# in the client code.
|
|
||||||
cutoff = datetime.datetime.now(tz=pytz.utc) - datetime.timedelta(hours=2)
|
|
||||||
|
|
||||||
if most_recent_message.pub_date < cutoff:
|
|
||||||
# The tutorial has expired, so delete the stream.
|
|
||||||
print stream.name, most_recent_message.pub_date
|
|
||||||
if options["for_real"]:
|
|
||||||
tutorial_user = subscribers[0]
|
|
||||||
tutorial_user.active = False
|
|
||||||
tutorial_user.save(update_fields=["active"])
|
|
||||||
|
|
||||||
if options["for_real"]:
|
|
||||||
print "Subscriptions deactivated."
|
|
||||||
else:
|
|
||||||
print "This was a dry run. Pass -f to actually deactivate."
|
|
Loading…
Reference in New Issue