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