[schema] Fix names of fields in Subscription.

(imported from commit 5f5c643286d348d16caac03419ba3011a8b81eff)
This commit is contained in:
Tim Abbott 2012-09-05 15:55:40 -04:00
parent 38b30e5997
commit b761bf030b
4 changed files with 25 additions and 25 deletions

View File

@ -94,9 +94,9 @@ class Command(BaseCommand):
for i, profile in enumerate(profiles):
# Subscribe to some classes.
for recipient in recipient_classes[:int(len(recipient_classes) * float(i)/len(profiles)) + 1]:
new_subscription = Subscription(userprofile_id=profile,
recipient_id=Recipient.objects.get(type="class",
type_id=recipient))
new_subscription = Subscription(userprofile=profile,
recipient=Recipient.objects.get(type="class",
type_id=recipient))
new_subscription.save()
# Create some test zephyrs, including:
@ -151,7 +151,7 @@ class Command(BaseCommand):
elif zephyr_type == "class":
zephyr_class = ZephyrClass.objects.get(pk=new_zephyr.recipient.type_id)
# Pick a random subscriber to the class
new_zephyr.sender = random.choice(Subscription.objects.filter(recipient_id=new_zephyr.recipient.id)).userprofile_id
new_zephyr.sender = random.choice(Subscription.objects.filter(recipient=new_zephyr.recipient)).userprofile
new_zephyr.instance = zephyr_class.name + str(random.randint(1, 3))
saved_data = new_zephyr.instance

View File

@ -15,8 +15,8 @@ def get_display_recipient(recipient):
zephyr_class = ZephyrClass.objects.get(pk=recipient.type_id)
return zephyr_class.name
elif recipient.type == "huddle":
user_list = [UserProfile.objects.get(user=s.userprofile_id) for s in
Subscription.objects.filter(recipient_id=recipient.id)]
user_list = [UserProfile.objects.get(user=s.userprofile) for s in
Subscription.objects.filter(recipient=recipient)]
return [{'name': user.user.username} for user in user_list]
else:
user = User.objects.get(pk=recipient.type_id)
@ -70,7 +70,7 @@ def create_user_profile(user, realm):
# Auto-sub to the ability to receive personals.
recipient = Recipient(type_id=profile.pk, type="personal")
recipient.save()
Subscription(userprofile_id=profile, recipient_id=recipient).save()
Subscription(userprofile=profile, recipient=recipient).save()
class ZephyrClass(models.Model):
name = models.CharField(max_length=30)
@ -114,8 +114,8 @@ def send_zephyr(**kwargs):
# personals to yourself or to someone else, respectively.
assert((len(recipients) == 1) or (len(recipients) == 2))
elif zephyr.recipient.type == "class" or zephyr.recipient.type == "huddle":
recipients = [UserProfile.objects.get(user=s.userprofile_id) for
s in Subscription.objects.filter(recipient_id=zephyr.recipient, active=True)]
recipients = [UserProfile.objects.get(user=s.userprofile) for
s in Subscription.objects.filter(recipient=zephyr.recipient, active=True)]
else:
raise
for recipient in recipients:
@ -124,12 +124,12 @@ def send_zephyr(**kwargs):
post_save.connect(send_zephyr, sender=Zephyr)
class Subscription(models.Model):
userprofile_id = models.ForeignKey(UserProfile)
recipient_id = models.ForeignKey(Recipient)
userprofile = models.ForeignKey(UserProfile)
recipient = models.ForeignKey(Recipient)
active = models.BooleanField(default=True)
def __repr__(self):
return "<Subscription: %r -> %r>" % (self.userprofile_id, self.recipient_id)
return "<Subscription: %r -> %r>" % (self.userprofile, self.recipient)
class Huddle(models.Model):
huddle_hash = models.CharField(max_length=40)
@ -149,15 +149,15 @@ def get_huddle(id_list):
# Add subscriptions
for uid in id_list:
s = Subscription(recipient_id = recipient,
userprofile_id = UserProfile.objects.get(id=uid))
s = Subscription(recipient = recipient,
userprofile = UserProfile.objects.get(id=uid))
s.save()
return huddle
def filter_by_subscriptions(zephyrs, user):
userprofile = UserProfile.objects.get(user=user)
subscribed_zephyrs = []
subscriptions = [sub.recipient_id for sub in Subscription.objects.filter(userprofile_id=userprofile, active=True)]
subscriptions = [sub.recipient for sub in Subscription.objects.filter(userprofile=userprofile, active=True)]
for zephyr in zephyrs:
# If you are subscribed to the personal or class, or if you sent the personal, you can see the zephyr.
if (zephyr.recipient in subscriptions) or \

View File

@ -32,9 +32,9 @@ class AuthedTestCase(TestCase):
def users_subscribed_to_class(self, class_name):
zephyr_class = ZephyrClass.objects.get(name=class_name)
recipient = Recipient.objects.get(type_id=zephyr_class.id, type="class")
subscriptions = Subscription.objects.filter(recipient_id=recipient)
subscriptions = Subscription.objects.filter(recipient=recipient)
return [subscription.userprofile_id.user for subscription in subscriptions]
return [subscription.userprofile.user for subscription in subscriptions]
def zephyr_stream(self, user):
return filter_by_subscriptions(Zephyr.objects.all(), user)

View File

@ -195,10 +195,10 @@ def zephyr(request):
@login_required
def subscriptions(request):
userprofile = UserProfile.objects.get(user=request.user)
subscriptions = Subscription.objects.filter(userprofile_id=userprofile, active=True)
subscriptions = Subscription.objects.filter(userprofile=userprofile, active=True)
# For now, don't display the subscription for your ability to receive personals.
sub_names = [get_display_recipient(sub.recipient_id) for sub in subscriptions
if sub.recipient_id.type == "class"]
sub_names = [get_display_recipient(sub.recipient) for sub in subscriptions
if sub.recipient.type == "class"]
return render_to_response('zephyr/subscriptions.html',
{'subscriptions': sub_names, 'user_profile': userprofile},
@ -216,7 +216,7 @@ def manage_subscriptions(request):
zephyr_class = ZephyrClass.objects.get(name=sub_name)
recipient = Recipient.objects.get(type_id=zephyr_class.id, type="class")
subscription = Subscription.objects.get(
userprofile_id=user_profile.id, recipient_id=recipient)
userprofile=user_profile, recipient=recipient)
subscription.active = False
subscription.save()
@ -248,15 +248,15 @@ def add_subscriptions(request):
recipient = Recipient(type_id=zephyr_class.pk, type="class")
recipient.save()
subscription = Subscription.objects.filter(userprofile_id=user_profile,
recipient_id=recipient)
subscription = Subscription.objects.filter(userprofile=user_profile,
recipient=recipient)
if subscription:
subscription = subscription[0]
subscription.active = True
subscription.save()
else:
new_subscription = Subscription(userprofile_id=user_profile,
recipient_id=recipient)
new_subscription = Subscription(userprofile=user_profile,
recipient=recipient)
new_subscription.save()
return HttpResponseRedirect(reverse('zephyr.views.subscriptions'))