mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	[schema] Add the realm to the ZepyhrClass objects.
(imported from commit 8189ef27f2feef0c92f9c06a9243c085e36a66f5)
This commit is contained in:
		@@ -69,7 +69,7 @@ class Command(BaseCommand):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        # Create public classes.
 | 
					        # Create public classes.
 | 
				
			||||||
        for name in ["Verona", "Denmark", "Scotland", "Venice", "Rome"]:
 | 
					        for name in ["Verona", "Denmark", "Scotland", "Venice", "Rome"]:
 | 
				
			||||||
            new_class = ZephyrClass(name=name)
 | 
					            new_class = ZephyrClass(name=name, realm=realm)
 | 
				
			||||||
            new_class.save()
 | 
					            new_class.save()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            recipient = Recipient(type_id=new_class.pk, type="class")
 | 
					            recipient = Recipient(type_id=new_class.pk, type="class")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,6 +74,7 @@ def create_user_profile(user, realm):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class ZephyrClass(models.Model):
 | 
					class ZephyrClass(models.Model):
 | 
				
			||||||
    name = models.CharField(max_length=30)
 | 
					    name = models.CharField(max_length=30)
 | 
				
			||||||
 | 
					    realm = models.ForeignKey(Realm)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __repr__(self):
 | 
					    def __repr__(self):
 | 
				
			||||||
        return "<ZephyrClass: %s>" % (self.name,)
 | 
					        return "<ZephyrClass: %s>" % (self.name,)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,8 @@ from django.test import TestCase
 | 
				
			|||||||
from django.utils.timezone import utc
 | 
					from django.utils.timezone import utc
 | 
				
			||||||
from django.db.models import Q
 | 
					from django.db.models import Q
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from zephyr.models import Zephyr, UserProfile, ZephyrClass, Recipient, Subscription, filter_by_subscriptions
 | 
					from zephyr.models import Zephyr, UserProfile, ZephyrClass, Recipient, Subscription, \
 | 
				
			||||||
 | 
					    filter_by_subscriptions, Realm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import datetime
 | 
					import datetime
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
@@ -24,13 +25,14 @@ class AuthedTestCase(TestCase):
 | 
				
			|||||||
        if zephyr_type == "personal":
 | 
					        if zephyr_type == "personal":
 | 
				
			||||||
            recipient = UserProfile.objects.get(user=User.objects.get(username=recipient_name))
 | 
					            recipient = UserProfile.objects.get(user=User.objects.get(username=recipient_name))
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            recipient = ZephyrClass.objects.get(name=recipient_name)
 | 
					            recipient = ZephyrClass.objects.get(name=recipient_name, realm=sender.realm)
 | 
				
			||||||
        recipient = Recipient.objects.get(type_id=recipient.id, type=zephyr_type)
 | 
					        recipient = Recipient.objects.get(type_id=recipient.id, type=zephyr_type)
 | 
				
			||||||
        pub_date = datetime.datetime.utcnow().replace(tzinfo=utc)
 | 
					        pub_date = datetime.datetime.utcnow().replace(tzinfo=utc)
 | 
				
			||||||
        Zephyr(sender=sender, recipient=recipient, instance="test", pub_date=pub_date).save()
 | 
					        Zephyr(sender=sender, recipient=recipient, instance="test", pub_date=pub_date).save()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def users_subscribed_to_class(self, class_name):
 | 
					    def users_subscribed_to_class(self, class_name, realm_domain):
 | 
				
			||||||
        zephyr_class = ZephyrClass.objects.get(name=class_name)
 | 
					        realm = Realm.objects.get(domain=realm_domain)
 | 
				
			||||||
 | 
					        zephyr_class = ZephyrClass.objects.get(name=class_name, realm=realm)
 | 
				
			||||||
        recipient = Recipient.objects.get(type_id=zephyr_class.id, type="class")
 | 
					        recipient = Recipient.objects.get(type_id=zephyr_class.id, type="class")
 | 
				
			||||||
        subscriptions = Subscription.objects.filter(recipient=recipient)
 | 
					        subscriptions = Subscription.objects.filter(recipient=recipient)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -182,7 +184,7 @@ class ClassZephyrsTest(AuthedTestCase):
 | 
				
			|||||||
        If you send a zephyr to a class, everyone subscribed to the class
 | 
					        If you send a zephyr to a class, everyone subscribed to the class
 | 
				
			||||||
        receives the zephyr.
 | 
					        receives the zephyr.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        subscribers = self.users_subscribed_to_class("Scotland")
 | 
					        subscribers = self.users_subscribed_to_class("Scotland", "humbughq.com")
 | 
				
			||||||
        old_subscriber_zephyrs = []
 | 
					        old_subscriber_zephyrs = []
 | 
				
			||||||
        for subscriber in subscribers:
 | 
					        for subscriber in subscribers:
 | 
				
			||||||
            old_subscriber_zephyrs.append(len(self.zephyr_stream(subscriber)))
 | 
					            old_subscriber_zephyrs.append(len(self.zephyr_stream(subscriber)))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -137,14 +137,16 @@ def zephyr(request):
 | 
				
			|||||||
        # TODO: Do something
 | 
					        # TODO: Do something
 | 
				
			||||||
        pass
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    user_profile = UserProfile.objects.get(user=request.user)
 | 
				
			||||||
    zephyr_type = request.POST["type"]
 | 
					    zephyr_type = request.POST["type"]
 | 
				
			||||||
    if zephyr_type == 'class':
 | 
					    if zephyr_type == 'class':
 | 
				
			||||||
        class_name = request.POST['class']
 | 
					        class_name = request.POST['class']
 | 
				
			||||||
        if ZephyrClass.objects.filter(name=class_name):
 | 
					        if ZephyrClass.objects.filter(name=class_name, realm=user_profile.realm):
 | 
				
			||||||
            my_class = ZephyrClass.objects.get(name=class_name)
 | 
					            my_class = ZephyrClass.objects.get(name=class_name, realm=user_profile.realm)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            my_class = ZephyrClass()
 | 
					            my_class = ZephyrClass()
 | 
				
			||||||
            my_class.name = class_name
 | 
					            my_class.name = class_name
 | 
				
			||||||
 | 
					            my.realm = user_profile.realm
 | 
				
			||||||
            my_class.save()
 | 
					            my_class.save()
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            recipient = Recipient.objects.get(type_id=my_class.id, type="class")
 | 
					            recipient = Recipient.objects.get(type_id=my_class.id, type="class")
 | 
				
			||||||
