Refactor permission (need to re adjust), 2 test not passed(registration, permissions)

This commit is contained in:
Jean-Baptiste Doderlein 2022-08-20 18:10:12 +00:00
parent 838bd2bb23
commit a17e47acb9
17 changed files with 107 additions and 346 deletions

View file

@ -378,17 +378,10 @@ class Membership(models.Model):
parent_membership.save()
parent_membership.refresh_from_db()
if self.club.parent_club.name == "BDE":
parent_membership.roles.set(
Role.objects.filter(Q(name="Adhérent BDE") | Q(name="Membre de club")).all())
elif self.club.parent_club.name == "BDA":
parent_membership.roles.set(
Role.objects.filter(Q(name="Adhérent BDA") | Q(name="Membre de club")).all())
elif self.club.parent_club.name == "BDS":
parent_membership.roles.set(
Role.objects.filter(Q(name="Adhérent BDS") | Q(name="Membre de club")).all())
else:
parent_membership.roles.set(Role.objects.filter(name="Membre de club").all())
parent_membership.roles.set(
Role.objects.filter(Q(name="Adhérent")).all())
parent_membership.save()
@transaction.atomic

View file

@ -1,4 +1,4 @@
{% load i18n pretty_money perms %}
{% load i18n pretty_money perms memberinfo %}
<dl class="row">
<dt class="col-xl-6">{% trans 'name'|capfirst %}</dt>
@ -39,7 +39,7 @@
{% endif %}
{% endif %}
{% if "note.view_note"|has_perm:club.note %}
{% if "note.view_note"|has_perm:club.note and user|is_member:club %}
<dt class="col-xl-6">{% trans 'balance'|capfirst %}</dt>
<dd class="col-xl-6">{{ club.note.balance | pretty_money }}</dd>
{% endif %}

View file

@ -49,7 +49,7 @@ class TestMemberships(TestCase):
self.club = Club.objects.create(name="totoclub", parent_club=Club.objects.get(name="BDE"))
self.bde_membership = Membership.objects.create(user=self.user, club=Club.objects.get(name="BDE"))
self.membership = Membership.objects.create(user=self.user, club=self.club)
self.membership.roles.add(Role.objects.get(name="Bureau de club"))
self.membership.roles.add(Role.objects.get(name="Pr\u00e9sident\u00b7e"))
self.membership.save()
def test_admin_pages(self):
@ -251,11 +251,11 @@ class TestMemberships(TestCase):
response = self.client.post(reverse("member:club_manage_roles", args=(self.membership.pk,)), data=dict(
roles=[role.id for role in Role.objects.filter(
Q(name="Membre de club") | Q(name="Trésorier·ère de club") | Q(name="Bureau de club")).all()],
Q(name="Trésorier·ère")).all()],
))
self.assertRedirects(response, self.user.profile.get_absolute_url(), 302, 200)
self.membership.refresh_from_db()
self.assertEqual(self.membership.roles.count(), 3)
self.assertEqual(self.membership.roles.count(), 1)
def test_render_user_list(self):
"""
@ -389,7 +389,7 @@ class TestMemberAPI(TestAPI):
)
self.bde_membership = Membership.objects.create(user=self.user, club=Club.objects.get(name="BDE"))
self.membership = Membership.objects.create(user=self.user, club=self.club)
self.membership.roles.add(Role.objects.get(name="Bureau de club"))
self.membership.roles.add(Role.objects.get(name="Pr\u00e9sident\u00b7e"))
self.membership.save()
def test_club_api(self):

View file

@ -445,7 +445,7 @@ class ClubDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
club.update_membership_dates()
# managers list
managers = Membership.objects.filter(club=self.object, roles__name="Bureau de club",
managers = Membership.objects.filter(club=self.object, roles__name="Pr\u00e9sident\u00b7e",
date_start__lte=date.today(), date_end__gte=date.today())\
.order_by('user__last_name').all()
context["managers"] = ClubManagerTable(data=managers, prefix="managers-")
@ -744,7 +744,7 @@ class ClubAddMemberView(ProtectQuerysetMixin, ProtectedCreateView):
# Now, all is fine, the membership can be created.
if club.name == "BDE":
if club.name == "BDE" or club.name == "BDA" or club.name == "BDS":
# When we renew the BDE membership, we update the profile section
# that should happens at least once a year.
user.profile.section = user.profile.section_generated
@ -772,10 +772,7 @@ class ClubAddMemberView(ProtectQuerysetMixin, ProtectedCreateView):
ret = super().form_valid(form)
member_role = Role.objects.filter(Q(name="Adhérent BDE") | Q(name="Membre de club")).all() \
if club.name == "BDE" else Role.objects.filter(Q(name="Adhérent BDA") | Q(name="Membre de club")).all() \
if club.name == "BDA" else Role.objects.filter(Q(name="Adhérent BDS") | Q(name="Membre de club")).all() \
if club.name == "BDS" else Role.objects.filter(name="Membre de club").all()
member_role = Role.objects.filter(Q(name="Adhérent")).all()
# Set the same roles as before
if old_membership: