From fa659ee595461d9ffa3c3ed4e34380d85cab5911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lie=20Bouttier?= Date: Sat, 9 Jul 2016 21:30:49 +0200 Subject: [PATCH] remove the use of CurrentSiteManager --- .../migrations/0002_auto_20160709_2059.py | 20 +++++++++++++ accounts/models.py | 4 --- accounts/signals.py | 2 +- accounts/tests.py | 2 +- accounts/views.py | 8 ++++-- conversations/signals.py | 2 +- conversations/views.py | 2 +- .../migrations/0002_auto_20160709_2059.py | 25 +++++++++++++++++ proposals/models.py | 9 +----- .../templates/proposals/speaker_list.html | 2 +- proposals/tests.py | 8 +++--- proposals/utils.py | 3 +- proposals/views.py | 28 +++++++++++-------- 13 files changed, 79 insertions(+), 36 deletions(-) create mode 100644 accounts/migrations/0002_auto_20160709_2059.py create mode 100644 proposals/migrations/0002_auto_20160709_2059.py diff --git a/accounts/migrations/0002_auto_20160709_2059.py b/accounts/migrations/0002_auto_20160709_2059.py new file mode 100644 index 0000000..0673531 --- /dev/null +++ b/accounts/migrations/0002_auto_20160709_2059.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-09 20:59 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0001_initial'), + ] + + operations = [ + migrations.AlterModelManagers( + name='participation', + managers=[ + ], + ), + ] diff --git a/accounts/models.py b/accounts/models.py index 84a9363..86613fe 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -1,7 +1,6 @@ from enum import IntEnum from django.contrib.auth.models import User -from django.contrib.sites.managers import CurrentSiteManager from django.contrib.sites.models import Site from django.core.urlresolvers import reverse from django.db import models @@ -44,9 +43,6 @@ class Participation(PonyConfModel): sound = models.BooleanField("I need sound", default=False) orga = models.BooleanField(default=False) - objects = models.Manager() - on_site = CurrentSiteManager() - class Meta: # A User can participe only once to a Conference (= Site) unique_together = ('site', 'user') diff --git a/accounts/signals.py b/accounts/signals.py index a37f44f..d7eeddf 100644 --- a/accounts/signals.py +++ b/accounts/signals.py @@ -10,7 +10,7 @@ from .models import Participation, Profile @receiver(user_logged_in) def on_user_logged_in(sender, request, user, **kwargs): - proposition, created = Participation.on_site.get_or_create(user=user, site=get_current_site(request)) + proposition, created = Participation.objects.get_or_create(user=user, site=get_current_site(request)) if created: messages.info(request, "Please check your profile!\n", fail_silently=True) # FIXME messages.success(request, 'Welcome!', fail_silently=True) # FIXME diff --git a/accounts/tests.py b/accounts/tests.py index 4c424be..ab7b3f1 100644 --- a/accounts/tests.py +++ b/accounts/tests.py @@ -51,7 +51,7 @@ class AccountTests(TestCase): self.assertEqual(self.client.get(reverse('list-participant')).status_code, 200) self.assertEqual(self.client.post(reverse('edit-participant', kwargs={'username': 'a'}), {'biography': 'foo', 'notes': 'bar'}).status_code, 403) - b = Participation.on_site.get(user=b) + b = Participation.objects.get(user=b) b.orga = True b.save() self.assertEqual(self.client.post(reverse('edit-participant', kwargs={'username': 'a'}), diff --git a/accounts/views.py b/accounts/views.py index 1e3d745..615fdac 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -3,6 +3,7 @@ from django.contrib.auth.decorators import login_required from django.core.exceptions import PermissionDenied from django.shortcuts import get_object_or_404, render from django.views.generic import ListView +from django.contrib.sites.shortcuts import get_current_site from registration.backends.default.views import RegistrationView @@ -25,7 +26,7 @@ def profile(request): forms = [UserForm(request.POST or None, instance=request.user), ProfileForm(request.POST or None, instance=request.user.profile), - ParticipationForm(request.POST or None, instance=Participation.on_site.get(user=request.user))] + ParticipationForm(request.POST or None, instance=Participation.objects.get(site=get_current_site(request), user=request.user))] if request.method == 'POST': if all(form.is_valid() for form in forms): @@ -39,7 +40,8 @@ def profile(request): class ParticipantList(StaffRequiredMixin, ListView): - queryset = Participation.on_site.all() + def get_queryset(self): + return Participation.objects.filter(site=get_current_site(self.request)).all() @login_required @@ -52,7 +54,7 @@ def edit(request, username): participation_form_class = ParticipationOrgaForm if is_orga(request, request.user) else ParticipationForm forms = [UserForm(request.POST or None, instance=profile.user), ProfileOrgaForm(request.POST or None, instance=profile), - participation_form_class(request.POST or None, instance=Participation.on_site.get(user=profile.user))] + participation_form_class(request.POST or None, instance=Participation.objects.get(site=get_current_site(request), user=profile.user))] if request.method == 'POST': if all(form.is_valid() for form in forms): diff --git a/conversations/signals.py b/conversations/signals.py index e357057..d52be5c 100644 --- a/conversations/signals.py +++ b/conversations/signals.py @@ -30,7 +30,7 @@ def check_talk(talk): reviewers = User.objects.filter(topic__talk=talk) talk.conversation.subscribers.add(*reviewers) for user in talk.speakers.all(): - participation, created = Participation.on_site.get_or_create(user=user, site=talk.site) + participation, created = Participation.objects.get_or_create(user=user, site=talk.site) participation.conversation.subscribers.add(*reviewers) diff --git a/conversations/views.py b/conversations/views.py index 79aef4d..32b7479 100644 --- a/conversations/views.py +++ b/conversations/views.py @@ -66,7 +66,7 @@ def talk_conversation(request, talk): @login_required def correspondents(request): - correspondent_list = Participation.on_site.filter(conversation__subscribers=request.user) + correspondent_list = Participation.objects.filter(site=get_current_site(request), conversation__subscribers=request.user) return render(request, 'conversations/correspondents.html', { 'correspondent_list': correspondent_list, diff --git a/proposals/migrations/0002_auto_20160709_2059.py b/proposals/migrations/0002_auto_20160709_2059.py new file mode 100644 index 0000000..4c12030 --- /dev/null +++ b/proposals/migrations/0002_auto_20160709_2059.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-07-09 20:59 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('proposals', '0001_initial'), + ] + + operations = [ + migrations.AlterModelManagers( + name='talk', + managers=[ + ], + ), + migrations.AlterModelManagers( + name='topic', + managers=[ + ], + ), + ] diff --git a/proposals/models.py b/proposals/models.py index 5b26be3..c952911 100644 --- a/proposals/models.py +++ b/proposals/models.py @@ -1,7 +1,6 @@ from enum import IntEnum from django.contrib.auth.models import User -from django.contrib.sites.managers import CurrentSiteManager from django.contrib.sites.models import Site from django.core.urlresolvers import reverse from django.core.validators import MaxValueValidator, MinValueValidator @@ -26,9 +25,6 @@ class Topic(PonyConfModel): reviewers = models.ManyToManyField(User, blank=True) - objects = models.Manager() - on_site = CurrentSiteManager() - @property def talks(self): return Talk.objects.filter(topics=self).all() @@ -55,9 +51,6 @@ class Talk(PonyConfModel): event = models.IntegerField(choices=enum_to_choices(EVENTS), default=EVENTS.conference_short.value) accepted = models.NullBooleanField(default=None) - objects = models.Manager() - on_site = CurrentSiteManager() - def __str__(self): return self.title @@ -68,7 +61,7 @@ class Talk(PonyConfModel): if user.is_superuser: return True try: - participation = Participation.on_site.get(user=user) + participation = Participation.objects.get(site=self.site, user=user) except Participation.DoesNotExists: return False return participation.orga or self.topics.filter(reviewers=participation.user).exists() diff --git a/proposals/templates/proposals/speaker_list.html b/proposals/templates/proposals/speaker_list.html index 78f4142..1747ab9 100644 --- a/proposals/templates/proposals/speaker_list.html +++ b/proposals/templates/proposals/speaker_list.html @@ -8,7 +8,7 @@