@@ -213,7 +215,7 @@ def manage_subscriptions(request):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    unsubs = request.POST.getlist('subscription')
 | 
					    unsubs = request.POST.getlist('subscription')
 | 
				
			||||||
    for sub_name in unsubs:
 | 
					    for sub_name in unsubs:
 | 
				
			||||||
        zephyr_class = ZephyrClass.objects.get(name=sub_name)
 | 
					        zephyr_class = ZephyrClass.objects.get(name=sub_name, realm=user_profile.realm)
 | 
				
			||||||
        recipient = Recipient.objects.get(type_id=zephyr_class.id, type="class")
 | 
					        recipient = Recipient.objects.get(type_id=zephyr_class.id, type="class")
 | 
				
			||||||
        subscription = Subscription.objects.get(
 | 
					        subscription = Subscription.objects.get(
 | 
				
			||||||
            userprofile=user_profile, recipient=recipient)
 | 
					            userprofile=user_profile, recipient=recipient)
 | 
				
			||||||
@@ -234,11 +236,11 @@ def add_subscriptions(request):
 | 
				
			|||||||
        return HttpResponseRedirect(reverse('zephyr.views.subscriptions'))
 | 
					        return HttpResponseRedirect(reverse('zephyr.views.subscriptions'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for sub_name in new_subs.split(","):
 | 
					    for sub_name in new_subs.split(","):
 | 
				
			||||||
        zephyr_class = ZephyrClass.objects.filter(name=sub_name)
 | 
					        zephyr_class = ZephyrClass.objects.filter(name=sub_name, realm=user_profile.realm)
 | 
				
			||||||
        if zephyr_class:
 | 
					        if zephyr_class:
 | 
				
			||||||
            zephyr_class = zephyr_class[0]
 | 
					            zephyr_class = zephyr_class[0]
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            zephyr_class = ZephyrClass(name=sub_name)
 | 
					            zephyr_class = ZephyrClass(name=sub_name, realm=user_profile.realm)
 | 
				
			||||||
            zephyr_class.save()
 | 
					            zephyr_class.save()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        recipient = Recipient.objects.filter(type_id=zephyr_class.pk, type="class")
 | 
					        recipient = Recipient.objects.filter(type_id=zephyr_class.pk, type="class")
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user